AutoGen Core : フレームワークガイド : コンポーネント設定

AutoGen コンポーネントは汎用的な方法で宣言的に設定できます。これは AutoGen studio のような設定ベースのエクスペリエンスをサポートするためですが、多くの他のシナリオでも有用です。

AutoGen Core : フレームワークガイド : コンポーネント設定

作成 : クラスキャット・セールスインフォメーション
作成日時 : 04/15/2025

* 本記事は github microsoft/autogen の以下のページを独自に翻訳した上でまとめ直し、補足説明を加えています :

* サンプルコードの動作確認はしておりますが、必要な場合には適宜、追加改変しています。
* ご自由にリンクを張って頂いてかまいませんが、sales-info@classcat.com までご一報いただけると嬉しいです。

 

クラスキャット 人工知能 研究開発支援サービス ⭐️ リニューアルしました 😉

クラスキャット は人工知能に関する各種サービスを提供しています。お気軽にご相談ください :

  • 人工知能導入個別相談会(無償)実施中! [詳細]

  • 人工知能研究開発支援 [詳細]
    1. 自社特有情報を含むチャットボット構築支援
    2. 画像認識 (医療系含む) / 画像生成

  • PoC(概念実証)を失敗させないための支援 [詳細]

お問合せ : 下記までお願いします。

  • クラスキャット セールス・インフォメーション
  • sales-info@classcat.com
  • ClassCatJP

 

 

AutoGen Core : フレームワークガイド : コンポーネント設定

AutoGen コンポーネントは汎用的な方法で宣言的に設定できます。これは AutoGen studio のような設定ベースのエクスペリエンスをサポートするためですが、多くの他のシナリオでも有用です。

これを提供するシステムは「コンポーネント設定 (component configuration)」と呼ばれます。AutoGen では、コンポーネントは単純に config オブジェクトから作成できるもので、それ自体を config オブジェクトにダンプできます。このようにして、コードでコンポーネントを定義して、それから config オブジェクトを得られます。

このシステムは汎用的で、AutoGen 自体の外側で定義されたコンポーネント (例えば拡張機能) を同じ方法で構成できます。

 

これは状態とどのように違うのでしょう?

これは明らかにすべき非常に重要なポイントです。オブジェクトのシリアル化について話すとき、そのオブジェクト自体を構成するすべてのデータを含める必要があります。メッセージ履歴等のものも含まれます。シリアライズされた状態からデシリアライズする場合、正確に同じオブジェクトを取得する必要があります。これはコンポーネント構成には当てはまりません。

コンポーネント configuration はオブジェクトのブループリント (青写真) として考えるべきで、同じ設定のオブジェクトの多くのインスタンスを作成するために繰り返し型抜き (stamp out) できます。

 

使用方法

Python のコンポーネントがありそれ用に config を取得したい場合、単純に dump_component() を呼び出します。結果としてのオブジェクトを load_component() に渡してコンポーネントを復元できます。

 

config からコンポーネントをロードする

config オブジェクトからコンポーネントをロードするには、load_component() メソッドを使用できます。このメソッドは config オブジェクトを受け取り、コンポーネント・オブジェクトを返します。望むインターフェイス上でこのメソッドを呼び出すのが最善です。例えばモデルクライアントをロードするには :

from autogen_core.models import ChatCompletionClient

config = {
    "provider": "openai_chat_completion_client",
    "config": {"model": "gpt-4o"},
}

client = ChatCompletionClient.load_component(config)

 

コンポーネント・クラスの作成

指定のクラスにコンポーネント機能を追加するには :

  1. クラス継承リストに Component() への呼び出しを追加します。

  2. _to_config()_from_config() メソッドを実装します。

例えば :

from autogen_core import Component, ComponentBase
from pydantic import BaseModel


class Config(BaseModel):
    value: str


class MyComponent(ComponentBase[Config], Component[Config]):
    component_type = "custom"
    component_config_schema = Config

    def __init__(self, value: str):
        self.value = value

    def _to_config(self) -> Config:
        return Config(value=self.value)

    @classmethod
    def _from_config(cls, config: Config) -> "MyComponent":
        return cls(value=config.value)

 

シークレット

config オブジェクトのフィールドがシークレット値である場合、SecretStr を使用してマークする必要があります、これは値が config オブジェクトにダンプされないことを保証します。

例えば :

from pydantic import BaseModel, SecretStr


class ClientConfig(BaseModel):
    endpoint: str
    api_key: SecretStr

 

以上