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

Semantic Kernelを使ってAIチャットアプリを構築する - ライブコーディング編 -

Semantic Kernelを使ってAIチャットアプリを構築する - ライブコーディング編 -

Semantic Kernelを使ってAIチャットアプリを構築する - ライブコーディング編 -
.NETラボ 勉強会 2023年7月
https://dotnetlab.connpass.com/event/288776/

tomokusaba

July 22, 2023
Tweet

More Decks by tomokusaba

Other Decks in Programming

Transcript

  1. Semantic Kernelを使ってAI
    チャットアプリを構築する
    - ライブコーディング編 -
    株式会社SAKURUG
    エンジニアリングユニット
    草場 友光
    .NETラボ 2023年7月

    View full-size slide

  2. 自己紹介
    • 普段は主にシステムをAzureにモダナ
    イズする仕事をしています。
    • コミュニティ活動を通じて知識をアッ
    プデートしています。
    • 2022/08-2023 Microsoft MVP
    (Developer Technologies)
    • tomo_kusaba

    View full-size slide

  3. 宣伝
    【VISION】ひとの可能性を開花させる企業であり続ける
    VISIONに共感できる仲間募集中。

    View full-size slide

  4. 注意
    • 個人の見解・解釈が多分に入っています。
    • 見解の相違・事実誤認などありましたらご指摘ください。
    • Semantic Kernelは現在Preview版です。急速な勢いで機能実
    装されています。
    • 2023年7月22日現在の preview版に基づいています。
    • ここで紹介した方法について破壊的変更などの可能性があるこ
    とに留意してください。
    • #dotnetlabでtweetすると右側に表示されます

    View full-size slide

  5. 今日の目的
    • Semantic KernelというOpenAI Serviceでとても便利なライブラ
    リがあります。
    • Microsoft Build Japanのハンズオンで「Semantic Kernelを
    使ってAIチャットアプリを構築する」をやり会場の収容人数を
    上回る方に申し込みを頂きました。
    • 結果的にハンズオンに参加できない方が出てきてしましました。
    • そこで、今回は同じ内容でライブコーディングを行います。

    View full-size slide

  6. Semantic Kernelを使ってAIチャットアプリを
    構築する -事前説明スライド-
    ・草場 友光(Microsoft MVP for Developer Technologies / 株式会社SAKURUG)
    ・髙尾 哲朗(Microsoft MVP for Developer Technologies)
    ・大川 貴志(Microsoft MVP for M365 Development)

    View full-size slide

  7. Agenda  12:15 ~ 事前説明
     12:20 ~ ハンズオン開始(ChatGPTのよ
    うなAIと会話できるチャットアプリの構
    築)
     13:00 ~ プロンプトを変えてみよう
     13:10 ~ Bing Searchを利用してWeb情
    報からAIが回答するようにしよう
     13:35 ~ まとめ

    View full-size slide

  8. Semantic Kernelとは?
    • Semantic KernelはMicrosoftがOSSとして発表したAzure
    OpenAI ServiceやOpenAI Serviceをアプリケーションに素早く簡
    単に組み込むことができるようにするライブラリです。
    • 複数の関数を一つのパイプラインに結合できそのパイプラインを
    AIが自動的に作ってくれる。。。
    • 今日はこの中でも組み込みのChatCompletionを使用していきま
    す。

    View full-size slide

  9. Kernelのインスタンス化
    kernel = new KernelBuilder()
    .WithLogger(_logger)
    .WithAzureChatCompletionService(deploymentName, baseUrl, key)
    .Build();
    deploymentName
    key
    baseUrl

    View full-size slide

  10. ハンズオンで使用するコード
    https://github.com/tomokusaba/BuildJapanAIHandsonDay1-1

    View full-size slide

  11. Bing Searchについて13:10~(予定)

    View full-size slide

  12. Bing Searchの使用法(準備)
    Microsoft.SemanticKernel.Skills.Webを追加でNuget

    View full-size slide

  13. Bing Searchの結果をプロンプトに
    • Bing Searchの結果をプロンプトに格納したい
    • SystemMessageが何件もあるのはいかがなものか?
    • すべて文字列連結して1つのSystemMessageに格納
    • SystemMessageが次の会話に残るのもなんか嫌
    • 一時的なチャット履歴を作成しこれにBing Searchの結果を格納しgptさん
    で会話生成!

    View full-size slide

  14. Bing Searchの使用法(メソッド)
    public async Task> SearchAsync(string
    query, int count = 1, int offset = 0, CancellationToken
    cancellationToken = default)を呼ぶ
    検索結果の見出しの部分が本文として取得できる
    ここの部分が取得できる!
    つまり途中で切れてる

    View full-size slide

  15. Bing Searchの使用法(インスタンス化)
    引数はAPI KeyとILogger(オプション)
    https://github.com/microsoft/semantic-
    kernel/blob/main/dotnet/src/Skills/Skills.Web/Bing/BingConnector.cs

    View full-size slide

  16. おしまい
    おしまい

    View full-size slide