本文以某山引擎为例,可以使用其他家的某义千问、某心一言、某大某飞等等,没有广告,放心使用。
注册与认证
各家可能稍微有点差异,按照各家的引导流程即可。
- 进入官网,注册一个账号,并完成实名认证。
- 进入控制台,申请一个属于自己的 API Key。
选择模型与创建接入点
- 在管理控制台挑选想要调用的某包大模型,如 doubao-pro-4k 等,点击开通服务。
- 进入在线推理板块,点击 “创建推理接入点”,根据需求填写信息,添加对应的模型。
配置 Unity 项目
- 在 Unity 项目中,可能需要根据某包大模型的 SDK 要求进行一些环境配置。如果有专门的 Unity SDK 包,将其导入到 Unity 项目中。
- 若通过 HTTP 请求接入,可使用 Unity 的
UnityWebRequest
类来发送请求和接收响应。
编写代码接入某包大模型
- 获取必要的参数,如 API 域名、模型名称、API Key 等。API 域名为
https://ark.cn-beijing.volces.com/api/v3
,模型名称根据选择的具体模型而定。 - 构建请求体,以下是示例代码:
using UnityEngine; using UnityEngine.Networking; using System.Collections; using System.Text; using Newtonsoft.Json; public class DoubaoChat : MonoBehaviour { private string apiUrl = "https://ark.cn-beijing.volces.com/api/v3/chat/completions"; private string apiKey = "YOUR_API_KEY"; private string model = "YOUR_MODEL_NAME"; IEnumerator SendChatRequest(string userMessage) { // 构建请求数据 var requestData = new { model = model, messages = new[] { new { role = "system", content = "你是豆包,是由字节跳动开发的AI人工智能助手" }, new { role = "user", content = userMessage } } }; // 将请求数据转换为JSON格式 string requestBody = JsonConvert.SerializeObject(requestData); // 创建UnityWebRequest对象 using (UnityWebRequest request = new UnityWebRequest(apiUrl, "POST")) { // 设置请求头 request.SetRequestHeader("Content-Type", "application/json"); request.SetRequestHeader("Authorization", "Bearer " + apiKey); // 设置请求体 byte[] bodyRaw = Encoding.UTF8.GetBytes(requestBody); request.uploadHandler = new UploadHandlerRaw(bodyRaw); request.downloadHandler = new DownloadHandlerBuffer(); // 发送请求并等待响应 yield return request.SendWebRequest(); // 处理响应 if (request.isDone) { if (request.result == UnityWebRequest.Result.Success) { string responseJson = request.downloadHandler.text; // 解析响应JSON数据,获取聊天回复内容 var responseData = JsonConvert.DeserializeObject<ChatResponse>(responseJson); Debug.Log("豆包回复:" + responseData.choices[0].message.content); } else { Debug.LogError("请求出错:" + request.error); } } } } // 定义聊天响应的数据结构 private class ChatResponse { public Choice[] choices; } private class Choice { public Message message; } private class Message { public string content; } }
- 你可以在其他脚本中调用
SendChatRequest
方法来发送用户消息并获取豆包的回复,例如:public class ExampleUsage : MonoBehaviour { private DoubaoChat doubaoChat; void Start() { doubaoChat = GetComponent<DoubaoChat>(); // 发送聊天请求 StartCoroutine(doubaoChat.SendChatRequest("常见的十字花科植物有哪些?")); } }
运行Unity 稍等片刻就可以看到返回的对话内容了