【Unity-AI开发篇】| 游戏中接入DeepSeek实现AI对话,完整详细步骤

  • [【Unity-AI开发篇】| 游戏中接入DeepSeek实现AI对话,完整详细步骤](#【Unity-AI开发篇】| 游戏中接入DeepSeek实现AI对话,完整详细步骤)
    • 一、DeepSeek
      • [1.1 介绍](#1.1 介绍)
      • [1.2 效果展示](#1.2 效果展示)
    • [二、 获取DeepSeek模型API](#二、 获取DeepSeek模型API)
      • [2.1 API调用文档](#2.1 API调用文档)
      • [2.2 获取API密钥](#2.2 获取API密钥)
      • [2.3 模型价格](#2.3 模型价格)
      • [2.4 用量信息](#2.4 用量信息)
    • 三、接入Unity使用
      • [3.1 新建Unity项目](#3.1 新建Unity项目)
      • [3.1 AI对话脚本](#3.1 AI对话脚本)
      • [3.2 搭建简易UI对话界面](#3.2 搭建简易UI对话界面)
      • [3.3 其他模型API对话接入](#3.3 其他模型API对话接入)
  • 总结

前言

  • 大语言模型正深刻改变人机交互方式,DeepSeek 凭借强大的推理能力、文本快速响应能力及超长上下文,成为开发者接入 AI 对话的热门选择。
  • 本文带你从零开始在 Unity 中接入 DeepSeek,实现实时 AI 对话。
  • 从 API 获取、配置到 UI 交互,全程详细介绍,即使 Unity 新手也能轻松上手。

【Unity-AI开发篇】| 游戏中接入DeepSeek实现AI对话,完整详细步骤

一、DeepSeek

1.1 介绍

DeepSeek(深度求索) 是由幻方量化孵化的一家中国AI实验室,专注于大语言模型的研发。自2023年成立以来,DeepSeek凭借其低成本高性能全开源的技术路线,迅速成为全球AI领域的重要力量。

核心亮点

  • 极致性价比:训练成本仅 557万美元,性能对标 GPT-4
  • 超长上下文:支持 100万tokens,可一次性处理《三体》三部曲
  • 开源生态:模型权重完全开放,开发者可自由部署

1.2 效果展示


二、 获取DeepSeek模型API

2.1 API调用文档

DeepSeek的API文档:https://api-docs.deepseek.com/zh-cn/

2.2 获取API密钥

登录DeepSeek开放平台获取API密钥:https://platform.deepseek.com/api_keys

点击创建API key,然后输入名称,之后点击复制APIKEY(后面在Unity中接入对话时会用到)。

重要提示 :密钥仅在申请成功时完整显示一次,后续只能查看基本信息。请务必妥善保存,建议存储在本地安全位置。

2.3 模型价格

DeeoSeek的百万Tokens价格约为两到三元左右,相比之下已经很划算了,用作对话API使用完全足够。

2.4 用量信息

可以在DeepSeek开放平台查看用量信息,消费金额、API请求次数和Tokens的消耗都可以看到。


三、接入Unity使用

3.1 新建Unity项目

使用UnityHub新建一个Unity项目,然后新建场景和脚本。

将脚本挂载到场景中运行查看效果。

这样就可以在Unity工程中跟DeepSeek进行对话了。

3.1 AI对话脚本

调用脚本 DeepSeekTest.cs

csharp 复制代码
using UnityEngine;

public class DeepSeekTest : MonoBehaviour
{
    private void Start()
    {
        DeepSeekDialogueManager .GetInstance().SendMessageToDeepSeek("你好");
    }
}

核心脚本 DeepSeekDialogueManager.cs

csharp 复制代码
using System.Collections;
using UnityEngine;
using Newtonsoft.Json;
using UnityEngine.Networking;
using UnityEngine.UI;

public class DeepSeekDialogueManager  : MonoBehaviour
{
    private string apiKey = "此处填入申请的API密钥"; // API密钥
    private string apiUrl = "https://api.deepseek.com/v1/chat/completions"; // API请求地址
    private string modelName = "deepseek-chat"; // 使用的模型名称
    private int maxTokens = 1024; // 生成的最大令牌数(控制回复长度)

    private static DeepSeekDialogueManager  intance;
    public static DeepSeekDialogueManager  GetInstance()
    {
        if (intance == null)
        {
            intance = new DeepSeekDialogueManager();
        }
        return intance;
    }

    void Awake()
    {
        intance = this;
    }

    public void SendMessageToDeepSeek(string data)
    {
        StartCoroutine(PostRequest(data));
    }

    IEnumerator PostRequest(string message)
    {
        //创建请求体
        var requestBody = new
        {
            model = modelName,
            max_tokens = maxTokens,
            messages = new[]
            {
                //new { role = "system", content = "给模型添加信息。比如:你是一个UnityAI助手,负责Unity中的对话功能" },
                new { role = "user", content = message }
            },
        };
        //序列化请求体
        string jsonBody = JsonConvert.SerializeObject(requestBody);
        Debug.Log("序列化内容。jsonBody:" + jsonBody);

        //创建网络请求
        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.ConnectionError || request.result == UnityWebRequest.Result.ProtocolError)
        {
            // 打印详细错误信息
            Debug.LogError($"request: {request.result}。Error: {request.error}。Response: {request.downloadHandler.text}");
        }
        else
        {
            // 处理响应
            string responseJson = request.downloadHandler.text;
            Debug.Log("Response: " + responseJson);
            // 解析响应
            var response = JsonConvert.DeserializeObject<DeepSeekResponse>(responseJson);
            if (response != null && response.choices.Length > 0)
            {
                string reply = response.choices[0].message.content;
                Debug.Log("DeepSeek says: " + reply);
            }
            else
            {
                Debug.LogError("Failed to parse response.");
            }
        }
        request.Dispose();
    }

    // 定义响应数据结构
    private class DeepSeekResponse
    {
        public Choice[] choices;
    }
    private class Choice
    {
        public Message message;
    }
    private class Message
    {
        public string content;
    }
}

3.2 搭建简易UI对话界面

使用InputField输入对话内容,使用Text组件接收DeepSeek回复的内容,搭建简易的对话界面。

测试效果如下所示:

3.3 其他模型API对话接入

本文提供的脚本不止可以接入DeepSeek进行对话,还可以接入其他大模型,比如MiniMax等。

只需要修改模型名称API请求地址即可,比如使用MiniMax对话模型脚本修改如下:

csharp 复制代码
    private string apiUrl = "https://api.minimaxi.com/v1/text/chatcompletion_v2"; // API请求地址
    private string modelName = "MiniMax-M2.5"; // 使用的模型名称

不同模型使用的API请求地址和模型名称一般都不同,去对应的官方API文档查看即可。


总结

  • 本文介绍了在Unity中接入DeepSeek以及其他大模型进行AI对话的功能。
  • 近期AI发展非常迅速,搁在ChatGPT刚出时,想接入GPT进行对话要经过很多复杂步骤。
  • 现如今只需要调用 同一个脚本,输入不同厂家的API地址即可,可谓是非常便捷了!

  • 🎬 博客主页:https://xiaoy.blog.csdn.net

  • 🎥 本文由 呆呆敲代码的小Y 原创 🙉

  • 🎄 学习专栏推荐:Unity系统学习专栏

  • 🌲 游戏制作专栏推荐:游戏制作

  • 🌲Unity实战100例专栏推荐:Unity 实战100例 教程

  • 🏅 欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!

  • 📆 未来很长,值得我们全力奔赴更美好的生活✨

  • ------------------❤️分割线❤️-------------------------

资料白嫖,技术互助

学习路线指引(点击解锁) 知识定位 人群定位
🧡 Unity系统学习专栏 入门级 本专栏从Unity入门开始学习,快速达到Unity的入门水平
💛 Unity实战类项目 进阶级 计划制作Unity的 100个实战案例!助你进入Unity世界,争取做最全的Unity原创博客大全。
❤️ 游戏制作专栏 难度偏高 分享学习一些Unity成品的游戏Demo和其他语言的小游戏!
💚 游戏爱好者万人社区 互助/吹水 数万人游戏爱好者社区,聊天互助,白嫖奖品
💙 Unity100个实用技能 Unity查漏补缺 针对一些Unity中经常用到的一些小知识和技能进行学习介绍,核心目的就是让我们能够快速学习Unity的知识以达到查漏补缺
相关推荐
nancy_princess10 小时前
clip实验
人工智能·深度学习
飞哥数智坊10 小时前
TRAE Friends@济南第4次活动:100+极客集结,2小时极限编程燃爆全场!
人工智能
AI自动化工坊10 小时前
ProofShot实战:给AI编码助手添加可视化验证,提升前端开发效率3倍
人工智能·ai·开源·github
飞哥数智坊10 小时前
一场直播涨粉 2 万的背后!OpenClaw + 飞书,正在重塑软件交付的方式
人工智能
飞哥数智坊10 小时前
养虾记第3期:安装、调教、落地,这场沙龙我们全聊了
人工智能
再不会python就不礼貌了10 小时前
从工具到个人助理——AI Agent的原理、演进与安全风险
人工智能·安全·ai·大模型·transformer·ai编程
AI医影跨模态组学10 小时前
Radiother Oncol 空军军医大学西京医院等团队:基于纵向CT的亚区域放射组学列线图预测食管鳞状细胞癌根治性放化疗后局部无复发生存期
人工智能·深度学习·医学影像·影像组学
A尘埃11 小时前
神经网络的激活函数+损失函数
人工智能·深度学习·神经网络·激活函数
没有不重的名么11 小时前
Pytorch深度学习快速入门教程
人工智能·pytorch·深度学习