您现在的位置是:首页 >技术教程 >Unity 访问本地部署的Deepseek网站首页技术教程

Unity 访问本地部署的Deepseek

QQ 909478250 2025-12-26 12:01:02
简介Unity 访问本地部署的Deepseek

一、本地部署Deepseek

可以看这个进行部署

二、unity访问

1、部署完成之后,启动服务器

2、unity 脚本

using UnityEngine;
using UnityEngine.Networking;
using System.Collections;
using UnityEngine.UI;
using Newtonsoft.Json;
using System.Collections.Generic;
using System.Text;
using TMPro;
using UnityEngine.UIElements;

public class OllamaClient : MonoBehaviour
{

    private string apiUrl = "http://127.0.0.1:11434/api/chat";

    public Text text;

    public InputField userInputField;

    public UnityEngine.UI.Button button;
    public class Choice
    {
        public Message message;
    }

    public class Message
    {
        public string content;
    }
    
    // 用于存储对话历史
    private List<Dictionary<string, string>> messages = new List<Dictionary<string, string>>();
    void Start()
    {
        // 初始化系统消息

        button.onClick.AddListener(OnSendButtonClicked);
     
    }

    public void OnSendButtonClicked()
    {
        string userMessage = userInputField.text;
        if (string.IsNullOrEmpty(userMessage)) return;

        // 添加用户消息到对话历史
        messages.Add(new Dictionary<string, string> { { "role", "user" }, { "content", userMessage } });

        // 调用 DeepSeek API
        StartCoroutine(CallDeepSeekAPI());
    }

    private IEnumerator CallDeepSeekAPI()
    {
        // 创建请求数据
        var requestData = new
        {
            model = "deepseek-r1:1.5b",
            messages = messages,
            stream = false
        };

        string jsonData = JsonConvert.SerializeObject(requestData);

        // 创建 UnityWebRequest
        UnityWebRequest request = new UnityWebRequest(apiUrl, "POST");
        byte[] bodyRaw = Encoding.UTF8.GetBytes(jsonData);
        request.uploadHandler = new UploadHandlerRaw(bodyRaw);
        request.downloadHandler = new DownloadHandlerBuffer();
        request.SetRequestHeader("Content-Type", "application/json");
   

        // 发送请求
        yield return request.SendWebRequest();

        if (request.result == UnityWebRequest.Result.Success)
        {
            // 解析响应
            var response = JsonConvert.DeserializeObject<Choice>(request.downloadHandler.text);

            Debug.LogError(request.downloadHandler.text);
            string botMessage = response.message.content;

            // 显示响应
            text.text += "
AI: " + botMessage;

            // 添加 AI 消息到对话历史
            messages.Add(new Dictionary<string, string> { { "role", "assistant" }, { "content", botMessage } });
        }
        else
        {
            Debug.LogError("Error: " + request.error);
        }
    }



}

注意的是  我本地安装的是deepseek-r1:1.5b 替换成你自己的

3、访问成功之后服务器

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