【Unity+AI01】在Unity中调用DeepSeek大模型!实现AI对话功能!

2024-06-11 17:36

本文主要是介绍【Unity+AI01】在Unity中调用DeepSeek大模型!实现AI对话功能!,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

要在Unity中调用DeepSeek的API并实现用户输入文本后返回对话的功能,你需要遵循以下步骤:

  1. 获取API密钥
    首先,你需要从DeepSeek获取API密钥。这通常涉及到注册账户,并可能需要订阅相应的服务。

  2. 集成HTTP请求库
    Unity本身不直接支持HTTP请求,因此你需要集成一个HTTP请求库,如UnityWebRequest或第三方库如LitJsonNewtonsoft.Json等,用于处理JSON数据的序列化和反序列化。

  3. 编写API调用代码
    在Unity中创建一个脚本,用于处理用户输入和API调用。以下是一个简单的示例,展示了如何使用UnityWebRequest来调用API:

一、搭建场景

一个输入框、一个用于显示的文本框即可,一个按钮,按钮上有个回调函数!

 总共就一个脚本:

你用人家官方的大模型,肯定需要联网调用,去官网(我用的DeepSeek),其他网站都一样!申请个API key 就可以了!代码里面需要是我的API ,里面只有2块钱!仅供大家体验!你可以自己充值,还算便宜!

传送门:DeepSeek这是我的 APIKEY:sk-d17be4a259504db3825c8d20d463dddd 

整个代码如下:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Networking;
using Newtonsoft.Json;
using System.Text;
using TMPro;public class DeepSeekChat : MonoBehaviour
{// 替换为你的 DeepSeek API keyprivate string apiKey = "sk-d17be4a259504db3825c8d20d463dddd";private string apiUrl = "https://api.deepseek.com/chat/completions";// Unity UI 元素public TMP_InputField userInputField;public TextMeshProUGUI chatOutputText;// 用于存储对话历史private List<Dictionary<string, string>> messages = new List<Dictionary<string, string>>();void Start(){// 初始化系统消息messages.Add(new Dictionary<string, string> { { "role", "system" }, { "content", "You are a helpful assistant." } });}public void OnSendButtonClicked(){string userMessage = userInputField.text;if (string.IsNullOrEmpty(userMessage)) return;// 添加用户消息到对话历史messages.Add(new Dictionary<string, string> { { "role", "user" }, { "content", userMessage } });// 调用 DeepSeek APIStartCoroutine(CallDeepSeekAPI());}private IEnumerator CallDeepSeekAPI(){// 创建请求数据var requestData = new{model = "deepseek-chat",messages = messages,stream = false};string jsonData = JsonConvert.SerializeObject(requestData);// 创建 UnityWebRequestUnityWebRequest 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");request.SetRequestHeader("Authorization", "Bearer " + apiKey);// 发送请求yield return request.SendWebRequest();if (request.result == UnityWebRequest.Result.Success){// 解析响应var response = JsonConvert.DeserializeObject<DeepSeekResponse>(request.downloadHandler.text);string botMessage = response.choices[0].message.content;// 显示响应chatOutputText.text += "\nAI: " + botMessage;// 添加 AI 消息到对话历史messages.Add(new Dictionary<string, string> { { "role", "assistant" }, { "content", botMessage } });}else{Debug.LogError("Error: " + request.error);}}[System.Serializable]public class DeepSeekResponse{public Choice[] choices;}[System.Serializable]public class Choice{public Message message;}[System.Serializable]public class Message{public string content;}
}
  1. 处理用户输入
    你需要在Unity中创建一个用户界面(UI),用于接收用户输入。这可以通过Unity的UI系统来实现,例如使用InputField组件来获取文本输入。

  2. 集成用户输入和API调用
    将用户输入与API调用脚本集成,使得用户输入的文本能够被传递给API,并且API的响应能够被显示在Unity的UI中。

  3. 测试和调试
    在Unity中运行你的应用程序,测试用户输入和API调用的流程,确保一切按预期工作。

请注意,上述代码仅为示例,你需要根据DeepSeek API的具体要求来调整URL、参数和JSON解析逻辑。此外,确保你的Unity项目中包含了所有必要的库,并且你的API密钥是安全的,不要在公共代码库中暴露它。

这篇关于【Unity+AI01】在Unity中调用DeepSeek大模型!实现AI对话功能!的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1051835

相关文章

C++对象布局及多态实现探索之内存布局(整理的很多链接)

本文通过观察对象的内存布局,跟踪函数调用的汇编代码。分析了C++对象内存的布局情况,虚函数的执行方式,以及虚继承,等等 文章链接:http://dev.yesky.com/254/2191254.shtml      论C/C++函数间动态内存的传递 (2005-07-30)   当你涉及到C/C++的核心编程的时候,你会无止境地与内存管理打交道。 文章链接:http://dev.yesky

揭秘未来艺术:AI绘画工具全面介绍

📑前言 随着科技的飞速发展,人工智能(AI)已经逐渐渗透到我们生活的方方面面。在艺术创作领域,AI技术同样展现出了其独特的魅力。今天,我们就来一起探索这个神秘而引人入胜的领域,深入了解AI绘画工具的奥秘及其为艺术创作带来的革命性变革。 一、AI绘画工具的崛起 1.1 颠覆传统绘画模式 在过去,绘画是艺术家们通过手中的画笔,蘸取颜料,在画布上自由挥洒的创造性过程。然而,随着AI绘画工

一份LLM资源清单围观技术大佬的日常;手把手教你在美国搭建「百万卡」AI数据中心;为啥大模型做不好简单的数学计算? | ShowMeAI日报

👀日报&周刊合集 | 🎡ShowMeAI官网 | 🧡 点赞关注评论拜托啦! 1. 为啥大模型做不好简单的数学计算?从大模型高考数学成绩不及格说起 司南评测体系 OpenCompass 选取 7 个大模型 (6 个开源模型+ GPT-4o),组织参与了 2024 年高考「新课标I卷」的语文、数学、英语考试,然后由经验丰富的判卷老师评判得分。 结果如上图所

AI儿童绘本创作

之前分享过AI儿童绘画的项目,但是主要问题是角色一致要花费很长的时间! 今天发现了这款,非常奈斯! 只需输入故事主题、风格、模板,软件就会自动创作故事内容,自动生成插画配图,自动根据模板生成成品,测试效果如下图。 变现方式:生成儿童绘本发布到各平台,吸引宝妈群体进私域。  百度网盘 请输入提取码百度网盘为您提供文件的网络备份、同步和分享服务。空间大、速度快、安全

大语言模型(LLMs)能够进行推理和规划吗?

大语言模型(LLMs),基本上是经过强化训练的 n-gram 模型,它们在网络规模的语言语料库(实际上,可以说是我们文明的知识库)上进行了训练,展现出了一种超乎预期的语言行为,引发了我们的广泛关注。从训练和操作的角度来看,LLMs 可以被认为是一种巨大的、非真实的记忆库,相当于为我们所有人提供了一个外部的系统 1(见图 1)。然而,它们表面上的多功能性让许多研究者好奇,这些模型是否也能在通常需要系

通过SSH隧道实现通过远程服务器上外网

搭建隧道 autossh -M 0 -f -D 1080 -C -N user1@remotehost##验证隧道是否生效,查看1080端口是否启动netstat -tuln | grep 1080## 测试ssh 隧道是否生效curl -x socks5h://127.0.0.1:1080 -I http://www.github.com 将autossh 设置为服务,隧道开机启动

时序预测 | MATLAB实现LSTM时间序列未来多步预测-递归预测

时序预测 | MATLAB实现LSTM时间序列未来多步预测-递归预测 目录 时序预测 | MATLAB实现LSTM时间序列未来多步预测-递归预测基本介绍程序设计参考资料 基本介绍 MATLAB实现LSTM时间序列未来多步预测-递归预测。LSTM是一种含有LSTM区块(blocks)或其他的一种类神经网络,文献或其他资料中LSTM区块可能被描述成智能网络单元,因为

vue项目集成CanvasEditor实现Word在线编辑器

CanvasEditor实现Word在线编辑器 官网文档:https://hufe.club/canvas-editor-docs/guide/schema.html 源码地址:https://github.com/Hufe921/canvas-editor 前提声明: 由于CanvasEditor目前不支持vue、react 等框架开箱即用版,所以需要我们去Git下载源码,拿到其中两个主

android 免费短信验证功能

没有太复杂的使用的话,功能实现比较简单粗暴。 在www.mob.com网站中可以申请使用免费短信验证功能。 步骤: 1.注册登录。 2.选择“短信验证码SDK” 3.下载对应的sdk包,我这是选studio的。 4.从头像那进入后台并创建短信验证应用,获取到key跟secret 5.根据技术文档操作(initSDK方法写在setContentView上面) 6.关键:在有用到的Mo

android一键分享功能部分实现

为什么叫做部分实现呢,其实是我只实现一部分的分享。如新浪微博,那还有没去实现的是微信分享。还有一部分奇怪的问题:我QQ分享跟QQ空间的分享功能,我都没配置key那些都是原本集成就有的key也可以实现分享,谁清楚的麻烦详解下。 实现分享功能我们可以去www.mob.com这个网站集成。免费的,而且还有短信验证功能。等这分享研究完后就研究下短信验证功能。 开始实现步骤(新浪分享,以下是本人自己实现