見出し画像

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(大規模言語モデル)を活用した新しいサービスのアイデアです。
### サービス名: "AskMe! - AIパーソナルアシスタント" ####
概要: AskMe!は、ユーザーの日常生活をサポートするAIパーソナルアシスタントです。ユーザーは口頭またはテキストで質問をすると、LLMがそれに対してリアルタイムで対応します。特に、雑談、旅行計画、料理レシピ、健康情報、AIによる語学学習のサポートを重点的に扱います。
#### 主な機能:
1. **雑談サポート**: - ユーザーは気軽に雑談を楽しむことができ、ストレス軽減や社交的スキルの向上に役立ちます。
2. **旅行プランナー**: - ユーザーの興味や予算に基づいて、旅行先の提案やアクティビティ、宿泊施設などをカスタマイズして提案します。
3. **レシピお助け**: - 冷蔵庫にある食材を基に、簡単な料理レシピを提案。食材の入手可能性や料理の手順を解説します。
4. **健康アドバイザー**: - 日々の健康に関する質問に回答し、フィットネスのアドバイスや食事の提案を行います。ただし医療行為は行わず、基本的な健康情報を提供する形にします。
5. **語学学習アシスタント**: - 新しい言語を学びたいユーザーに対して、会話練習の相手や文法のアドバイスをリアルタイムで行います。
6. **カスタマイズ可能なプロフィール**: - ユーザーは自分の興味や好みに基づいて、パーソナライズされたフィードバックや提案を受け取ることができます。
#### プラットフォーム: - スマートフォンアプリ(iOS, Android) - Webアプリケーション - スマートスピーカーとの統合
#### 収益モデル: - フリーミアムモデル: 基本機能は無料で提供し、プレミアム機能(例:個別の旅行プランニング、健康管理など)をサブスクリプションで提供。
#### 目標: - ユーザーの生活の質を向上させ、有意義な時間を提供すること。 - AIを使って、親しみやすい、かつ使いやすいサービスを実現すること。 このようなサービスは、特に忙しい現代人にとって、便利で価値のあるものとなるでしょう。

今回の例では、単にLLMにプロンプトを投げたの同じ結果ですが、今後multi-agentを構築していきたいと思います。

いいなと思ったら応援しよう!