Unity接入deepseek聊天
1.首先创建API key。点击下方链接。
DeepSeek
2.直接贴代码。一定要替换代码里面的apiKey
using UnityEngine;
using UnityEngine.Networking;
using System.Collections;
using Newtonsoft.Json;
public class DeepSeekManager : MonoSingleton<DeepSeekManager>
{
private string apiKey = "xxxxx"; // 替换为您的API密钥---是第一步创建API key.
private string apiUrl = "https://api.deepseek.com/v1/chat/completions"; // 替换为API地址
public void SendRequest(string prompt)
{
StartCoroutine(PostRequest(prompt));
}
IEnumerator PostRequest(string prompt)
{
var requestBody = new
{
model = "deepseek-chat",
messages = new[]
{
new { role = "user", content = prompt }
},
temperature = 0.7,
max_tokens = 50
};
string jsonBody = JsonConvert.SerializeObject(requestBody); // 使用 Newtonsoft.Json
UnityWebRequest request = new UnityWebRequest(apiUrl, "POST");
byte[] bodyRaw = System.Text.Encoding.UTF8.GetBytes(jsonBody);
request.uploadHandler = new UploadHandlerRaw(bodyRaw);
request.downloadHandler = new DownloadHandlerBuffer();
request.SetRequestHeader("Content-Type", "application/json");
request.SetRequestHeader("Authorization", $"Bearer {apiKey}");
yield return request.SendWebRequest();
if (request.result == UnityWebRequest.Result.Success)
{
string responseJson = request.downloadHandler.text;
Debug.Log("API Response: " + responseJson);
Debug.Log("Response Headers: " + string.Join(", ", request.GetResponseHeaders()));
Debug.Log("Response Code: " + request.responseCode);
// 解析响应
if (!string.IsNullOrEmpty(responseJson))
{
var response = JsonConvert.DeserializeObject<DeepSeekResponse>(responseJson);
Debug.Log("Assistant Reply: " + response.choices[0].message.content);
}
else
{
Debug.LogError("API Response is empty.");
}
}
else
{
Debug.LogError("API Request Failed: " + request.error);
}
}
// 定义响应数据结构
private class DeepSeekResponse
{
public string id { get; set; }
public string @object { get; set; }
public long created { get; set; }
public Choice[] choices { get; set; }
public Usage usage { get; set; }
}
private class Choice
{
public int index { get; set; }
public Message message { get; set; }
public string finish_reason { get; set; }
}
private class Message
{
public string role { get; set; }
public string content { get; set; }
}
private class Usage
{
public int prompt_tokens { get; set; }
public int completion_tokens { get; set; }
public int total_tokens { get; set; }
}
}
}
3.测试,调用接口
DeepSeekManager.Instance.SendRequest("你的名字是什么?");
Unity里面输出日志: