AI SDK

このプラグインは統一されたAIモデル設定センターを提供し、すべての主要なAIモデルをサポートします。一度設定すれば、どこでも使用でき、API Keyを繰り返し設定する必要がありません。


AI SDK 依存プラグインの紹介

「AI SDK 依存プラグイン」は、ブラウザプラグイン開発者向けの開発ツールキットで、各主要 AI モデルをサポートする統一された AI モデル設定センターを提供し、一度設定すれば、どこでも使用できます。このツールキットにより、開発者は自分のプラグインでテキスト生成、構造化オブジェクト生成、ストリーミング処理などの AI 機能を簡単に実装できます。「AI SDK 依存プラグイン」を統合することで、開発者はプラグインの AI 処理機能をシームレスに拡張し、ユーザーにより知的で実用的な機能を提供できます。

統一設定センター:一度の設定で、どこでも使用

AI SDK プラグインは統一された AI モデル設定センターを提供し、以下をサポートします:

商用モデル

  • OpenAI(GPT-4、GPT-4 Vision)

  • Anthropic Claude(Claude 3 Opus、Claude 3.5 Sonnet)

  • Google Gemini(Gemini Pro、Gemini Ultra)

  • DeepSeek(DeepSeek Chat、DeepSeek Coder)

  • Alibaba Qwen(通義千問)

ローカルモデル(完全オフライン実行):

  • Ollama(Llama 3、Mistral、Phi-3 などをサポート)

  • LM Studio(グラフィカルインターフェース、初心者向け)

一度設定すると、すべての AI 関連プラグインが直接使用でき、繰り返し設定する必要がありません。例えば:今日「AI 翻訳」と「AI リネーム」プラグインをインストールした場合、これらは自動的に SDK で入力した設定を共有し、それぞれが異なるモデルを選択することもでき、API Key を再度入力する必要がありません。

オープン開発環境

ai-sdk.dev 標準(AI SDK v5)に基づき、AI SDK プラグインは開発者にクリーンで安定したインフラストラクチャセットを提供します。開発者は API Key ストレージ、モデル切り替え、エラーリトライなどの基本設定の処理に時間を費やす必要がなく、プラグインのイノベーションに集中できます。唯一の違いは Provider の取得方法で、より良い安定性とユーザーエクスペリエンスを確保するために独自開発の Provider を使用しています。


AI SDK 依存プラグインのインストール

  1. プラグインセンターに入る

  2. AI SDK プラグインを検索して見つける

  3. AI SDK プラグインをクリックしてインストール

AI SDK 依存のプラグインをユーザーがインストールする際、Eagle は自動的にユーザーに「AI SDK 依存プラグイン」のインストールを促します。したがって、開発者はユーザーがインストールするための特定のコードを書く必要はなく、システムが自動的に関連依存関係がインストールされていることを確認してからプラグインの実行を許可します。


AI SDK 依存プラグインの使用方法

プラグインで AI SDK 関連機能を使用したい場合は、プラグインの manifest.json ファイルに dependencies 定義を追加する必要があります。これにより、Eagle システムはこのプラグインが追加の拡張機能を必要とすることを認識します。以下に示します:

{
    "id": "LBCZE8V6LPCKD",
    "version": "1.0.0",
    "platform": "all",
    "arch": "all",
    "name": "ウィンドウプラグイン",
    "logo": "/logo.png",
    "keywords": [],
    "dependencies": ["ai-sdk"],
    "devTools": false,
    "main":
    {
        "url": "index.html",
        "width": 640,
        "height": 480,
    }
}

ウィンドウプラグインの例

eagle.extraModule.ai を使用して AI SDK 依存プラグインが提供する機能を呼び出すことができます。以下は各種使用方法の例です:

generateText() - 基本テキスト生成

eagle.onPluginCreate(async (plugin) => {
    // AI モジュールと Provider を取得
    const ai = eagle.extraModule.ai;
    const { openai, anthropic, gemini, deepseek, qwen, ollama, lmstudio } = await ai.getProviders();
    const { generateText } = ai;

    // 基本テキスト生成
    const result = await generateText({
        model: openai("gpt-5"),
        prompt: "デジタルアートについてのクリエイティブな紹介を書いてください",
    });

    console.log(result.text);
});

generateObject() - 構造化オブジェクト生成

eagle.onPluginCreate(async (plugin) => {
    const ai = eagle.extraModule.ai;
    const { openai } = await ai.getProviders();
    const { generateObject } = ai;

    // 構造化データの生成
    const result = await generateObject({
        model: anthropic("claude-4-sonnet"),
        schema: {
            type: "object",
            properties: {
                tags: {
                    type: "array",
                    items: {
                        type: "object",
                        properties: {
                            name: { type: "string" },
                            reason: { type: "string" },
                        },
                    },
                },
                description: { type: "string" },
            },
        },
        messages: [
            {
                role: "system",
                content: "あなたは画像内容を正確に識別し、適切なタグと説明を提供できる専門的な画像分析エキスパートです。",
            },
            {
                role: "user",
                content: [
                    {
                        type: "text",
                        text: "この画像を分析し、5つの関連タグを提供してください。各タグには理由の説明が必要で、簡潔な画像の説明も提供してください。",
                    },
                    {
                        type: "image",
                        image: "https://example.com/sample-image.jpg",
                    },
                ],
            },
        ],
    });

    console.log("タグ:", result.object.tags);
    console.log("説明:", result.object.description);
});

streamText() - ストリーミングテキスト生成

eagle.onPluginCreate(async (plugin) => {
    const ai = eagle.extraModule.ai;
    const { openai } = await ai.getProviders();
    const { streamText } = ai;

    // ストリーミングテキスト生成、リアルタイム表示に適している
    const { textStream } = await streamText({
        model: gemini("gemini-2.0-flash-exp"),
        prompt: "デジタルアートの発展史と主要な特徴について詳しく紹介してください",
    });

    // 生成されたテキストを段階的に受信し表示
    for await (const textPart of textStream) {
        console.log(textPart);
    }
});

streamObject() - ストリーミングオブジェクト生成

eagle.onPluginCreate(async (plugin) => {
    const ai = eagle.extraModule.ai;
    const { openai } = await ai.getProviders();
    const { streamObject } = ai;

    // ストリーミング構造化オブジェクト生成
    const { partialObjectStream } = await streamObject({
        model: deepseek("deepseek-chat"),
        schema: {
            type: "object",
            properties: {
                analysis: {
                    type: "object",
                    properties: {
                        colors: {
                            type: "array",
                            items: { type: "string" }
                        },
                        style: { type: "string" },
                        mood: { type: "string" },
                        suggestions: {
                            type: "array",
                            items: { type: "string" }
                        }
                    }
                }
            },
        },
        messages: [
            {
                role: "system",
                content: "あなたはアートワークの色彩、スタイル、感情、改善提案を深く分析できるアートクリティックです。",
            },
            {
                role: "user",
                content: "この芸術作品の色の組み合わせ、芸術スタイル、伝えられる感情を分析し、改善提案を提供してください。",
            },
        ],
    });

    // 部分オブジェクトを段階的に受信
    for await (const partialObject of partialObjectStream) {
        console.log("現在の分析結果:", partialObject);
    }
});

重要なお知らせ: AI SDK は ai-sdk.dev v5 のすべての API と使用方法と完全に互換性があります。上記の例は基本的な使用方法のみを示しています。唯一の違いは Provider の取得方法で、eagle.extraModule.ai.getProviders() を使用して設定済みの AI プロバイダーを取得してください。システムは API Key と関連設定を自動的に処理するため、開発者はこれらの詳細を気にする必要がありません。

より詳細な使用方法と高度な機能については、AI SDK v5 公式ドキュメントを参照してください。新しいバージョンの AI SDK では、API や機能が異なる場合があります。

最終更新