Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Semantic KernelとBingサーチ-202405

takas
June 01, 2024

Semantic KernelとBingサーチ-202405

2024年05月の.NETラボで発表した資料です。
デモのコード: https://github.com/Takas0522/dotnetlab-demos/tree/main/2024/05/CompAndBingSearch

takas

June 01, 2024
Tweet

More Decks by takas

Other Decks in Technology

Transcript

  1. Takas(@DevTakas) Semantic Kernelとbingサーチ(2024/05)(2024.05 .NETラボ) Semantic Kernel(SK)でBingサーチ • 昨年のBuild Japanでハンズオンが実施されている •

    tomokusaba/BuildJapanAIHandsonDay1-1Ans (github.com) • 上記はSK 0.16.230615.1-preview で実装されている • 今は1.10.0… • 先月の.NETラボでリプレイスしたぞ! • Bingくんはどうなるんだろ? • 破壊的変更を数度経ているので今の実装を確認しよう • SKから提供されているPluginの使い方を把握しよう
  2. Takas(@DevTakas) Semantic Kernelとbingサーチ(2024/05)(2024.05 .NETラボ) 使用できるプラグインと使い方を把握する • 今は正直GitHubで実装をみるのが一番早い • semantic-kernel/dotnet/src/Plugins •

    BingやGoogleで検索できるのはPlugins.Webの実装 • XXXPlugin.csにプラグインの実装がある • メソッド名が呼び出すプラグインになり引数が渡せるパラメータ こんな実装なら”<plugin>.GetSearchResults query=‘hogehoge’ count=‘2’ ” のような呼び出し方になる
  3. Takas(@DevTakas) Semantic Kernelとbingサーチ(2024/05)(2024.05 .NETラボ) 使い方 • Semantic Kernelの設定時にPluginを食わせる • 汎用ホストを利用したセットアップ時にまとめて設定しちゃう

    1. bingConnectorを作成 2. WebSerchPluginを作成 3. KernelPluginFactoryでWebSerchPluginを食わせる ※第2引数の”bing”はなんでもいいっちゃいいけどpluginの呼び出し方が変わるので注意 var bingConnector = new BingConnector(bingSearchKey); var plugin = new WebSearchEnginePlugin(bingConnector); KernelPluginFactory.CreateFromObject(plugin, "bing");
  4. Takas(@DevTakas) Semantic Kernelとbingサーチ(2024/05)(2024.05 .NETラボ) 結果 • こんなデータが返ってくる(HTMLエンコードされている) • Resultsで情報リストで出してSearchで絞る感じの使い方がよい? •

    なので個人的にはPlugin作ってそこからbingサーチして…って 流れでいいんじゃないかな。と思っている。 • 今回のサンプルはそのように構成した