自前LLMを使う場合の設定

LLMフレームワーク AutoGen において「自前LLM(オンプレミスLLMやローカルホスト上のLLM)」を使用する場合の設定は、OpenAIなどのクラウドAPIを使う場合とは異なり、エンドポイントの指定やトークン管理、出力形式への対応が必要になります。以下に、自前LLMを使うための設定手順を詳しく説明します。


1. 自前LLMの前提条件

以下の条件を満たすLLMを想定します:

  • ローカルまたは自社クラウドでホストされている

  • HTTPベースのAPIエンドポイントを持つ(例:FastAPI, Flask, vLLM, llama.cppのWeb APIなど)

  • JSON形式で入力/出力できる


2. LLMConfig のカスタム設定

AutoGenでは、LLMを構成するために LLMConfig クラスを使用します。自前LLMを使う場合、custom_llm_provider を定義することで対応可能です。

python
from autogen import AssistantAgent, LLMConfig def call_local_llm(prompt: str) -> str: import requests response = requests.post( "http://localhost:8000/generate", # 自前LLMのAPIエンドポイント json={"prompt": prompt, "max_tokens": 256} ) return response.json().get("response", "") config = LLMConfig( config_name="custom-llm", completion_fn=call_local_llm ) agent = AssistantAgent(name="local_llm_agent", llm_config=config)

ポイント

  • call_local_llm は任意の実装でよく、APIの形式に応じて変える必要があります。

  • response.json() の内容が "response" でない場合、構造に応じて書き換えます。


3. 自前LLMのエンドポイント設計

AutoGenが要求する入出力形式に対応させる必要があります。以下は自前LLMのエンドポイント実装の一例です(FastAPI):

python
from fastapi import FastAPI, Request from pydantic import BaseModel import your_model_loader # 任意のLLM呼び出し関数 app = FastAPI() class PromptRequest(BaseModel): prompt: str max_tokens: int @app.post("/generate") def generate(req: PromptRequest): output = your_model_loader.generate(req.prompt, max_tokens=req.max_tokens) return {"response": output}

4. スレッド実行時の設定例

AutoGenで複数エージェントを連携させる場合でも、上記の LLMConfig をそれぞれのエージェントに渡すことで、自前LLMを使った対話が可能です:

python
from autogen import UserProxyAgent user_proxy = UserProxyAgent(name="user_proxy", is_termination_msg=lambda x: "終了" in x) groupchat = autogen.GroupChat(agents=[user_proxy, agent], messages=[], max_round=5) manager = autogen.GroupChatManager(groupchat=groupchat) user_proxy.initiate_chat(manager, message="Pythonの関数について教えてください。")

5. 注意点

  • レスポンス速度:自前LLMはクラウドAPIに比べて応答時間が長くなる可能性があるため、max_tokenstemperature などを調整するとよいです。

  • 非同期対応:FastAPI等で非同期処理を活用することで性能向上が見込めます。

  • セキュリティ:社内ネットワークやVPN環境下での通信を前提にし、外部からの不正アクセス対策を講じてください。


まとめ

AutoGenで自前LLMを使用するためには、以下の3点が重要です:

  1. カスタム関数 (completion_fn) によるLLM呼び出しのラップ

  2. HTTP APIでLLMを公開

  3. AutoGenの各エージェントに LLMConfig を適用

これにより、OpenAIやClaudeに依存せず、独自LLMによる柔軟なエージェントシステムの構築が可能になります。必要に応じてプロンプトフォーマットやセッション管理もカスタマイズ可能です。

ChatGPT4o 生成日:2025/06/15