🐥

Semantic Kernel syntax examples の実行メモ

2023/05/08に公開

今回は Visual Studio 上で動作するサンプルを確認してみましたが、実行方法が少しわかりにくかったのでメモとして残しておきます。

まず、semantic-kernel/dotnet/SK-dotnet.sln を Visual Studio で開きます。

samples というフォルダがあり、その中に KernelSyntaxExamples というプロジェクトがあるので左の▷を押して展開すると 複数のサンプルがあることがわかります。

KernelSyntaxExamples

またこのフォルダの中に README.md があり、シークレット マネージャー というもので各種 API キー等の設定をしています。

これは例えば、コマンドプロンプトで、

dotnet user-secrets set "OPENAI_API_KEY" "<YOURINFO>"

と入力して実行すると、以下のファイルが生成されます。

%APPDATA%\Microsoft\UserSecrets\<user_secrets_id>\secrets.json

この情報を 各サンプルが参照するようになっています。

ただ、このプロジェクトは README に「半ランダムなサンプル集」とも書かれているように、雑多なAPIキー等が必要になります。そしてすべての API キーを登録しておかないと、プロジェクトを実行してもどこかしらでエラーで止まります。

登録が必要なものは以下の bat ファイルとしてまとめておいたので、この <YOURINFO> の部分をすべて修正して filename.bat として保存し、実行すれば良いのですが、すべての情報を取得して入力するのはなかなか大変です。
必要な情報がどのサンプルで利用しているのかをコメントで記載しておいたので、動作確認する必要がないと感じたサンプルは、Program.cs を開いてコメントするのが良いと思います。

rem プロジェクトのトップディレクトリにこのバッチファイルを置いて実行する
cd .\samples\dotnet\kernel-syntax-examples

dotnet user-secrets set "OPENAI_API_KEY" "<YOURINFO>"

dotnet user-secrets set "AZURE_OPENAI_DEPLOYMENT_NAME" "<YOURINFO>"
dotnet user-secrets set "AZURE_OPENAI_ENDPOINT" "<YOURINFO>"
dotnet user-secrets set "AZURE_OPENAI_KEY" "<YOURINFO>"
dotnet user-secrets set "AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT_NAME" "<YOURINFO>"
dotnet user-secrets set "AZURE_OPENAI_EMBEDDINGS_ENDPOINT" "<YOURINFO>"
dotnet user-secrets set "AZURE_OPENAI_EMBEDDINGS_KEY" "<YOURINFO>"

rem Example04_CombineLLMPromptsAndNativeCode で利用
rem Example07_BingAndGoogleSkills で利用
rem Example31_CustomPlanner で利用
dotnet user-secrets set "BING_API_KEY" "<YOURINFO>"

rem Example07_BingAndGoogleSkills で利用
dotnet user-secrets set "GOOGLE_API_KEY" "<YOURINFO>"
dotnet user-secrets set "GOOGLE_SEARCH_ENGINE_ID" "<YOURINFO>"

rem Example14_SemanticMemory で利用
dotnet user-secrets set "ACS_ENDPOINT" "<YOURINFO>"
dotnet user-secrets set "ACS_API_KEY" "<YOURINFO>"

rem Example19_Qdrant で利用
dotnet user-secrets set "QDRANT_PORT" "<YOURINFO>"
dotnet user-secrets set "QDRANT_ENDPOINT" "<YOURINFO>"

rem Example20_HuggingFace で利用
dotnet user-secrets set "HF_API_KEY" "<YOURINFO>"

rem Example22_OpenApiSkill_AzureKeyVault で利用
dotnet user-secrets set "AZURE_KEYVAULT_CLIENTID" "<YOURINFO>"
dotnet user-secrets set "AZURE_KEYVAULT_TENANTID" "<YOURINFO>"

rem Example23_OpenApiSkill_Github で利用
dotnet user-secrets set "GITHUB_PERSONAL_ACCESS_TOKEN" "<YOURINFO>"

rem Example24_OpenApiSkill_Jira で利用
dotnet user-secrets set "MY_EMAIL_ADDRESS" "<YOURINFO>"
dotnet user-secrets set "JIRA_API_KEY" "<YOURINFO>"

PAUSE

APIキー等を設定したら、あとはスタートプロジェクトを KernelSyntaxExamples に変更して実行するだけです。

StartUpProject


なお、ものによっては、以下のように別途修正が必要なものもあります。動作しなかった場合はコードを確認してみてください。

Example21_ChatGPTPlugins

  • <chatGPT-plugin> の部分を URI に修正する必要あり

Example22_OpenApiSkill_AzureKeyVault

  • キーボルトの情報を修正する必要あり

Example24_OpenApiSkill_Jira

  • サーバURLの <your-domain> を修正する必要あり

Example26_AADAuth

  • Azure の情報を修正する必要あり

Example27_SemanticFunctionsUsingChatGPT

  • Azure の情報を修正する必要あり

Discussion