Unity使用豆包语言模型

环境

使用日期:2026.3.23

OS:Windows10

引擎:Unity2021.3.45

豆包语言模型开通

  1. https://www.volcengine.com
    手机号注册,身份证进行实名认证。
  2. https://www.volcengine.com/product/ark
    点击控制台。
  3. 语言模型开通服务。
  4. API Key 管理,创建API Key。
  5. 接入文档:https://www.volcengine.com/docs/82379/1494384?lang=zh

示例

数据类

csharp 复制代码
[Serializable]
public class RequestChat
{
    public string model;
    public List<Message> messages = new List<Message>();
}

[Serializable]
public class Message
{
    public string role;
    public string content;
}

[Serializable]
public class ResponeChatMessage
{
    public Choices[] choices;
}

[Serializable]
public class Choices
{
    public string finish_reason;
    public int index;
    public Message message;
}

请求示例

基础参数(必须)

  1. baseurl
    https://ark.cn-beijing.volces.com/api/v3/chat/completions
  2. model:
    接入文档中打开 API Explorer,找到model参数,选择开通的语言模型。
    示例:doubao-seed-2-0-code-preview-260215
  3. apiKey:
    创建的Key。

提问

RequestChat类设置使用的语言模型以及问题列表。

Message类中设置提问角色以及问题。

使用UnityWebRequest发送请求,接收响应信息。

使用过程中响应时间比较漫长,大概30秒收到响应。

csharp 复制代码
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Networking;

public class DoubaoChatAPI : MonoBehaviour
{
    [SerializeField] string baseUrl;
    [SerializeField] string model;
    [SerializeField] string apiKey;

    bool isRequesting;//请求中

    float requesetTime;

    string question = string.Empty;
    string answer = string.Empty;

    void OnGUI()
    {
        GUILayout.Label("问题:");
        question = GUILayout.TextField(question);

        GUILayout.Label("回答:");
        GUILayout.Label(answer);

        if (isRequesting == false)
        {
            if (GUILayout.Button("开始对话"))
            {
                isRequesting = true;
                requesetTime = 0;

                RequestChat requestMessages = new RequestChat();
                requestMessages.model = model;
                requestMessages.messages.Add(new Message()
                {
                    role = "user",
                    content = question
                });
                string messages = JsonUtility.ToJson(requestMessages);

                StartCoroutine(PostChat(baseUrl, messages, (result, value) =>
                {
                    Debug.Log(value);
                    if (result)
                    {
                        var info = JsonUtility.FromJson<ResponeChatMessage>(value);
                        answer = info.choices[0].message.content;
                    }
                    else
                    {
                        answer = "回答失败,请查看日志";
                    }
                    isRequesting = false;
                }));
            }
        }
        else
        {
            requesetTime += Time.deltaTime;
            GUILayout.Label("请求时间:" + requesetTime);
        }
    }

    IEnumerator PostChat(string url, string jsonData, Action<bool, string> callback)
    {
        using (UnityWebRequest request = new UnityWebRequest(url, UnityWebRequest.kHttpVerbPOST))
        {
            byte[] bodyRaw = System.Text.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)
            {
                callback?.Invoke(true, request.downloadHandler.text);
            }
            else
            {
                Debug.LogError("请求失败:" + request.error);
                callback?.Invoke(false, request.downloadHandler.text);
            }
        }
    }
}
相关推荐
audyxiao0016 小时前
让大语言模型先读懂外部事件:一种文本增强与正则扩散对齐的多模态时序预测框架
人工智能·语言模型·多模态·时间序列
Dawson Zhu7 小时前
大模型推理的三维本质:原理解析与工程实践
人工智能·语言模型·架构·aigc·agi
云和数据.ChenGuang8 小时前
langchain4j的RAG入门
人工智能·深度学习·机器学习·语言模型·fastapi
Funny_AI_LAB9 小时前
重构 Coding Agent:当 LLM 没有 KV Cache 时,上下文工程该怎么做?
人工智能·经验分享·语言模型·重构
淡海水11 小时前
16-02-C#常用数据结构源码-附录B-源码索引速查
unity·c#·游戏引擎·il2cpp
Xuantong_9011 小时前
拆解 Claude Sonnet5.5 底层设计:自适应思考、子智能体协同,Anthropic 如何重构中端大模型推理范式
人工智能·语言模型·重构
警醒与鞭策1 天前
【无标题】
android·unity·性能优化·游戏引擎·perforce
zhchyun20081 天前
【Unity UI 进阶】仿 Element UI 打造企业级 Unity UI 组件库(10)
ui·unity·游戏引擎
空 白II1 天前
9.26 大语言模型研究简报:把 Agent 开发做成“数据—训练—Harness”闭环
人工智能·语言模型·自然语言处理
地狱为王1 天前
Unity使用NVIDIA的Audio2Face驱动口型
unity·游戏引擎