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)

  • 阿里 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 或功能。

最后更新于