10分钟学会使用.Net技术开发一个Ai智能体应用-小智esp32
在当今数字化的时代,语音交互技术正以前所未有的速度发展,为人们的生活和工作带来了极大的便利。XiaoZhiSharp 作为一款使用 C# 语言编写的 “小智SDK”,为开发者提供了一个强大而灵活的工具,能够轻松实现跨平台的语音交互应用。今天,我们就来深入了解一下这个项目。
一、项目简介
XiaoZhiSharp(XiaoZhi SDK & Client)是使用 C# 语言编写的 小智SDK 开发工具包,它为开发者提供了便捷的方式来集成 AI 智能体功能到自己的应用中。该 SDK 不仅提供了丰富的 API,还附带了一个 ConsoleApp 、MauiBlazorApp 示例,方便开发者快速上手。
二、环境准备
2.1 安装 .NET SDK
确保你已经安装了 .NET 8.0 或更高版本。你可以从 [.NET 官方网站] 下载并安装适合你操作系统的版本。
2.2 克隆项目
打开终端或命令提示符,执行以下命令克隆扣子 Coze 项目:
github
git clone https://github.com/zhulige/xiaozhi-sharp.git
cd xiaozhi-sharp
gitcode
git clone https://gitcode.com/zhulige/xiaozhi-sharp
cd xiaozhi-sharp
三、添加 NuGet 包
你可以使用以下命令添加 XiaoZhiSharp NuGet 包到你的项目中:
dotnet add package XiaoZhiSharp --version 1.0.6
四、配置项目
服务器地址:
https://xiaozhi.me
或
https://coze.nbee.net
五、示例代码
5.1 Agent
using XiaoZhiSharp;
using XiaoZhiSharp.Protocols;
XiaoZhiAgent agent = new XiaoZhiAgent();
agent.OnMessageEvent += Agent_OnMessageEvent;
agent.OnOtaEvent += Agent_OnOtaEvent;
await agent.Start(); // 会自动进行OTA检查,然后连接WebSocket
private static Task Agent_OnMessageEvent(string type, string message)
{
LogConsole.InfoLine($"[{type}] {message}");
return Task.CompletedTask;
}
private static Task Agent_OnOtaEvent(OtaResponse? otaResponse)
{
if (otaResponse != null)
{
LogConsole.InfoLine("OTA检查完成,获取到服务器配置信息");
// 处理OTA响应数据,包括WebSocket URL、Token、MQTT配置等
}
return Task.CompletedTask;
}
5.2 MCP
/XiaoZhiSharp_ConsoleApp/McpTools
[McpServerToolType]
public sealed class Chrome_Tool
{
[McpServerTool, Description("打开网站")]
public static string OpenUrl(string url)
{
return OpenUrlInChrome(url);
}
public static string OpenUrlInChrome(string url)
{
try
{
// 如果URL为空,使用默认主页
if (string.IsNullOrEmpty(url))
url = "https://www.google.com";
// 在Windows上,使用Process.Start()直接打开URL
// 系统会自动选择默认浏览器
Process.Start(new ProcessStartInfo(url) { UseShellExecute = true });
return "网站打开成功";
}
catch (Exception ex)
{
Console.WriteLine($"打开浏览器时出错: {ex.Message}");
// 如果上述方法失败,尝试直接启动Chrome
//TryOpenChromeDirectly(url);
return "网站打开失败";
}
}
}
语音尝试 帮我打开百度、帮我搜索今天最新的新闻。
六、贡献与反馈
如果你在使用过程中发现了项目中的问题,或者有任何改进的建议,欢迎随时提交 Issue 或者 Pull Request。你还可以加入项目的社区,分享经验、提出建议或获取帮助。
七、总结
通过本文的介绍,你已经学会了如何使用 .NET 技术开发一个基于小智的 AI 智能体应用。小智还提供了丰富的功能和便捷的MCP,让开发者可以轻松集成 AI 智能体功能到自己的应用中。希望你能在实际项目中发挥小智MCP的强大能力,开发出更加优秀的应用。
以上就是使用 .NET 技术开发一个 AI 智能体应用 - 小智Sharp的详细步骤,希望对你有所帮助!
10分钟学会使用.Net技术开发一个Ai智能体应用-小智esp32的更多相关文章
- 10分钟学会搭建Android开发环境 Eclipse: The import android.support cannot be resolved
10分钟学会搭建Android开发环境_隋雨辰 http://v.youku.com/v_show/id_XNTE2OTI5Njg0.html?from=s1.8-1-1.2 The import a ...
- 10分钟学会Linux
10分钟学会Linux有点夸张,可是能够让一个新手初步熟悉Linux中最重要最主要的知识,本文翻译的英文网页在众多Linux入门学习的资料中还是很不错的. 英文地址:http://freeengine ...
- 10分钟学会VS NuGet包私有化部署
前言 我们之前实现了打包发布NuGet,但是发布后的引用是公有的,谁都可以访问,显然这种方式是不可取的. 命令版本:10分钟学会Visual Studio将自己创建的类库打包到NuGet进行引用(ne ...
- UWP开发入门(十九)——10分钟学会在VS2015中使用Git
写程序必然需要版本控制,哪怕是个人项目也是必须的.我们在开发UWP APP的时候,VS2015默认提供了对微软TFS和Git的支持.考虑到现在Git很火,作为微软系的程序员也不得不学一点防身,以免被开 ...
- 10分钟学会Less开发环境搭建与初体验
Less 是一门 CSS 预处理语言,它扩充了 CSS 语言,增加了诸如变量.混合(mixin).函数等功能,让 CSS 更易维护.方便制作主题.扩充. 今天看一下,10分钟能不能手把手快速教会你Le ...
- 【译】10分钟学会Pandas
十分钟学会Pandas 这是关于Pandas的简短介绍主要面向新用户.你可以参考Cookbook了解更复杂的使用方法 习惯上,我们这样导入: In [1]: import pandas as pd I ...
- 【C/C++】10分钟教你用C++写一个贪吃蛇附带AI功能(附源代码详解和下载)
C++编写贪吃蛇小游戏快速入门 刚学完C++.一时兴起,就花几天时间手动做了个贪吃蛇,后来觉得不过瘾,于是又加入了AI功能.希望大家Enjoy It. 效果图示 AI模式演示 imageimage 整 ...
- C# 10分钟完成百度语音技术(语音识别与合成)——入门篇
我们已经讲了人脸识别(入门+进阶).图片识别(入门).下面是链接: C# 10分钟完成百度人脸识别——入门篇 C# 30分钟完成百度人脸识别——进阶篇(文末附源码) C# 10分钟完成百度图片提取文字 ...
- 10分钟学会windows中iis搭建服务器集群实现负载均衡和nginx代理转发
前言 我们之前聊过 10分钟搭建服务器集群--Windows7系统中nginx与IIS服务器搭建集群实现负载均衡:https://www.cnblogs.com/xiongze520/p/103087 ...
- 10分钟极速入门dash应用开发
本文示例代码已上传至我的Github仓库https://github.com/CNFeffery/dash-master 大家好我是费老师,几天前我发布了由我开源维护的dash通用网页组件库fac的0 ...
随机推荐
- Java 中的强引用、软引用、弱引用和虚引用分别是什么?
Java 中的引用类型:强引用.软引用.弱引用和虚引用 Java 中的引用类型主要分为 强引用.软引用.弱引用 和 虚引用,它们对对象的生命周期和垃圾回收(GC)行为产生不同的影响. 1. 强引用(S ...
- DPDI online在线调度系统环境部署
DPDI online简介: DPDI Online 是一款基于Kettle的强大在线任务调度平台,凭借其高效与灵活性,专为调度和监控Kettle客户端生成的ETL任务而设计 DPDI online部 ...
- jmeter之请求体类型
一.当post方法的提交数据类型(content-type)为multipart/form-data,请求体为文件文件上传. fiddler抓包请求体的name对应jmerter文件上传的参数名称,f ...
- Visual Studio 2022 划词翻译插件!该插件可以方便地翻译变量名、类名、方法名等单词,帮助您更轻松地理解和使用代码。
EnTranslate一款简单的划词翻译插件 简介 支持划词翻译(鼠标悬浮到单词上方将自动翻译) 支持播放单词发音 支持调用在线接口翻译 强大的单词拆分能力: 支持驼峰, 下划线形式等各种单词拆分 丰 ...
- EFCore(五)——多个DBContext的Code First指定对应的DBContext更新
此环境为ASP.NET Core的项目 1.在需要更新的DBContext里添加空的构造函数 2.打开Nuget命令行选择对应的目录位置 3.带参数-Context指定对应的DBContext 1. ...
- 解锁UV工具新玩法:让Python脚本运行更高效的实用技巧
作为Python开发者,你是否经常被依赖安装的漫长等待.虚拟环境的繁琐管理,或是脚本分享时"环境不一致"的问题困扰? 近年来,一款名为UV的工具悄然兴起,它不仅以极速安装依赖著称, ...
- 【Linux】Linux内核模块开发
Linux内核模块开发 零.关于 1.概述 最近在学习Linux相关的东西,学习了U-Boot的编译,Linux的编译,能够在开发板上运行自己编译的U-Boot和Linux了,那么接下来就是在自己编译 ...
- 【记录】Docker|Ubuntu Docker 修改dockerfile换源、主机共享网络解决apt update 失败
本文测试环境:虚拟机 Ubuntu20.04 Docker20 1 修改dockerfile dockerfile第二行后面加如下内容,一键换源: RUN sed -i s:/archive.ubun ...
- beagle 的使用方法和参数信息
一.基本使用场景 1. 单倍型推断(Phasing) 将未分型的基因型数据(如 VCF/BCF 文件)推断为单倍型. java -jar beagle.jar \ gt=input.vcf.gz \ ...
- C语言与汇编
C变量 C 语言是如何把各种类型的变量转换成对应的汇编语言呢? 高级语言更容易被工程师理解,而汇编语言这样的低级语言,则更容易被机器解读.这是因为汇编语言里的大部分内容都跟机器语言一一对应,你可以这样 ...