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

Sementic Kernelのネイティブ関数について

Sementic Kernelのネイティブ関数について

Sementic Kernelのネイティブ関数について
ChatGPTからCopilotまで最新のAIを語ろう - Global AI Bootcamp
https://msdevjp.connpass.com/event/309778/

tomokusaba

March 05, 2024
Tweet

More Decks by tomokusaba

Other Decks in Programming

Transcript

  1. とは?  既存のアプリケーションに エージェントを簡単に追加できる オープンソースの 。  現在は、 、 、

    などのモデル で使用可能。  、 、 で使用可能。  モデルと組み合わせ質問に答えプロセスを自動化するエージェ ントを構築できる。
  2. なぜ、 を選択するのか?  がメインの開発言語であるから  もはや、 はクラウド・デスクトップ・モバイル・ ・ ・ などすべての領域において不可欠の存在になりつつある。

     また、 も ・ ・ すべてで動かす必要が ある。  そのすべての領域での開発が可能なのが  エンタープライズ対応(監視・負荷分散・認証・認可・・・)
  3. 場所コードを取得する  まず、場所コードを返すメソッドを実装。  ポイントはメソッドにつける説明文と引数 につける説明文 や関数の自動呼び出しによって使 用される [KernelFunction, Description("天気を取得する場所コードを取得します。")]

    public static int GetPlaceId([Description("天気を取得する場所")] string place) { var res = place switch { "東京" => 130000, "横浜" => 140000, "名古屋" => 230000, "京都" => 260000, "静岡" => 220000, "福井" => 180000, "新潟" => 150000, "富山" => 160000, "金沢" => 170000, "岐阜" => 210000, "長野" => 200000, "高山" => 190000, "松本" => 200000, "大津" => 250000, "大阪" => 270000, "札幌" => 016000, "仙台" => 040000, "福岡" => 400000, "那覇" => 471000, .... _ => throw new ArgumentException("対応していない地域です。") }; return res; }
  4. 場所コードに基づいて天気を返す  先ほどの場所コードを求める関数が先に 実行されることを前提に場所コードを引 数にする  戻り値は、  に をよしなに解析させていい感

    じに天気を答えてくれる(はず)  呼び出し側は先ほどと同じ [KernelFunction, Description("場所コードの地域の天気を返す")] public async Task<string> Weather([Description("場所コード")]int place) { return (await _client.GetAsync($"https://www.jma.go.jp/bosai/forecast/data/forecast/{place}.jso n")).Content.ReadAsStringAsync().Result; }