将m_userSetting和m_assistantSetting做成数组的样式,可以使用List来存储这些变量。首先在类中定义一个List类型的变量m_DataList,用于存储发送的消息。然后在Start()方法中,将m_userSetting和m_assistantSetting添加到m_DataList中。修改后的代码如下:

/// <summary>
/// AI设定
/// </summary>
public string m_SystemSetting = string.Empty;
public List<SendData> m_DataList = new List<SendData>(); // 新增的变量

public string m_assistantSetting_1 = string.Empty;
public string m_userSetting_1 = string.Empty;
public string m_assistantSetting_2 = string.Empty;
public string m_userSetting_2 = string.Empty;
public string m_assistantSetting_3 = string.Empty;
/// <summary>
/// gpt-3.5-turbo
/// </summary>
public string m_gptModel = "rwkv-world-7b";
public string m_assistant_name = "胡桃";
public string m_user_name = "旅行者";

private void Start()
{
    //运行时,添加AI设定
    m_DataList.Add(new SendData("system", m_SystemSetting));
    m_DataList.Add(new SendData("assistant", m_assistantSetting_1));
    m_DataList.Add(new SendData("user", m_userSetting_1));
    m_DataList.Add(new SendData("assistant", m_assistantSetting_2));
    m_DataList.Add(new SendData("user", m_userSetting_2));
    m_DataList.Add(new SendData("assistant", m_assistantSetting_3));
}

/// <summary>
/// 发送消息
/// </summary>
/// <returns></returns>
public override void PostMsg(string _msg, Action<string> _callback)
{
    base.PostMsg(_msg, _callback);
}

/// <summary>
/// 调用接口
/// </summary>
/// <param name="_postWord"></param>
/// <param name="_callback"></param>
/// <returns></returns>
public override IEnumerator Request(string _postWord, System.Action<string> _callback)
{
    stopwatch.Restart();
    using (UnityWebRequest request = new UnityWebRequest(url, "POST"))
    {
        PostData _postData = new PostData
        {
            model = m_gptModel,
            assistant_name = m_assistant_name,
            user_name = m_user_name,
            messages = m_DataList
        };

        string _jsonText = JsonUtility.ToJson(_postData);
        byte[] data = System.Text.Encoding.UTF8.GetBytes(_jsonText);
        request.uploadHandler = (UploadHandler)new UploadHandlerRaw(data);
        request.downloadHandler = (DownloadHandler)new DownloadHandlerBuffer();

        request.SetRequestHeader("Content-Type", "application/json");
        //request.SetRequestHeader("Authorization", string.Format("Bearer {0}", api_key));

        yield return request.SendWebRequest();

        if (request.responseCode == 200)
        {
            string _msgBack = request.downloadHandler.text;
            MessageBack _textback = JsonUtility.FromJson<MessageBack>(_msgBack);
            if (_textback != null && _textback.choices.Count > 0)
            {

                string _backMsg = _textback.choices[0].message.content;
                //添加记录
                m_DataList.Add(new SendData("assistant", _backMsg));
                _callback(_backMsg);
            }

        }


        Debug.Log("传参的值是:" + _jsonText);
        stopwatch.Stop();
        Debug.Log("RWKV耗时:" + stopwatch.Elapsed.TotalSeconds);
    }
}

这样就将m_userSetting和m_assistantSetting做成了数组的样式。

如何把m_userSetting和m_assistantSetting 做成数组的样式? summary AI设定 summary public string m_SystemSetting = stringEmpty; public string m_assistantSetting_1 = stringEmpty; public string m_userSett

原文地址: https://www.cveoy.top/t/topic/jgy3 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录