AzureからGPTを使ってみる | Autogenを使う(基本)
AutogenもLanggraphと同様に、LLMを使用したmulti-agentを実装するためのフレームワークになります。
使ってみた感想として、Langgraphよりできることは限られていますが、単純にエージェント同士を会話させるだけであれば、Autogenで非常に簡単に構築できます。
まずは、ConversableAgentを使用してAutogenを使ってみます。
ConversableAgent
ConversableAgentは、AutoGenフレームワークにおける汎用的なエージェントクラスで、他のエージェントと対話(会話)する機能を持っています。このクラスは、特定の役割を持つエージェントを構築する際の基盤となります。
対話機能: 他のエージェントからメッセージを受信し、自動的に返信を生成します。受信したメッセージが終了メッセージでない限り、返信を続けます。
カスタマイズ性: デフォルトの動作を変更するために、以下のメソッドをオーバーライドできます。
generate_reply: 自動返信の生成方法を変更します。
get_human_input: 人間からの入力取得方法を変更します。
execute_code_blocks: コードブロックの実行方法を変更します。
run_code: 単一のコードブロックの実行方法を変更します。
execute_function: 関数呼び出しの実行方法を変更します。
人間の介入: human_input_modeパラメータを設定することで、各ターンで人間の入力を受け付けるかどうかを制御できます。
"ALWAYS": 常に人間の入力を求めます。
"NEVER": 人間の入力を求めません。
"TERMINATE": 終了メッセージを受信したとき、または自動返信の回数がmax_consecutive_auto_replyに達したときに人間の入力を求めます。
ConversableAgentは、特定の役割を持つエージェント(例: AssistantAgentやUserProxyAgent)を構築する際の基盤として機能し、柔軟な対話型エージェントの開発を支援します。
実装
#autogen=0.3.1
from dotenv import load_dotenv
import os
import autogen
from autogen import ConversableAgent
dotenv_path = ".env"
load_dotenv(dotenv_path)
#OPENAI_API_TYPE = os.getenv('OPENAI_API_TYPE')
OPENAI_API_BASE = os.getenv('OPENAI_API_BASE')
#OPENAI_API_VERSION = os.getenv('OPENAI_API_VERSION')
OPENAI_API_KEY = os.getenv('OPENAI_API_KEY')
llm_config={"config_list": [{
"model": "gpt-4o-mini",
"api_key": OPENAI_API_KEY,
"api_type": "azure",
"base_url": OPENAI_API_BASE,
"api_version": "2024-08-01-preview",
"max_tokens": 1000,
},]}
agent = ConversableAgent(
"chatbot",
llm_config=llm_config,
code_execution_config=False,
function_map=None,
human_input_mode="NEVER",
)
reply = agent.generate_reply(messages=[{
"role":"user",
"content": "LLMを使った新しいサービスを考えてください。"
}])
print(reply)
今回の例では、単にLLMにプロンプトを投げたの同じ結果ですが、今後multi-agentを構築していきたいと思います。