.NET AI如何从0开始?

news/发布时间2024/7/21 10:48:29

你是否在思考如何利用AI为您公司的产品增加智能方向的业务扩展?

或者你是否有思考过怎么去利用AI减少部分工作量?

如果你有类似于上面的问题,想要学习AI,并且您是一名.NET开发工程师,或您是一名弃暗投明的Java转.NET AI方向的工程师,那么你可以从这一篇开始,使用.NET semantic-kernel进行从0开始的入门基础教程,并且在网站免费访问,当然如果您没有AI,那么也可以在 http://api.token-ai.cn/网站注册,然后网站提供了hunyuan-lite永久免费的模型供您消息使用,下面,我们将要从控制台开始我们的入门教程。

准备

实现我们需要确认您是一名有过.NET经验的开发者,您对于.NET至少是一名初级工程师;

好,下面我们将打开我们常用的编程工具Visual Studio 2022

来,跟着我们一步一步来

创建项目

  1. 点击创建新项目

  1. 搜索控制台应用,然后点击下一步。

  1. 命名1_Semantic_Kernel_Chat,然后点击下一步

这里的框架选择.NET 8.0,然后其他的默认即可,然后点击创建,我们的项目就创建完成,然后紧跟着我们继续。

安装依赖

在上面的步骤我们创建好了一个控制台,然后接下来我们需要对这个控制台项目安装一些需要用到的依赖包。

  1. 右键项目1_Semantic_Kernel_Chat,然后点击管理 NuGet程序包(N)

  1. 然后搜索Semantic.Kernel,找到Microsoft.SemanticKernel,点击安装,然后关闭这个页面。

注册免费的大模型

在上面的教程当中,我们安装了Microsoft.SemanticKernel依赖包,现在我们需要在一个提供免费AI大模型的网站注册,

  1. 打开https://api.token-ai.cn/,如果您有Github账号的话直接点击下面的Github图标即可登录,如果没有则点击注册账号注册一个账号,然后我们登录系统当中,

  1. 创建令牌,点击菜单中的图标钥匙。

  1. 在这里系统默认提供了一个Token,点击复制Key即可,接下来下面会用到这个。

添加Chat对话示例

  1. 由于SK默认的限制并没有提供直接修改地址的接口,所以我们需要自定义HttpClientHandler,下面我们创建一个OpenAIHttpClientHandler.cs,然后提供以下实现
    public class OpenAIHttpClientHandler : HttpClientHandler{private readonly string _uri;public OpenAIHttpClientHandler(string uri) => _uri = uri.TrimEnd('/');protected override async Task<HttpResponseMessage> SendAsync(HttpRequestMessage request,CancellationToken cancellationToken){UriBuilder uriBuilder;if (request.RequestUri?.LocalPath == "/v1/chat/completions"){uriBuilder = new UriBuilder(_uri + "/v1/chat/completions");request.RequestUri = uriBuilder.Uri;}else if (request.RequestUri?.LocalPath == "/v1/embeddings"){uriBuilder = new UriBuilder(_uri + "/v1/embeddings");request.RequestUri = uriBuilder.Uri;}return await base.SendAsync(request, cancellationToken);}}
  1. 打开我们的Program.cs添加具体代码,在这里我们使用了hunyuan-lite模型,这个是https://api.token-ai.cn/提供的免费模型,并且不限制次数(5 QPS)。
using _1_Semantic_Kernel_Chat;
using Microsoft.SemanticKernel;var kernel = Kernel.CreateBuilder().AddOpenAIChatCompletion(modelId: "hunyuan-lite", // 请注意hunyuan-lite模型是免费提供的。apiKey: "这里填写在https://api.token-ai.cn/创建的令牌",httpClient: new HttpClient(new OpenAIHttpClientHandler("https://api.token-ai.cn/"))).Build();await foreach (var item in kernel.InvokePromptStreamingAsync("您好,我是TokenAI。"))
{Console.Write(item.ToString());
};
  1. 执行项目,然后会输出这个模型的回复,当你写到这里的时候那么您已经跨入了第一步,当然不要太高兴了,下面将会迎来更难的挑战。

总结

本文主要为.NET开发者提供了如何从零开始使用.NET的semantic-kernel进行AI开发的教程。首先,作者详细介绍了如何创建一个.NET项目,并安装需要的Microsoft.SemanticKernel依赖包。接着,作者引导读者在提供免费AI大模型的网站上注册,并获取API令牌。然后,作者提供了一个自定义HttpClientHandler的示例,并展示了如何在Program.cs中添加具体代码来使用hunyuan-lite模型。最后,作者演示了项目的执行结果,并提醒读者接下来的学习将会更有挑战性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.shwantai.cn/a/55108114.html

如若内容造成侵权/违法违规/事实不符,请联系万泰站长网进行投诉反馈email:xxxxxxxx@qq.com,一经查实,立即删除!

相关文章

信息系统项目管理师0144:裁剪考虑因素(9项目范围管理—9.2项目范围管理过程—9.2.2裁剪考虑因素)

点击查看专栏目录 文章目录 9.2.2 裁剪考虑因素 9.2.2 裁剪考虑因素 因为每个项目都是独特的&#xff0c;所以项目经理可能根据需要裁剪项目范围管理过程。裁剪时应考虑的因素包括&#xff1a; 知识和需求管理&#xff1a;项目经理应建立哪些指南&#xff1f;为了在未来项目中…

面试题:说一下 http 报文都有哪些东西?

面试题&#xff1a;说一下 http 报文都有哪些东西&#xff1f; HTTP 是传输超文本&#xff08;实际上除了 HTML&#xff0c;可以传输任何类型的文件&#xff0c;如视频、音频、文本等&#xff09;的协议&#xff0c;是一组用于浏览器-服务器之间数据传输的规则。 HTTP 位于 OS…

微信小程序毕业设计-预约挂号系统项目开发实战(附源码+论文)

大家好&#xff01;我是程序猿老A&#xff0c;感谢您阅读本文&#xff0c;欢迎一键三连哦。 &#x1f49e;当前专栏&#xff1a;微信小程序毕业设计 精彩专栏推荐&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; &#x1f380; Python毕业设计…

工业级物联网边缘网关解决方案-天拓四方

随着工业4.0时代的到来&#xff0c;越来越多的企业开始寻求智能化升级&#xff0c;以提高生产效率、降低运营成本并增强市场竞争力。然而&#xff0c;在实际的转型升级过程中&#xff0c;许多企业面临着数据孤岛、设备兼容性差、网络安全风险高等问题&#xff0c;这些问题严重制…

【研发日记】Matlab/Simulink软件优化(二)——通信负载柔性均衡算法

文章目录 前言 背景介绍 初始代码 优化代码 分析和应用 总结 前言 见《【研发日记】Matlab/Simulink软件优化(一)——动态内存负荷压缩》 背景介绍 在一个嵌入式软件开发项目中&#xff0c;需要设计一个ECU节点的CAN网路数据发送&#xff0c;需求是在500k的通信波特率上&a…

vs2022专业版永久密钥

vs2022专业版永久密钥&#xff1a; vs2022专业版永久密钥&#xff1a; Visual Studio 2022 Enterprise&#xff1a;VHF9H-NXBBB-638P6-6JHCY-88JWH Visual Studio 2022 Professional&#xff1a;TD244-P4NB7-YQ6XK-Y8MMM-YWV2J