当前位置: 首页 > backend >正文

Unity AI-使用Ollama本地大语言模型运行框架运行本地Deepseek等模型实现聊天对话(二)

一、使用介绍

官方网页:Ollama官方网址

中文文档参考:Ollama中文文档

相关教程:Ollama教程

使用版本:Unity 2022.3.53f1c1、Ollama 0.6.2

示例模型:llama3.2

二、运行示例

三、使用步骤

1、创建Canvas面板

具体层级如下

主要组件:发送按钮、输入框、滚动框

2、编写代码Webrequest

using System;
using System.Collections;
using System.Text;
using UnityEngine;
using UnityEngine.Networking;
using UnityEngine.UI;
using Button = UnityEngine.UI.Button;public class Webrequest : MonoBehaviour
{//curl http://localhost:11434/api/generate -H "Content-Type: application/json" -d "{ \"model\": \"llama3\", \"prompt\": \"你好\", \"stream\": false }"public Text text;public InputField input;public Button sendBtn;public ScrollRect scrollRect;void Start(){sendBtn.onClick.AddListener(OnSend);}private void Update(){if (Input.GetKeyDown(KeyCode.KeypadEnter) || Input.GetKeyDown(KeyCode.Return)){OnSend();}scrollRect.content.sizeDelta = text.rectTransform.sizeDelta;}void OnSend(){if (input.text != ""){text.text += $"你:{input.text}\n\n";scrollRect.verticalScrollbar.value = -0.1f;StartCoroutine(SendOllamaRequest(input.text));input.text = "";}else{text.text += "不能为空\n\n";scrollRect.verticalScrollbar.value = -0.1f;}}IEnumerator SendOllamaRequest(string value){// 目标 URLstring url = "http://localhost:11434/api/generate";string jsonData = $@"{{""model"": ""llama3.2"",""prompt"": ""{value}"",""stream"": false}}";// 创建 POST 请求UnityWebRequest request = new UnityWebRequest(url, "POST");byte[] bodyRaw = Encoding.UTF8.GetBytes(jsonData);request.uploadHandler = new UploadHandlerRaw(bodyRaw);request.downloadHandler = new DownloadHandlerBuffer();// 设置请求头request.SetRequestHeader("Content-Type", "application/json"); yield return request.SendWebRequest();// 处理响应if (request.result != UnityWebRequest.Result.Success){Debug.LogError($"Error: {request.error}");}else{string responseJson = request.downloadHandler.text;Debug.Log("Response: " + responseJson);// 解析 JSON 响应(示例)OllamaResponse response = JsonUtility.FromJson<OllamaResponse>(responseJson);// 访问字段Debug.Log($"模型: {response.model}");Debug.Log($"回复: {response.response}");text.text += "智能体:" + response.response + "\n\n";Debug.Log($"生成耗时: {response.eval_duration / 1e12} 秒");scrollRect.verticalNormalizedPosition = -0.1f;}}
}

3、将代码拖到场景中

将场景对应的对象拖动到Webrequest上

4、运行场景

输入对话内容,点击发送,等待AI回应

http://www.xdnf.cn/news/2846.html

相关文章:

  • 天梯——链表去重
  • 基于STM32、HAL库的ATSHA204A安全验证及加密芯片驱动程序设计
  • 深度学习大模型: AI 阅卷替代人工阅卷
  • Field访问对象int字段,对象访问int字段,通过openjdk17 C++源码看对象字段访问原理
  • J-Link RTT打印输出调试信息
  • 深入蜂窝物联网:第二章 深度解读 NB-IoT:协议栈、部署与典型应用
  • 两地三中心
  • MySQL数据库(14)—— 使用C操作MySQL
  • 【ACL系列论文写作指北03-相关工作怎么写】-展示视野与定位创新
  • leetcode283-移动零
  • 第二章 信息技术发展(2.2 新一代信息技术及应用)
  • Linux428 chmod 0xxx 1xxx 2xxx 4xxx;umask;chown 属主属组 软件包rpm
  • ECharts散点图-散点图20,附视频讲解与代码下载
  • php数据库连接
  • Docker安装的mysql限制ip访问
  • [三分钟]web自动化测试(三):selenium自动化测试常用函数(下)
  • 基于蓝牙Beacon人员导航方案
  • 【Linux】第十二章 安装和更新软件包
  • 第七章:Server/Client Communication
  • 增量抽取的场景下,周期快照表最新分区的数据是如何生成?
  • 安卓开发学习随记
  • OpenCV 图形API(69)图像与通道拼接函数------将一个 GMat 类型的对象转换为另一个具有不同深度GMat对象函数convertTo()
  • vue3使其另一台服务器上的x.html,实现x.html调用中的函数,并向其传递数据。
  • kylin v10 + argo + ascend 310p多机多卡 pytorch distributed 训练
  • JavaWeb学习打卡-Day4-会话技术、JWT、Filter、Interceptor
  • WPF之Label控件详解
  • GoLand包的爆红问题解决
  • Coupang火箭计划深度攻略:eBay卖家突破韩国市场的三维数据作战模型
  • 面试算法高频08-动态规划-03
  • InitializingBean接口和@PostConstruct-笔记