(1)semantic-kernel入门课程

news/2024/11/16 9:54:07/文章来源:https://www.cnblogs.com/hejiale010426/p/18201666

(1)semantic-kernel入门课程

获取OpenAI在线API

  • 由于在国内的限制,我们并没有办法直接访问OpenAI,所以下面的教程我们会推荐使用https://api.token-ai.cn,然后您需要在这个网站中注册一个账号,并且创建一个令牌(最好是设置无限额度和无过期时间),创建好的令牌我们保存好,下面的基础教程入门会用到,这个令牌是用于代替OpenAI的原有的令牌

创建项目

  • 打开Visual Studio 2022,然后创建一个名称为TokenAI的控制台项目

  • 右键新建的项目,然后点击管理 NuGet 程序包

  • 搜索Semantic Kernel,并且选择包括预览版,然后选择安装Microsoft.SemanticKernel

  • 由于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);}}
  • 实现Stream式对话输出

打开Program.cs

using Microsoft.SemanticKernel;
using TokenAI;var kernel = Kernel.CreateBuilder().AddOpenAIChatCompletion(modelId: "gpt-3.5-turbo",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());
};

执行效果:

我们使用KernelCreateBuilder创建了一个Kernel对象,并且在这个对象中存在InvokePromptStreamingAsync方法,这个方法提供了OpenAI的一个Stream的对话接口,并且我们添加了AddOpenAIChatCompletion添加了自定义的模型和我们的代理网站的key地址。

很好您已经初步入门我们的SK了!

文档站点:https://docs.token-ai.cn/

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

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

相关文章

偶然遇到的cubeide一些问题

昨天感觉cubeide有一些bug,具体表现为在外设的.c文件明明识别到了某个函数但是又打不开定义,于是在软件内更新了一下cubeide,结果更新完软件打不开了,没办法只能重装。重装完后新建工程的时候提示无法生成代码,因为缺少固件包,但打开固件界面又有固件包,如果无视提示强行…

OpenAI“杀疯了”,GPT–4o模型保姆级使用教程!一遍就会!

5月14日凌晨1点,OpenAI发布了名为GPT-4o 最新的大语言模型,再次引领了人工智能领域的又一创新浪潮,让整个行业都为之震动。 据OpenAI首席技术官穆里-穆拉提(Muri Murati)表示,GPT-4o是在继承GPT-4智能的基础上,对文本、视觉和音频功能进行了进一步改进,而且目前所有用户…

计量管理使用文档

计量管理使用文档添加计量要求​​添加计量台账选择计量要求 填写相关信息 会提前一个月发送消息给计量状态为正常的责任人。​​其他功能:暂停计量可以修改计量状态; 再计量可以添加一次计量记录; 台账历史记录,可以查看所有计量记录‍​​

T2T-ViT:更多的局部结构信息,更高效的主干网络 | ICCV 2021

论文提出了T2T-ViT模型,引入tokens-to-token(T2T)模块有效地融合图像的结构信息,同时借鉴CNN结果设计了deep-narrow的ViT主干网络,增强特征的丰富性。在ImageNet上从零训练时,T2T-ViT取得了优于ResNets的性能MobileNets性能相当 来源:晓飞的算法工程笔记 公众号论文: To…

使用Visual Studio将JSON格式数据自动转化为对应的类

一图流 直接将JSON复制下来,然后编辑-选择性贴上-贴上JSON作为类别。

Sqlite 介绍及应用

1.1.1.1 数据库介绍 软件采用SQLITE数据库作为核心管理软件,SQLite数据库以其高效、轻便的特性,在全球范围内得到了广泛的应用。SQLite数据库最大支持128TB,这种数据库支持标准的SQL语言,但与其他数据库管理系统相比,它不需要运行在客户端-服务器架构上,所有的数据都存储…

58同城的登录(RSA算法)

当你看到这个提示的时候,说明当前的文章是由原emlog博客系统搬迁至此的,文章发布时间已过于久远,编排和内容不一定完整,还请谅解 58同城的登录(RSA算法) 日期:2016-11-23 阿珏 教程 浏览:3631次 评论:8条58同城的登录(RSA算法)这一次。又是一个精彩的登录算法解析…

人工智能帮你一键生成完美架构图

简介 架构图通过图形化的表达方式,用于呈现系统、软件的结构、组件、关系和交互方式。一个明确的架构图可以更好地辅助业务分析、技术架构分析的工作。架构图的设计是一个有难度的任务,设计者必须要对业务、相关技术栈都非常清晰才能设计出来符合需求的架构图。实践演练有明确…

SVM

支持向量机相关知识点idea of SVM 分类问题的简化 首先我们考虑这样一个分类问题二分类 线性分类边界 100% 可分我们就能够考虑想出一个好的 idea,如下图所示在上述条件满足的情况下,哪一个分类边界最好? idea:最大化所有点到分类边界的最小距离,这个最小距离称为 margin。…

新浪微博动态 RSA 分析图文+登录

当你看到这个提示的时候,说明当前的文章是由原emlog博客系统搬迁至此的,文章发布时间已过于久远,编排和内容不一定完整,还请谅解 新浪微博动态 RSA 分析图文+登录 日期:2016-10-12 阿珏 教程 浏览:3583次 评论:5条新浪微博动态 RSA 分析一、用到的工具1.ie 浏览器(9 …

那些曾经逝去的记忆

当你看到这个提示的时候,说明当前的文章是由原emlog博客系统搬迁至此的,文章发布时间已过于久远,编排和内容不一定完整,还请谅解 那些曾经逝去的记忆 日期:2016-10-23 阿珏 谈天说地 浏览:1458次 评论:2条有的时候真的想,永远的都不要长大,永远都停留在童年时期。但…

【触想智能】工业一体机安装注意的问题与应用领域分析

工业一体机是一款集工业控制显示设备、计算机系统和物联网等技术于一体的新型智能设备,其被广泛应用于工业生产、商业、交通、大数据等领域。工业一体机在安装时需要注意哪些问题以及其具体应用领域有哪些?下面小编给大家介绍一下。一、安装工业一体机需要注意以下几个方面:…