LLMフレームワーク AutoGen において「自前LLM(オンプレミスLLMやローカルホスト上のLLM)」を使用する場合の設定は、OpenAIなどのクラウドAPIを使う場合とは異なり、エンドポイントの指定やトークン管理、出力形式への対応が必要になります。以下に、自前LLMを使うための設定手順を詳しく説明します。
1. 自前LLMの前提条件
以下の条件を満たすLLMを想定します:
-
ローカルまたは自社クラウドでホストされている
-
HTTPベースのAPIエンドポイントを持つ(例:FastAPI, Flask, vLLM, llama.cppのWeb APIなど)
-
JSON形式で入力/出力できる
2. LLMConfig のカスタム設定
LLMConfig のカスタム設定AutoGenでは、LLMを構成するために LLMConfig クラスを使用します。自前LLMを使う場合、custom_llm_provider を定義することで対応可能です。
ポイント
-
call_local_llmは任意の実装でよく、APIの形式に応じて変える必要があります。 -
response.json()の内容が"response"でない場合、構造に応じて書き換えます。
3. 自前LLMのエンドポイント設計
AutoGenが要求する入出力形式に対応させる必要があります。以下は自前LLMのエンドポイント実装の一例です(FastAPI):
4. スレッド実行時の設定例
AutoGenで複数エージェントを連携させる場合でも、上記の LLMConfig をそれぞれのエージェントに渡すことで、自前LLMを使った対話が可能です:
5. 注意点
-
レスポンス速度:自前LLMはクラウドAPIに比べて応答時間が長くなる可能性があるため、
max_tokensやtemperatureなどを調整するとよいです。 -
非同期対応:FastAPI等で非同期処理を活用することで性能向上が見込めます。
-
セキュリティ:社内ネットワークやVPN環境下での通信を前提にし、外部からの不正アクセス対策を講じてください。
まとめ
AutoGenで自前LLMを使用するためには、以下の3点が重要です:
-
カスタム関数 (
completion_fn) によるLLM呼び出しのラップ -
HTTP APIでLLMを公開
-
AutoGenの各エージェントに
LLMConfigを適用
これにより、OpenAIやClaudeに依存せず、独自LLMによる柔軟なエージェントシステムの構築が可能になります。必要に応じてプロンプトフォーマットやセッション管理もカスタマイズ可能です。
ChatGPT4o 生成日:2025/06/15