探索 SK 範例 -- GitHub 儲存庫中的機器人

2023-04-02 18:00:42

微軟 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 構建的:

image

安裝好後,切換到目錄samples\dotnet\KernelHttpServer 目錄下執行 func start --csharp:

image

這個表示成功執行了Api服務,接著我們去把 React的 前端應用執行起來,切換到目錄 samples\apps\github-qna-webapp-react,執行之前需要安裝好工具yarn。

執行 yarn install  和 yarn start,看到類似輸出,同時開啟了瀏覽器 http://localhost:3000:

image


這個範例的聊天模型選擇 text-davinci-003:

image

Embedding 模型選擇text-embedding-ada-002:

image

這個範例向量化的檔案是Markdown的檔案,我這裡使用金融巨量資料量化分析:https://github.com/plouto-quants/FBDQA-2019A 來做體驗一下

image

把github 倉庫中的markdown 檔案下載下來後,我們就可以開始體驗問答了:

image

image

從上面這兩個截圖你可以看到這個機器人還是很聰明的了,我們問他這個倉庫裡的檔案裡的相關問題,都能夠回答得很好,這個範例沒有記憶功能,也沒有持久化,每次執行要重新設定。 實際得產品環境下可以繼續基於這樣的範例進行加強,把記憶 和 知識庫向量持久化做好,那麼就可以很輕鬆的應對以下場景:

  • 程式檔案
  • 學生教育材料
  • 公司合同
  • 產品檔案