Model Providers
Model providersは、異なる言語モデルとやり取りするために使用されます。MastraはVercel’s AI SDK をモデルルーティング層として使用し、多くのモデルに対して類似した構文を提供します:
import { openai } from "@ai-sdk/openai";
import { Agent } from "@mastra/core/agent";
const agent = new Agent({
name: "WeatherAgent",
instructions: "Instructions for the agent...",
model: openai("gpt-4-turbo"),
});
const result = await agent.generate("What is the weather like?");
AI SDKモデルプロバイダーの種類
AI SDKのモデルプロバイダーは、主に3つのカテゴリに分類できます:
利用可能なすべてのモデルプロバイダーのリストは、AI SDKドキュメント で確認できます。
AI SDKモデルプロバイダーは、Mastraプロジェクトにインストールする必要があるパッケージです。 インストールプロセス中に選択されたデフォルトのモデルプロバイダーがプロジェクトにインストールされます。
異なるモデルプロバイダーを使用したい場合は、そのプロバイダーもプロジェクトにインストールする必要があります。
以下は、Mastraエージェントが異なるタイプのモデルプロバイダーを使用するように設定する方法の例です:
公式プロバイダー
公式モデルプロバイダーはAI SDKチームによって保守されています。
これらのパッケージは通常@ai-sdk/
で始まります。例:@ai-sdk/anthropic
、@ai-sdk/openai
など。
import { openai } from "@ai-sdk/openai";
import { Agent } from "@mastra/core/agent";
const agent = new Agent({
name: "WeatherAgent",
instructions: "Instructions for the agent...",
model: openai("gpt-4-turbo"),
});
AI SDKプロバイダーからヘルパー関数をインポートすることで、追加の設定を行うことができます。 以下はOpenAIプロバイダーを使用した例です:
import { createOpenAI } from "@ai-sdk/openai";
import { Agent } from "@mastra/core/agent"
const openai = createOpenAI({
baseUrl: "<your-custom-base-url>",
apiKey: "<your-custom-api-key>",
...otherOptions
});
const agent = new Agent({
name: "WeatherAgent",
instructions: "Instructions for the agent...",
model: openai("<model-name>"),
});
OpenAI互換プロバイダー
一部の言語モデルプロバイダーはOpenAI APIを実装しています。これらのプロバイダーには、@ai-sdk/openai-compatible
プロバイダーを使用できます。
以下は一般的なセットアップとプロバイダーインスタンスの作成方法です:
import { createOpenAICompatible } from "@ai-sdk/openai-compatible";
import { Agent } from "@mastra/core/agent";
const openaiCompatible = createOpenAICompatible({
name: "<model-name>",
baseUrl: "<base-url>",
apiKey: "<api-key>",
headers: {},
queryParams: {},
fetch: async (url, options) => {
// custom fetch logic
return fetch(url, options);
}
});
const agent = new Agent({
name: "WeatherAgent",
instructions: "Instructions for the agent...",
model: openaiCompatible("<model-name>"),
});
OpenAI互換プロバイダーの詳細については、AI SDKドキュメント を参照してください。
コミュニティプロバイダー
AI SDKはLanguage Model Specification を提供しています。 この仕様に従うことで、AI SDKと互換性のある独自のモデルプロバイダーを作成できます。
一部のコミュニティプロバイダーはこの仕様を実装しており、AI SDKと互換性があります。
その一つである、ollama-ai-provider
パッケージで利用可能なOllamaプロバイダーを見てみましょう。
以下は例です:
import { ollama } from "ollama-ai-provider";
import { Agent } from "@mastra/core/agent";
const agent = new Agent({
name: "WeatherAgent",
instructions: "Instructions for the agent...",
model: ollama("llama3.2:latest"),
});
Ollamaプロバイダーは以下のように設定することもできます:
import { createOllama } from "ollama-ai-provider";
import { Agent } from "@mastra/core/agent";
const ollama = createOllama({
baseUrl: "<your-custom-base-url>",
...otherOptions,
});
const agent = new Agent({
name: "WeatherAgent",
instructions: "Instructions for the agent...",
model: ollama("llama3.2:latest"),
});
Ollamaプロバイダーやその他の利用可能なコミュニティプロバイダーの詳細については、AI SDK documentation を参照してください。
この例ではOllamaプロバイダーの使用方法を示していますが、openrouter
、azure
などの他のプロバイダーも使用できます。
異なるAIプロバイダーは設定に異なるオプションを持つ場合があります。詳細については、AI SDK documentation を参照してください。