微软 3月22日 一篇文章“Semantic-kernel 嵌入和记忆:使用聊天UI探索GitHub Repos”[1] ,文章中进行了展示了嵌入,该文章解释了他们如何帮助开发人员提出有关GitHub存储库的问题或使用自然语言查询探索GitHub存储库。与嵌入一起,这是在SK存储器[2](嵌入集合)的帮助下完成的,这有助于为提示(或SK世界中的ASK)提供更广泛的上下文。
浏览 GitHub 中的示例:https://aka.ms/sk/repo/samples/github-repo-qa-bot
阅读有关示例的文档:https://aka.ms/sk/github-bot
首先把https://github.com/microsoft/semantic-kernel 克隆到本地。
第一步是运行 本地 API 服务,是基于 Azure function v4 用 C# 编写的,并公开了一些Semantic-kernel API。 运行这个服务,需要安装 Azure Functions Core Tools:https://learn.microsoft.com/zh-cn/azure/azure-functions/functions-run-local?tabs=v4%2Cwindows%2Ccsharp%2Cportal%2Cbash,下载工具本地安装,Azure function是用.NET 构建的:
安装好后,切换到目录samples\dotnet\KernelHttpServer 目录下运行 func start --csharp:
这个表示成功运行了Api服务,接着我们去把 React的 前端应用运行起来,切换到目录 samples\apps\github-qna-webapp-react,运行之前需要安装好工具yarn。
运行 yarn install 和 yarn start,看到类似输出,同时打开了浏览器 http://localhost:3000:
这个示例的聊天模型选择 text-davinci-003:
Embedding 模型选择text-embedding-ada-002:
这个示例向量化的文档是Markdown的文件,我这里使用金融大数据量化分析:https://github.com/plouto-quants/FBDQA-2019A 来做体验一下
把github 仓库中的markdown 文件下载下来后,我们就可以开始体验问答了:
从上面这两个截图你可以看到这个机器人还是很聪明的了,我们问他这个仓库里的文档里的相关问题,都能够回答得很好,这个示例没有记忆功能,也没有持久化,每次运行要重新配置。 实际得产品环境下可以继续基于这样的示例进行加强,把记忆 和 知识库向量持久化做好,那么就可以很轻松的应对以下场景: