📖

Microsoft.Extensions.AI.IChatClientにOpenRouterを接続する方法

に公開

やりたいこと

Microsoft.Extensions.AIを使ってChatClientを操作したい。そのときに使用するIChatClientをOpenRouterのmodelに接続したい。

使用ライブラリ

OpenAI公式ライブラリをMicroSoft.Extension.AI.OpenAIを使ってIChatClientにラップする。それを使ってMicrosoft.Extentions.AIを使う感じ。


IChatClient接続方法

下記のようにIChatClentを作成する。OpenAI.Chat.ChatClientを作ってからIChatClientを作る。

        private Microsoft.Extensions.AI.IChatClient client;
        public OpenRouterChat(string model,string apiKey)
        {
            OpenAI.OpenAIClientOptions openAIClientOptions = new OpenAI.OpenAIClientOptions()
            {
                Endpoint = new System.Uri(
                    "https://openrouter.ai/api/v1"  // openrouter endpoint
                )
            };

            OpenAI.Chat.ChatClient openAiClient = new OpenAI.Chat.ChatClient(
                model: model,
                new ApiKeyCredential(apiKey),
                openAIClientOptions
                );

            // create IChatClient with OpenAI.Chat.ChatClient
            client = Microsoft.Extensions.AI.OpenAIClientExtensions.AsIChatClient(openAiClient);
        }

これでMicrosoft.Extentions.AIの機能をOpenRouter modelで使える。
function callも下記のような方法で簡単に実装できる。

            //use user function
            client = ChatClientBuilderChatClientExtensions
               .AsBuilder(client)
               .UseFunctionInvocation()
               .Build();

Discussion