MulmoCastにimage agentを追加する

MulmoCastにimage agentを追加する

MulmoCastにimage agentを追加する

MulmoCastでは、現在、openaiとgoogleのtext2image のapiをサポートしています。 MulmoCastはGraphAIで動いているのでGraphAIのimage agent を追加することで、機能を拡張することが可能です(現在のところ、リポジトリを fork してコードを追加する必要があります)。

GraphAIのimage agentを作成する

src/agents/image_foo_agent.tsを参考に独自のimage_agentを作成する

agentinputspromptstring型として受け取り、{ buffer } の形式で PNG 画像ファイルを返すように実装します。

画像の保存処理は agent 側で行う必要はありません。画像のキャッシュや保存は mulmo 側で処理されます。

export const newImageAgent: AgentFunction = async ({ namedInputs }) => {
  const { prompt } = namedInputs;

  ...
  ...
    
  return { buffer: Buffer.from(image_base64, "base64") };
  
};

作成した関数は、agentInfoWrapperか、もしくは通常の方法でagent化します。

imageAgents に登録する

以下のいずれかの方法で、imageAgents に agent を追加します:

このときのagent名は、この後の設定でのagentNameやdictonaryのkeyとなります。

provider2agent に情報を追加する

src/utils/provider2agent.tsに、作成したimage agentの情報を追加します。

export const provider2ImageAgent = {
  openai: {
    agentName: "imageOpenaiAgent",
    defaultModel: "gpt-image-1",
    models: ["dall-e-3", "gpt-image-1"],
  },
  yourImageAgentProvider: {
    agentName: "newImageAgent",
    defaultModel: "image1",
    models: ["image1", "image2"],
  },
};  

keyはAgent名と一致させる必要があります。graphaiのagentsにわたすときのkeyです。 defaultModelやmodelsはschemaのvalidationで使われます。

追加方法は既存の他のimage agentの定義を参考にしてください。

環境変数の設定

agentの動作に必要な環境変数を追加します。

src/utils/utils.ts内のsettings2GraphAIConfig関数にあるConfigDataDictionaryに設定を追記してください。

  const config: ConfigDataDictionary<DefaultConfigData> = {
    newImageAgent: {
      apiKey: getKey("IMAGE", "NEW_IMAGE_API_KEY"),
    },

keyはprovider2ImageAgentのagentNameと一致させる必要があります。 環境変数または設定経由でgraphai configからagentconfigに値を渡すことができます。

agentのconfigにapiKeyとして値が渡されます。 IMAGE_NEW_IMAGE_API_KEY もしくは、NEW_IMAGE_API_KEYの環境変数で設定してください。

API キーなどの機密情報はこの方法で渡してください。こちらも他のimage agentを参考にすると実装しやすいです。

mulmoScriptにproviderとして指定する

scriptsを参考に、imageParamsを設定してください。

以上で、image agentを追加して利用することができます。

imagesの処理でmovieを作成できますが、これもほぼ同じですので興味があればソースを参考にすれば追加可能です。

この記事をシェア

関連記事

記事一覧に戻る