在当今数字化的时代,语音交互技术正以前所未有的速度发展,为人们的生活和工作带来了极大的便利。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的更多相关文章

  1. 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 ...

  2. 10分钟学会Linux

    10分钟学会Linux有点夸张,可是能够让一个新手初步熟悉Linux中最重要最主要的知识,本文翻译的英文网页在众多Linux入门学习的资料中还是很不错的. 英文地址:http://freeengine ...

  3. 10分钟学会VS NuGet包私有化部署

    前言 我们之前实现了打包发布NuGet,但是发布后的引用是公有的,谁都可以访问,显然这种方式是不可取的. 命令版本:10分钟学会Visual Studio将自己创建的类库打包到NuGet进行引用(ne ...

  4. UWP开发入门(十九)——10分钟学会在VS2015中使用Git

    写程序必然需要版本控制,哪怕是个人项目也是必须的.我们在开发UWP APP的时候,VS2015默认提供了对微软TFS和Git的支持.考虑到现在Git很火,作为微软系的程序员也不得不学一点防身,以免被开 ...

  5. 10分钟学会Less开发环境搭建与初体验

    Less 是一门 CSS 预处理语言,它扩充了 CSS 语言,增加了诸如变量.混合(mixin).函数等功能,让 CSS 更易维护.方便制作主题.扩充. 今天看一下,10分钟能不能手把手快速教会你Le ...

  6. 【译】10分钟学会Pandas

    十分钟学会Pandas 这是关于Pandas的简短介绍主要面向新用户.你可以参考Cookbook了解更复杂的使用方法 习惯上,我们这样导入: In [1]: import pandas as pd I ...

  7. 【C/C++】10分钟教你用C++写一个贪吃蛇附带AI功能(附源代码详解和下载)

    C++编写贪吃蛇小游戏快速入门 刚学完C++.一时兴起,就花几天时间手动做了个贪吃蛇,后来觉得不过瘾,于是又加入了AI功能.希望大家Enjoy It. 效果图示 AI模式演示 imageimage 整 ...

  8. C# 10分钟完成百度语音技术(语音识别与合成)——入门篇

    我们已经讲了人脸识别(入门+进阶).图片识别(入门).下面是链接: C# 10分钟完成百度人脸识别——入门篇 C# 30分钟完成百度人脸识别——进阶篇(文末附源码) C# 10分钟完成百度图片提取文字 ...

  9. 10分钟学会windows中iis搭建服务器集群实现负载均衡和nginx代理转发

    前言 我们之前聊过 10分钟搭建服务器集群--Windows7系统中nginx与IIS服务器搭建集群实现负载均衡:https://www.cnblogs.com/xiongze520/p/103087 ...

  10. 10分钟极速入门dash应用开发

    本文示例代码已上传至我的Github仓库https://github.com/CNFeffery/dash-master 大家好我是费老师,几天前我发布了由我开源维护的dash通用网页组件库fac的0 ...

随机推荐

  1. 电脑ocr软件

    天若ocr 体积小,可以隐藏任务栏,但有时候识别度不好,停止更新了,新项目为树洞ocr github: https://github.com/AnyListen/tianruoocr/releases ...

  2. 【记录】MATLAB|Python NumPy|两种语言的数组/矩阵中元素修改方式的总结和对比

    文章目录 二维矩阵 操作 1. 将数组大于0的数全部加1 2. 删除元素 ①删除单个元素 ②删除一列元素 3. 添加一行或多行 ①添加一行 ②添加多行 4. 获取行/列数 5. 格式化输出数组 结构数 ...

  3. 信息资源管理综合题之“某国企投资IT应用人员减少但生成率没有实质性变化的IT黑洞问题”

    一.某大型国企在IT应用上投资了2000万美元,虽然蓝领工人数量大幅减少,但实际生产率并未有实质性变化 1.企业在IT应用上的巨额投资并未达到预期目标的这种现象被称为什么? 2.产生这现象的原因有哪些 ...

  4. 集合流之"计算集合中的Integer或Double或BigDecimal的sum总和(累计)"

    一.BigDecimal类型 BigDecimal withdrawalFeeExchange = groupDeverList.stream().map(DevWeekReport::getWith ...

  5. wqs 二分

    初看这个东西可能很难理解,我个人也学习了很多遍,然后发现这个直接理解实际上并不难. wqs 二分主要是解决 恰好分成/选 \(k\) 段 这一类 DP 问题的算法.如果不知道形式可以看一下 P4983 ...

  6. 编译原理:python编译器--从AST到字节码

    首先了解下从AST到生成字节码的整个过程: 编译过程 Python编译器把词法分析和语法分析叫做 "解析(Parse)", 并且放在Parser目录下. 从AST到生成 字节码的过 ...

  7. windows安装node.js加配置淘宝镜像

    下载:https://nodejs.org/en/download/ 一路默认,或者选自己的路径,装好后打开cmd, 输入 node --version 显示版本. 是的,环境自己就配置好了! 配置淘 ...

  8. vivo官网APP首页端智能业务实践

    作者:vivo 互联网客户端团队- Li Quanlong 本文介绍端智能技术在vivo官网APP的落地实践,通过抽象问题.提出端智能解决方案.方案落地这三大块内容逐步递进地展开端智能技术的应用过程. ...

  9. 2、redis设置密码【永久性设置密码】

    1)编辑Redis的配置文件 /usr/local/etc/redis.conf 打开Finder,按 Command + Shift + G 快捷键打开"前往文件夹"对话框,在弹 ...

  10. 1 MyBatis动态SQL之综述和 if 语句

    摘要:使用 MyBatis 动态SQL,通过 if, choose, when, otherwise, trim, where, set, foreach和bind等标签,可组合成非常灵活的SQL语句 ...