微軟 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 檔案下載下來後,我們就可以開始體驗問答了:
從上面這兩個截圖你可以看到這個機器人還是很聰明的了,我們問他這個倉庫裡的文件裡的相關問題,都能夠回答得很好,這個示例沒有記憶功能,也沒有持久化,每次執行要重新配置。 實際得產品環境下可以繼續基於這樣的示例進行加強,把記憶 和 知識庫向量持久化做好,那麼就可以很輕鬆的應對以下場景:
- 程式文件
- 學生教育材料
- 公司合同
- 產品文件