前言
想要達到企業級的 AI 解決方案,往往需要多個步驟來完成。
例如我們要做一個客服的 Bot,可能會有以下幾個步驟,
1.將資文件資料分章節把資料轉成 Embedding 存到 DB
2.把使用者輸入的問題也轉成 Embedding
3.拿使用者輸入問題的 Embedding 與 DB 中的 Embedding 比較,取出相似度高的
4.取出使用者輸入問題的 NER ,判斷是否需要到 系統資料庫之中查詢,例如訂單號碼
…
這時可以透過Semantic Kernel來將這些功能建立Skill/plugin,
並且可以透過 Planner 的方式來將這些 Task 整合起來。
VSCode 環境設定
環境: VSCode, .NET
在 VSCode 做這測試時,通常會建立 ipynb 檔案來練習,
而我們是透過 .NET 來練習,
所以請在 VSCode 中安裝Polyglot Notebooks這個擴充。
因為在測試中,常常會使用到 OpenAI 的設定值,所以可以將存起來。
可依0-AI-settings.ipynb來測試透過 Settings.cs
來操作設定檔。
讀取 Azure OpenAI 設定
筆者會使用 Azure OpenAI 的 gpt-35-turbo
及 text-embedding-ada-002
,
所以仿 0-AI-settings.ipynb 的方式,建立 config 來記錄多項 OpenAI 的設定。
所以我在 config 目錄中建立 aiSettings.json
,如下,
1 | [ |
再透過 SettingsReader.cs
來取得想要的設定,如下,
1 | using System; |
在測試 OpenAI 的 ipynb 如下,
1 |
1 | var settings = SettingsReader.LoadFromFile(); |
1 | var gptConfig = SettingsReader.LoadFromFile(alias:"gpt").FirstOrDefault(); |
參考資源
Semantic Kernel Github
Learn Azure OpenAI Service with .NET
Polyglot Notebooks