您现在的位置是:首页 >其他 >Unity接入deepseek聊天网站首页其他

Unity接入deepseek聊天

wengpanfeng 2025-03-27 12:01:01
简介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里面输出日志:

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。