一、框架視圖

二、關(guān)鍵代碼
RequestData
using UnityEngine;
using System.Collections.Generic;
[System.Serializable]
public class RequestData
{
public string model;
public List<Message> messages;
}
[System.Serializable]
public class Message
{
public string role;
public string content;
}
DeepSeekTalk
using System.Collections;
using UnityEngine;
using UnityEngine.UI;
using System.Collections.Generic;
public class DeepSeekTalk : MonoBehaviour
{
public InputField inputField;
public Text responseText;
public void SendText()
{
StartCoroutine(ConnetToDeepSeek());
inputField.text = "";
responseText.text = "DeepSeek 正在深度思考中...";
}
public void CloseDeepSeek()
{
//退出游戲
Application.Quit();
}
public IEnumerator ConnetToDeepSeek()
{
using(UnityEngine.Networking.UnityWebRequest request =
new UnityEngine.Networking.UnityWebRequest("https://api.deepseek.com/chat/completions", "POST"))
{
//設(shè)置請求頭
request.SetRequestHeader("Content-Type", "application/json");
request.SetRequestHeader("Authorization", "Bearer " + DeepSeekConfig.APIKey);
//設(shè)置請求體
var requestData = new RequestData
{
model = "deepseek-chat",
messages = new List<Message>
{
new Message{role = "user", content = inputField.text}
}
};
//將請求體轉(zhuǎn)換為字節(jié)數(shù)組
byte[] bodyRaw = System.Text.Encoding.UTF8.GetBytes(JsonUtility.ToJson(requestData));
//設(shè)置上傳處理程序
request.uploadHandler = new UnityEngine.Networking.UploadHandlerRaw(bodyRaw);
//設(shè)置下載處理程序
request.downloadHandler = new UnityEngine.Networking.DownloadHandlerBuffer();
//發(fā)送請求
yield return request.SendWebRequest();
try
{
//檢查請求是否成功
if(request.result != UnityEngine.Networking.UnityWebRequest.Result.Success)
{
//請求失敗
Debug.LogError("連接失敗: " + request.error);
}
else
{
//解析JSON
var response = JsonUtility.FromJson<DeepSeekResponse>(request.downloadHandler.text);
//獲取響應(yīng)文本
responseText.text = response.choices[0].message.content;
}
}
catch (System.Exception e)
{
Debug.LogError("處理請求時(shí)出錯(cuò): " + e.Message);
}
}
}
}
DeepSeekResponse
using UnityEngine;
[System.Serializable]
public class DeepSeekResponse
{
public string id;
public string object_name;
public long created;
public Choice[] choices;
}
[System.Serializable]
public class Choice
{
public Message message;
public int index;
}
DeepSeekConfig
using UnityEngine;
public static class DeepSeekConfig
{
public static string APIKey = "sk-ad3f071ac70e4c31acde9e832498d626";
}
三、效果展示


