代码

using System.Runtime.CompilerServices;
using System.Threading.Tasks;
using UnityEngine;
using UnityEngine.Networking; public class TestKimi : MonoBehaviour {
private string apiKey = "Your Key"; // 替换为你的API密钥
private string apiUrl = "https://api.moonshot.cn/v1/chat/completions"; // KimiChat的API端点 public void MyBtn() {
OnUserInput("说下最近天气");
} private void OnUserInput(string input) {
PostRequest(input);
} // 定义一个异步方法来发送POST请求
private async Task<string> PostRequest(string jsonData) {
// 使用using声明确保UnityWebRequest被正确地释放
using (UnityWebRequest request = new UnityWebRequest(apiUrl, "POST")) {
request.SetRequestHeader("Content-Type", "application/json");
request.SetRequestHeader("Authorization", $"Bearer {apiKey}"); var chatRequest = new ChatRequest {
model = "moonshot-v1-8k",
messages = new ChatMessage[] {
new ChatMessage { role = "system", content = "你是 Kimi,由 Moonshot AI 提供的人工智能助手..." },
new ChatMessage { role = "user", content = jsonData }
},
temperature = 0.3f,
}; string str = JsonUtility.ToJson(chatRequest);
Debug.Log(str);
Debug.Log("Sending request to: " + request.url);
request.uploadHandler = new UploadHandlerRaw(System.Text.Encoding.UTF8.GetBytes(str));
request.downloadHandler = new DownloadHandlerBuffer(); // 发送请求并等待异步完成
await request.SendWebRequest(); if (request.result != UnityWebRequest.Result.ConnectionError &&
request.result != UnityWebRequest.Result.ProtocolError) {
Debug.Log(request.downloadHandler.text);
return request.downloadHandler.text;
} else {
Debug.LogError(request.error);
}
} return "";
}
} public static class ExtensionMethods {
public static TaskAwaiter GetAwaiter(this AsyncOperation asyncOp) {
var tcs = new TaskCompletionSource<object>();
asyncOp.completed += obj => { tcs.SetResult(null); };
return ((Task)tcs.Task).GetAwaiter();
}
} [System.Serializable]
public class ChatMessage {
public string role;
public string content;
} [System.Serializable]
public class ChatRequest {
public string model;
public ChatMessage[] messages;
public float temperature;
}

Unity接入 KimiChat 代码示例的更多相关文章

  1. Unity构造函数注入代码示例

    Unity构造函数注入代码示例 如果使用 Unity 实例化一个类,该类的构造函数依赖一个或多个其他类,则 Unity 会为构造函数自动创建参数中指定的被依赖的类的实例.例如,下面的代码展示了一个名为 ...

  2. 微软IOC容器Unity简单代码示例3-基于约定的自动注册机制

    @(编程) [TOC] Unity在3.0之后,支持基于约定的自动注册机制Registration By Convention,本文简单介绍如何配置. 1. 通过Nuget下载Unity 版本号如下: ...

  3. Unity接入ShareSDK实现QQ登录和QQ分享、微信分享

    原文链接:Unity接入ShareSDK实现QQ登录和QQ分享.微信分享 由于微信登录需要企业审核,我这里就不说明了,有需要的可以去官网看一下文档,和QQ登录比多了一个打包的步骤. 第一步:到官网申请 ...

  4. 领域驱动开发推荐代码示例 — Microsoft NLayerApp

    简介: Microsoft NLayerApp是由微软西班牙团队出品的基于.NET 4.0的“面向领域N层分布式架构”代码示例,在codeplex上的地址是:http://microsoftnlaye ...

  5. 微信消息接收 验证URL有效性 C#代码示例

    官方文档只给出了PHP的示例代码 开发者提交信息后,微信服务器将发送GET请求到填写的URL上,GET请求携带四个参数: 参数 描述 signature 微信加密签名,signature结合了开发者填 ...

  6. My.Ioc 代码示例——如何使用默认构造参数,以及如何覆盖默认构造参数

    在 Ioc 世界中,有些框架(例如 Autofac/NInject/Unity)支持传递默认参数,有些框架(例如 SimpleInjector/LightInjector 等)则不支持.作为 My.I ...

  7. 【《Effective C#》提炼总结】提高Unity中C#代码质量的21条准则

    作者:Williammao, 腾讯移动客户端开发工程师 商业转载请联系腾讯WeTest获得授权,非商业转载请注明出处. 原文链接:http://wetest.qq.com/lab/view/290.h ...

  8. 批量录入快递地址-快宝地址服务(PHP代码示例)

    快递地址写错了怎么办?快递地址写的不详细怎么办?怎么皮批量录入收件人地址?微商怎么批量录入发件人地址?快宝地址清洗,有效的解决了寄送快递时,批量录入收件人信息.发件人信息时,纠正地址数据,不完整地址识 ...

  9. Unity接入谷歌支付

    文章理由 前段时间负责Unity接入Google内购功能,一开始研究别人的技术博客时发现,他们的文章都有些年头了,有些细节的地方已经不像n年前那样了,技术永远是需要更新的,而这篇就作为2016年末的最 ...

  10. 【《Effective C#》提炼总结】提高Unity中C#代码质量的22条准则

    引言 原则1尽可能地使用属性而不是可直接访问的数据成员 原则2偏向于使用运行时常量而不是编译时常量 原则3 推荐使用is 或as操作符而不是强制类型转换 原则4 推荐使用条件属性而不是if条件编译 原 ...

随机推荐

  1. Wan2.1 t2v模型Lora Fine-Tune

    Wan2.1 t2v模型Lora Fine-Tune 1. Wan2.1模型 Wan2.1是由阿里巴巴开源的AI视频生成大模型,具备强大的视觉生成能力,支持文本到视频(T2V)和图像到视频(I2V)任 ...

  2. linux期末考试题(1)

    linux期末考试题 一.选择题(共20分,每小题2分) 1.以下哪个环境变量表示shell搜索外部命令或程序路径(C) A.ENV B.PWD C.PATH D.ROOT 解答: ENV用于显示当前 ...

  3. Font Awesome文档使用手册

    Font Awesome 字体为您提供可缩放矢量图标,它可以被定制大小.颜色.阴影以及任何可以用CSS的样式. 使用文档:https://fa4.uihtm.com/ Font Awesome 是一套 ...

  4. AI 狂飙时代,开源项目的新机遇?

    我每天都会刷 GitHub 热榜,围观全球开发者们都在捣鼓啥新鲜的玩意儿.我真切地感受到 AI 的浪潮汹涌而至,它正以一种摧枯拉朽(这个词可能有点猛,但感觉就是这么快!)的速度,改变着软件开发行业,同 ...

  5. 工具:Fscan-windows使用教程

    下载地址: https://github.com/shadow1ng/fscan windwos10-64位下载:  下载到本地文件夹然后直接运行:

  6. 工具:Prisms:漏洞扫描器,棱镜开源版

    Prism X 集资产发现.指纹识别.弱密码检测.漏洞验证于一体,采用模块化 YAML 插件策略配置,实现与真实攻击链高度相似的 PoC 验证机制. 跨平台和轻量级设计:支持多种操作系统,易于部署和使 ...

  7. 从一个例子看tvm执行流程

    TVM整体流程(参考:TVM介绍) 机器学习模型在用TVM优化编译器框架进行变换时的步骤: 从Tensorflow/pytorch或ONNX等框架导入模型 import层是TVM从其他框架中导入模型的 ...

  8. Go Gob编码

    gob(Go binary)是Goland包自带的一个数据结构序列化的编码/解码工具.编码使用Encoder,解码使用Decoder.一种典型的应用场景就是RPC(remote procedure c ...

  9. 取余(rem)和取模(mod)的区别

    设 A rem B || A mod B 生成机制 取余:采取fix()函数,向0方向取整 取模:采取floor()函数,向无穷小方向取整 当A,B异号时(其实同号也是这个规律-) 取余:结果和A同号 ...

  10. 【公众号搬运】React-Native开发鸿蒙NEXT(7)-上线

    .markdown-body { line-height: 1.75; font-weight: 400; font-size: 16px; overflow-x: hidden; color: rg ...