在当今数字化的时代,语音交互技术正以前所未有的速度发展,为人们的生活和工作带来了极大的便利。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. Java 中的强引用、软引用、弱引用和虚引用分别是什么?

    Java 中的引用类型:强引用.软引用.弱引用和虚引用 Java 中的引用类型主要分为 强引用.软引用.弱引用 和 虚引用,它们对对象的生命周期和垃圾回收(GC)行为产生不同的影响. 1. 强引用(S ...

  2. DPDI online在线调度系统环境部署

    DPDI online简介: DPDI Online 是一款基于Kettle的强大在线任务调度平台,凭借其高效与灵活性,专为调度和监控Kettle客户端生成的ETL任务而设计 DPDI online部 ...

  3. jmeter之请求体类型

    一.当post方法的提交数据类型(content-type)为multipart/form-data,请求体为文件文件上传. fiddler抓包请求体的name对应jmerter文件上传的参数名称,f ...

  4. Visual Studio 2022 划词翻译插件!该插件可以方便地翻译变量名、类名、方法名等单词,帮助您更轻松地理解和使用代码。

    EnTranslate一款简单的划词翻译插件 简介 支持划词翻译(鼠标悬浮到单词上方将自动翻译) 支持播放单词发音 支持调用在线接口翻译 强大的单词拆分能力: 支持驼峰, 下划线形式等各种单词拆分 丰 ...

  5. EFCore(五)——多个DBContext的Code First指定对应的DBContext更新

    此环境为ASP.NET Core的项目 1.在需要更新的DBContext里添加空的构造函数 2.打开Nuget命令行选择对应的目录位置 3.带参数-Context指定对应的DBContext 1.  ...

  6. 解锁UV工具新玩法:让Python脚本运行更高效的实用技巧

    作为Python开发者,你是否经常被依赖安装的漫长等待.虚拟环境的繁琐管理,或是脚本分享时"环境不一致"的问题困扰? 近年来,一款名为UV的工具悄然兴起,它不仅以极速安装依赖著称, ...

  7. 【Linux】Linux内核模块开发

    Linux内核模块开发 零.关于 1.概述 最近在学习Linux相关的东西,学习了U-Boot的编译,Linux的编译,能够在开发板上运行自己编译的U-Boot和Linux了,那么接下来就是在自己编译 ...

  8. 【记录】Docker|Ubuntu Docker 修改dockerfile换源、主机共享网络解决apt update 失败

    本文测试环境:虚拟机 Ubuntu20.04 Docker20 1 修改dockerfile dockerfile第二行后面加如下内容,一键换源: RUN sed -i s:/archive.ubun ...

  9. beagle 的使用方法和参数信息

    一.基本使用场景 1. 单倍型推断(Phasing) 将未分型的基因型数据(如 VCF/BCF 文件)推断为单倍型. java -jar beagle.jar \ gt=input.vcf.gz \ ...

  10. C语言与汇编

    C变量 C 语言是如何把各种类型的变量转换成对应的汇编语言呢? 高级语言更容易被工程师理解,而汇编语言这样的低级语言,则更容易被机器解读.这是因为汇编语言里的大部分内容都跟机器语言一一对应,你可以这样 ...