| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118 | 
							- using System.Collections.Generic;
 
- using Fort23.Core;
 
- using Fort23.UTool;
 
- using UnityEngine;
 
- namespace Fort23.Mono
 
- {
 
-     [UIBinding(prefab = "ChatPanel")]
 
-     public partial class ChatPanel : UIPanel
 
-     {
 
-         private DeepSeekAI deepSeekAI = new DeepSeekAI("sk-9f161d962acd420e882941b5e41dd3ae");
 
-         
 
-         private DeepSeekAI huoSahnAI = new DeepSeekAI("4001c395-31cb-4d27-bec8-8f03cae63c2d");
 
-         private List<ChatMessage> messages = new List<ChatMessage>();
 
-         private bool isSend = false;
 
-         private void Init()
 
-         {
 
-             isAddStack = true;
 
-             IsShowAppBar = false;
 
-         }
 
-         protected override void AddEvent()
 
-         {
 
-         }
 
-         protected override void DelEvent()
 
-         {
 
-         }
 
-         public override void AddButtonEvent()
 
-         {
 
-             Btn_Send.onClick.AddListener(() => { SendMessage(); });
 
-             Btn_Close.onClick.AddListener(() => { UIManager.Instance.HideUIUIPanel(this); });
 
-         }
 
-         private async CTask CreatMessageWidget(bool isUser, string message)
 
-         {
 
-             GameObject widget = isUser ? UserChatMessageWidget : SysteamChatWidget;
 
-             ChatMessageWidget chatMessageWidget = await UIManager.Instance.CreateGComponentForObject<ChatMessageWidget>(widget, null, Content, isInstance: true);
 
-             chatMessageWidget.CustomInit(message);
 
-         }
 
-         public async override CTask<bool> AsyncInit(object[] uiData)
 
-         {
 
-             AssetHandle assetHandle = await AssetBundleLoadManager.Instance.LoadAssetAsyncTask<TextAsset>("repository.txt");
 
-             TextAsset ta = assetHandle.AssetObject<TextAsset>();
 
-             var systeamMessage = new ChatMessage
 
-             {
 
-                 role = "system",
 
-                 content = ta.text,
 
-             };
 
-             messages.Add(systeamMessage);
 
-             return await base.AsyncInit(uiData);
 
-         }
 
-         private async void SendMessage()
 
-         {
 
-             if (isSend)
 
-                 return;
 
-             isSend = true;
 
-             var userMessage = new ChatMessage
 
-             {
 
-                 role = "user",
 
-                 content = InputField.text
 
-             };
 
-             messages.Add(userMessage);
 
-             //生成消息ui
 
-             await CreatMessageWidget(true, userMessage.content);
 
-             var request = new ChatCompletionRequest
 
-             {
 
-                 // model = "deepseek-chat",
 
-                 model = "doubao-1.5-pro-32k-250115",
 
-                 messages = messages,
 
-                 max_tokens = 4096,
 
-             };
 
-             var response = await huoSahnAI.SendChatCompletionToDeepSeek(request);
 
-             if (response?.choices != null && response.choices.Count > 0)
 
-             {
 
-                 var assistantMessage = response.choices[0].message;
 
-                 messages.Add(assistantMessage);
 
-                 await CreatMessageWidget(false, assistantMessage.content);
 
-                 isSend = false;
 
-             }
 
-             else
 
-             {
 
-                 LogTool.Warning("No response from DeepSeek.");
 
-                 isSend = false;
 
-             }
 
-             InputField.text = "";
 
-         }
 
-         public async static CTask OpenPanel()
 
-         {
 
-             EventSystemManager.Instance.isOpenUi = true;
 
-             await UIManager.Instance.LoadAndOpenPanel<ChatPanel>(null);
 
-         }
 
-         public async override CTask Close()
 
-         {
 
-             EventSystemManager.Instance.isOpenUi = false;
 
-             isSend = false;
 
-             UIManager.Instance.DormancyAllGComponent<ChatMessageWidget>();
 
-             messages.Clear();
 
-             await base.Close();
 
-         }
 
-     }
 
- }
 
 
  |