跳至内容

配置

您需要配置LLM连接和授权密钥。您可以在GenAIScript中使用远程模型(如OpenAI、Azure等)和本地模型(如Ollama、Jan、LMStudio等)。

模型选择

脚本使用的模型通过script函数中的model字段进行配置。 模型名称格式为provider:model-name,其中provider是LLM提供商, 而model-name是提供商特定的模型名称。

script({
model: "openai:gpt-4o",
})

大型、小型、视觉模型

你也可以使用smalllargevision 模型别名来调用默认配置的小型、大型和视觉增强模型。 大型模型通常具备OpenAI gpt-4级别的推理能力,适合处理更复杂的任务。 小型模型属于OpenAI gpt-4o-mini级别,适用于快速处理简单任务。

script({ model: "small" })
script({ model: "large" })

模型别名也可以通过cli run命令、环境变量或配置文件进行覆盖。了解更多关于模型别名的信息

终端窗口
genaiscript run ... --model largemodelid --small-model smallmodelid

或者通过添加GENAISCRIPT_MODEL_LARGEGENAISCRIPT_MODEL_SMALL环境变量来实现。

.env
GENAISCRIPT_MODEL_LARGE="azure_serverless:..."
GENAISCRIPT_MODEL_SMALL="azure_serverless:..."
GENAISCRIPT_MODEL_VISION="azure_serverless:..."

您也可以通过使用provider参数来配置给定LLM提供商的默认别名。 默认值记录在本页面中并会打印到控制台输出。

script({ provider: "openai" })
终端窗口
genaiscript run ... --provider openai

模型别名

实际上,您可以为模型定义任何别名(仅允许使用字母数字字符) 通过名为GENAISCRIPT_MODEL_ALIAS的环境变量 其中ALIAS是您想要使用的别名。

.env
GENAISCRIPT_MODEL_TINY=...

在脚本中使用时,模型别名总是小写的。

script({ model: "tiny" })

.env 文件和 .env.genaiscript 文件

GenAIScript使用.env文件(以及.env.genaiscript)将密钥和配置信息加载到进程环境变量中。 GenAIScript支持多个.env文件来加载配置信息。

  1. 在项目根目录创建或更新.gitignore文件,确保其中包含.env。 这样可以避免您意外将密钥提交到源代码管理中。

    .gitignore
    ...
    .env
    .env.genaiscript
  2. 在项目根目录下创建一个.env文件。

    • .gitignore
    • .env
  3. 使用配置信息更新 .env 文件(见下文)。

自定义 .env 文件位置

您可以通过CLI或环境变量指定自定义的.env文件位置。

  • GenAIScript 脚本默认按顺序加载以下 .env 文件:

    • ~/.env.genaiscript
    • ./.env.genaiscript
    • ./.env
  • 通过在CLI中添加--env <...files>参数。每个.env文件按顺序导入,并可能覆盖之前的值。

终端窗口
npx genaiscript ... --env .env .env.debug
  • 通过设置 GENAISCRIPT_ENV_FILE 环境变量来实现。
终端窗口
GENAISCRIPT_ENV_FILE=".env.local" npx genaiscript ...
~/genaiscript.config.yaml
{
"$schema": "https://microsoft.github.io/genaiscript/schemas/config.json",
"envFile": [".env.local", ".env.another"]
}

没有.env文件

如果您不想使用.env文件,请确保在genaiscript进程的环境变量中填充配置值。

以下是一些常见示例:

  • 使用bash语法
终端窗口
OPENAI_API_KEY="value" npx --yes genaiscript run ...
  • GitHub Action配置
.github/workflows/genaiscript.yml
run: npx --yes genaiscript run ...
env:
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}

configure 命令

configure 命令是一个交互式命令,用于配置和验证LLM连接。

终端窗口
npx genaiscript configure

OpenAI

openai 是OpenAI聊天模型的提供商。 它使用OPENAI_API_...环境变量。

  1. 升级您的账户以获取模型访问权限。 如果您没有付费账户,将会收到404错误。

  2. OpenAI API密钥门户创建一个新的密钥。

  3. 更新.env文件中的密钥。

    .env
    OPENAI_API_KEY=sk_...
  4. OpenAI API参考文档OpenAI聊天测试平台中找到您想要使用的模型。

    Screenshot of a user interface with a sidebar on the left and a dropdown menu titled 'Chat' with various options for AI models. The 'gpt-4o' option is highlighted and selected with a checkmark, described as 'High-intelligence flagship model for complex, multi-step tasks'.
  5. script中设置model字段为您想要使用的模型。

    script({
    model: "openai:gpt-4o",
    ...
    })

别名

以下模型别名在GenAIScript中默认尝试使用。

别名模型标识符
largegpt-4o
smallgpt-4o-mini
visiongpt-4o
vision_smallgpt-4o-mini
embeddingstext-embedding-3-small
推理o1
reasoning_smallo3-mini
转录whisper-1
语音tts-1
imagedall-e-3

GitHub 模型

GitHub Models 提供商 github 允许通过 GitHub Marketplace 运行模型。 该提供商适用于原型设计,并根据您的订阅情况受到速率限制

script({ model: "github:gpt-4o" })
播放
  1. 创建一个GitHub个人访问令牌。 该令牌不应具有任何范围或权限。

  2. 使用令牌更新 .env 文件。

    .env
    GITHUB_TOKEN=...

要配置特定模型,

  1. 打开GitHub Marketplace并找到您想使用的模型。

  2. 从Javascript/Python示例中复制模型名称

    const modelName = "Phi-3-mini-4k-instruct"

    来配置您的脚本。

    script({
    model: "github:Phi-3-mini-4k-instruct",
    })

如果您已经在脚本中使用GITHUB_TOKEN变量,并且需要为GitHub Models使用不同的令牌,可以使用GITHUB_MODELS_TOKEN变量替代。

o1-previewo1-mini 模型

目前这些模型不支持流式处理和系统提示。GenAIScript在内部处理此功能。

script({
model: "github:o1-mini",
})

别名

以下模型别名在GenAIScript中默认尝试使用。

别名模型标识符
largegpt-4o
smallgpt-4o-mini
visiongpt-4o
embeddingstext-embedding-3-small
推理o1-preview
reasoning_smallo1-mini

限制条件

  • 较小的上下文窗口和速率限制
  • listModels
  • logprobs(以及top logprobs)被忽略
  • 忽略输出令牌的预测
  • topLogprobs

Azure OpenAI

Azure OpenAI 提供商 azure 使用 AZURE_OPENAI_... 环境变量。 您可以使用托管身份(推荐)或API密钥来验证Azure OpenAI服务。 您也可以按照automation文档中的说明使用服务主体。

script({ model: "azure:deployment-id" })

托管身份(Entra ID)

  1. Azure 门户中打开您的 Azure OpenAI 资源

  2. 导航到访问控制(IAM),然后选择查看我的访问权限。确保您的用户或服务主体拥有Cognitive Services OpenAI 用户/贡献者角色。如果收到401错误,请点击添加添加角色分配,并将Cognitive Services OpenAI 用户角色分配给您的用户。

  3. 导航到资源管理,然后选择密钥和终结点

  4. 更新.env文件中的端点配置。

    .env
    AZURE_OPENAI_API_ENDPOINT=https://....openai.azure.com
  5. 导航到部署部分,确保您已部署LLM并复制deployment-id,在脚本中会需要它。

  6. 打开终端并使用Azure CLI进行登录

    终端窗口
    az login
  7. 更新script函数中的model字段,使其与您Azure资源中的模型部署名称相匹配。

    script({
    model: "azure:deployment-id",
    ...
    })

列出模型

有两种方法可以列出您的Azure OpenAI资源中的模型:使用Azure管理API或调用自定义/models端点。

使用管理API(这是常用方式)

为了让GenAIScript能够列出您的Azure OpenAI服务中的部署, 您需要提供订阅ID并且需要使用Microsoft Entra!

  1. Azure 门户中打开 Azure OpenAI 资源,进入概览选项卡并复制订阅 ID

  2. 更新.env文件中的订阅ID。

    .env
    AZURE_OPENAI_SUBSCRIPTION_ID="..."
  3. 通过运行以下命令测试您的配置

    终端窗口
    npx genaiscript models azure

使用 /models 端点

此方法假设您已在订阅中设置了兼容OpenAI的/models端点,该端点会返回与OpenAI API兼容格式的部署列表。

您可以将环境变量AZURE_OPENAI_API_MODELS_TYPE设置为指向openai

.env
AZURE_OPENAI_API_MODELS_TYPE="openai"

自定义凭证

在某些情况下,默认的凭据链查找可能无法正常工作。此时,您可以指定一个额外的环境变量AZURE_OPENAI_API_CREDENTIALS来设置应使用的凭据类型。

.env
AZURE_OPENAI_API_CREDENTIALS=cli

这些类型直接映射到它们的@azure/identity凭证类型:

  • cli - AzureCliCredential
  • env - EnvironmentCredential
  • powershell - AzurePowerShellCredential
  • devcli - AzureDeveloperCliCredential
  • managedidentity - ManagedIdentityCredential

自定义令牌作用域

Azure OpenAI访问的默认令牌作用域是https://cognitiveservices.azure.com/.default。 您可以使用AZURE_OPENAI_TOKEN_SCOPES环境变量覆盖此值。

.env
AZURE_OPENAI_TOKEN_SCOPES=...

API版本

GenAIScript 维护了一个默认的 API 版本用于访问 Azure OpenAI。您可以通过 AZURE_OPENAI_API_VERSION 环境变量来覆盖这个值。

.env
AZURE_OPENAI_API_VERSION=2025-01-01-preview

您还可以通过设置AZURE_OPENAI_API_VERSION_环境变量(其中deployment-id为大写)来针对每个部署覆盖API版本。

.env
AZURE_OPENAI_API_VERSION_GPT-4O=2025-01-01-preview

API密钥

  1. 打开您的Azure OpenAI资源并导航至资源管理,然后选择密钥和终结点

  2. 使用密钥(Key 1Key 2)和端点更新 .env 文件。

    .env
    AZURE_OPENAI_API_KEY=...
    AZURE_OPENAI_API_ENDPOINT=https://....openai.azure.com
  3. 其余步骤相同:找到部署名称并在脚本中使用它,model: "azure:deployment-id"

别名

以下模型别名在GenAIScript中默认尝试使用。

别名模型标识符

限制条件

  • 忽略输出令牌的预测

Azure AI Foundry

Azure AI Foundry 提供对无服务器和已部署模型的访问,包括OpenAI及其他供应商的模型。在GenAIScript中支持多种访问这些服务器的方式:

您可以通过Azure AI Foundry部署"无服务器"模型,并按使用量按token付费。 您可以浏览Azure AI Foundary模型目录 并使用serverless API过滤器查看可用模型。

有两种类型的无服务器部署需要不同的配置:OpenAI模型和所有其他模型。 OpenAI模型,如gpt-4o,部署到.openai.azure.com端点, 而Azure AI模型,如Meta-Llama-3.1-405B-Instruct则部署到.models.ai.azure.com端点。

它们的配置方式略有不同。

Azure AI 推理

Azure AI Model Inference API提供了一个单一端点来访问多种大型语言模型。这是一个很好的实验方式,因为您无需创建部署即可访问模型。它同时支持Entra ID和基于密钥的身份验证。

script({ model: "azure_ai_inference:gpt-4o" })
播放

托管身份(Entra ID)

  1. 请仔细按照这些步骤来为您的用户配置所需的角色。

  2. 打开 https://ai.azure.com/ 并进入您的项目

  3. 端点目标URL配置为AZURE_AI_INFERENCE_API_ENDPOINT

    .env
    AZURE_AI_INFERENCE_API_ENDPOINT=https://.services.ai.azure.com/models
  4. 在模型目录中找到带有部署选项 = 无服务器API筛选器的模型名称,并在您的脚本中使用它, model: "azure_id_inference:model-id"

    script({ model: "azure_ai_inference:model-id" })

API密钥

  1. 打开 https://ai.azure.com/,进入您的项目并转到概览页面。

  2. 端点目标URL配置为.env文件中的AZURE_AI_INFERENCE_API_ENDPOINT变量,并将密钥配置为AZURE_AI_INFERENCE_API_KEY**.**

    .env
    AZURE_AI_INFERENCE_API_ENDPOINT=https://.services.ai.azure.com/models
    AZURE_AI_INFERENCE_API_KEY=...
  3. 在模型目录中通过部署选项 = 无服务器API筛选器找到模型名称,并在您的脚本中使用它, model: "azure_id_inference:model-id"

    script({ model: "azure_ai_inference:model-id" })

Azure AI OpenAI 无服务器

azure_serverless 提供程序支持通过 Azure AI Foundry 无服务器部署的 OpenAI 模型。它同时支持 Entra ID 和基于密钥的身份验证。

script({ model: "azure_serverless:deployment-id" })

托管身份(Entra ID)

  1. 打开https://ai.azure.com/,进入您的项目并转到部署页面。

  2. 从目录中部署一个基础模型。 您可以使用Deployment Options -> Serverless API选项将模型部署为无服务器API。

  3. 部署一个OpenAI基础模型。 这还将在您的订阅中创建一个新的Azure OpenAI资源(您可能看不到该资源,稍后会详细介绍)。

  4. 更新.env文件中的部署端点,将其设置在AZURE_SERVERLESS_OPENAI_API_ENDPOINT变量中。

    .env
    AZURE_SERVERLESS_OPENAI_API_ENDPOINT=https://....openai.azure.com
  5. 返回您的Azure AI Foundry项目中的概览选项卡,然后点击在管理中心打开

  6. 点击Azure OpenAI Service资源,然后点击Resource外部链接,这将带您回到Azure门户中的(底层)Azure OpenAI服务。

  7. 导航到访问控制(IAM),然后选择查看我的访问权限。确保您的用户或服务主体拥有Cognitive Services OpenAI 用户/贡献者角色。如果收到401错误,请点击添加添加角色分配,并将Cognitive Services OpenAI 用户角色分配给您的用户。

此时,您已准备好使用Azure CLI登录并使用托管身份。

  1. 安装 Azure CLI

  2. 打开终端并登录

    终端窗口
    az login

API密钥

  1. 打开您的Azure OpenAI资源并导航至资源管理,然后选择密钥和终结点

  2. 更新.env文件,填写端点地址和密钥(Key 1Key 2)以及端点信息。

    .env
    AZURE_SERVERLESS_OPENAI_API_ENDPOINT=https://....openai.azure.com
    AZURE_SERVERLESS_OPENAI_API_KEY=...

别名

以下模型别名在GenAIScript中默认尝试使用。

别名模型标识符
largegpt-4o
smallgpt-4o-mini
visiongpt-4o
vision_smallgpt-4o-mini
推理o1
reasoning_smallo1-mini
embeddingstext-embedding-3-small

限制条件

  • listModels
  • 忽略输出令牌的预测

Azure AI 无服务器模型

azure_serverless_models 提供程序支持非OpenAI模型,例如通过Azure AI Foundary无服务器部署的DeepSeek R1/v3。

script({ model: "azure_serverless_models:deployment-id" })

托管身份(Entra ID)

  1. Azure Portal中打开您的Azure AI项目资源

  2. 导航至访问控制(IAM),然后选择查看我的访问权限。确保您的用户或服务主体拥有Azure AI开发者角色。如果收到401错误,请点击添加添加角色分配并为您的用户添加Azure AI开发者角色。

  3. 端点目标URL配置为AZURE_SERVERLESS_MODELS_API_ENDPOINT

    .env
    AZURE_SERVERLESS_MODELS_API_ENDPOINT=https://...models.ai.azure.com
  4. 导航到部署部分,确保您已部署LLM并复制部署信息名称,在脚本中会需要用到它。

  5. 更新script函数中的model字段,使其与您Azure资源中的模型部署名称相匹配。

    script({
    model: "azure_serverless:deployment-info-name",
    ...
    })

API密钥

  1. 打开 https://ai.azure.com/ 并进入 部署 页面。

  2. 从目录中部署一个基础模型。 您可以使用Deployment Options -> Serverless API选项将模型部署为无服务器API。

  3. 端点目标URL配置为AZURE_SERVERLESS_MODELS_API_ENDPOINT变量,并将密钥配置在.env文件中的AZURE_SERVERLESS_MODELS_API_KEY*.**

    .env
    AZURE_SERVERLESS_MODELS_API_ENDPOINT=https://...models.ai.azure.com
    AZURE_SERVERLESS_MODELS_API_KEY=...
  4. 找到部署名称并在您的脚本中使用它,model: "azure_serverless_models:deployment-id"

支持多种推理部署方式

你可以更新AZURE_SERVERLESS_MODELS_API_KEY,通过一个deploymentid=key对的列表来支持多个部署(每个部署有不同的密钥)。

.env
AZURE_SERVERLESS_MODELS_API_KEY="
model1=key1
model2=key2
model3=key3
"

限制条件

  • listModels
  • 忽略输出令牌的预测

这不是一个大型语言模型提供商,而是一个内容搜索服务提供商。但由于其配置方式与其他Azure服务类似, 所以在此一并列出。该服务允许您使用Azure AI Search对文档进行向量搜索

const index = await retrieval.index("animals", { type: "azure_ai_search" })
await index.insertOrUpdate(env.files)
const docs = await index.search("cat dog")

托管身份(Entra ID)

该服务通过AZURE_AI_SEARCH_ENDPOINT环境变量和托管身份配置进行配置。

AZURE_AI_SEARCH_ENDPOINT=https://{{service-name}}.search.windows.net/
  1. Azure 门户中打开您的Azure AI Search资源, 点击概述,然后点击属性

  2. 点击API访问控制并启用基于角色的访问控制两者

  3. 打开访问控制(IAM)选项卡,确保您的用户 或服务主体拥有搜索服务参与者角色。

API密钥

该服务通过AZURE_AI_SEARCH_ENDPOINTAZURE_AI_SEARCH_API_KEY环境变量进行配置。

AZURE_AI_SEARCH_ENDPOINT=https://{{service-name}}.search.windows.net/
AZURE_AI_SEARCH_API_KEY=...

Google AI

google 提供商允许您使用Google AI模型。它为您提供访问权限

  1. 打开 Google AI Studio 并创建一个新的API密钥。

  2. 更新.env文件中的API密钥。

    .env
    GEMINI_API_KEY=...
  3. Gemini文档中找到模型标识符,并在您的脚本或命令行中使用google提供程序。

    ...
    const model = genAI.getGenerativeModel({
    model: "gemini-1.5-pro-latest",
    });
    ...

    然后在您的脚本中使用该模型标识符。

    script({ model: "google:gemini-1.5-pro-latest" })

别名

以下模型别名在GenAIScript中默认尝试使用。

别名模型标识符
大模型gemini-1.5-flash-latest
gemini-1.5-flash-latest
视觉gemini-1.5-flash-latest
longgemini-1.5-flash-latest
推理gemini-2.0-flash-thinking-exp-1219
reasoning_smallgemini-2.0-flash-thinking-exp-1219
embeddingstext-embedding-004

限制条件

  • 使用 OpenAI兼容层
  • listModels
  • logprobs(以及top logprobs)被忽略
  • 忽略输出令牌的预测
  • 种子值被忽略
  • 工具作为后备工具自动实现。
  • topLogprobs

GitHub Copilot 聊天模型

如果您可以访问Visual Studio Code中的GitHub Copilot Chat, GenAIScript也将能够利用这些语言模型

此模式适用于在没有独立LLM提供商或本地LLM的情况下运行脚本。不过,这些模型无法通过命令行使用,并且受到GitHub Copilot平台定义的额外限制和速率限制。

只要您已在Visual Studio Code中安装并配置了GitHub Copilot,就无需进行额外设置。 您可以通过使用github_copilot_chat:*作为模型名称来强制使用此模型。

播放
  1. 安装 GitHub Copilot Chat (重点是 Chat)

  2. 运行你的脚本
  3. 确认您已允许GenAIScript使用GitHub Copilot Chat模型。

  4. 选择与您脚本中匹配的最佳聊天模型

    A dropdown menu titled 'Pick a Language Chat Model for openai:gpt-4' with several options including 'GPT 3.5 Turbo', 'GPT 4', 'GPT 4 Turbo (2024-01-25 Preview)', and 'GPT 4o (2024-05-13)', with 'GPT 3.5 Turbo' currently highlighted.

    (如果您的设置中已有映射,此步骤将被跳过)

GenAIScript模型名称与Visual Studio模型的映射关系存储在设置中。

Anthropic

anthropic 提供商可访问 Anthropic 模型。Anthropic 是一家提供强大语言模型(包括 Claude 系列)的人工智能研究公司。

script({ model: "anthropic:claude-2.1" })

要在GenAIScript中使用Anthropic模型,请按照以下步骤操作:

  1. 注册一个Anthropic账号并从他们的控制台获取API密钥。

  2. 将您的Anthropic API密钥添加到.env文件中:

    .env
    ANTHROPIC_API_KEY=sk-ant-api...
  3. 通过访问Anthropic模型文档找到最适合您需求的模型。

  4. 更新您的脚本以使用您选择的model

    script({
    ...
    model: "anthropic:claude-3-5-sonnet-20240620",
    })

别名

以下模型别名在GenAIScript中默认尝试使用。

别名模型标识符
largeclaude-3-7-sonnet-latest
smallclaude-3-5-haiku-latest
visionclaude-3-7-sonnet-latest
vision_smallclaude-3-5-sonnet-latest
推理claude-3-7-sonnet-latest:high
reasoning_smallclaude-3-7-sonnet-latest:low

限制条件

  • logprobs(以及top logprobs)被忽略
  • 忽略输出令牌的预测
  • topLogprobs

Anthropic Bedrock

anthropic_bedrock 提供程序可访问Amazon Bedrock上的Anthropic模型。您可以在Anthropic模型文档中找到模型名称。

GenAIScript 假设您已按照AWS Node SDK能够识别的方式配置了AWS凭证。

script({ model: "anthropic_bedrock:anthropic.claude-3-sonnet-20240229-v1:0" })

Hugging Face

huggingface 提供商允许您使用 Hugging Face Models 通过 Text Generation Inference 进行文本生成。

script({ model: "huggingface:microsoft/Phi-3-mini-4k-instruct" })

要在GenAIScript中使用Hugging Face模型,请按照以下步骤操作:

  1. 注册一个Hugging Face账号并从他们的控制台获取API密钥。 如果您正在创建细粒度令牌,请启用调用无服务器推理API选项。

  2. 将您的Hugging Face API密钥添加到.env文件中 作为HUGGINGFACE_API_KEYHF_TOKENHUGGINGFACE_TOKEN变量。

    .env
    HUGGINGFACE_API_KEY=hf_...
  3. 通过访问HuggingFace models找到最适合您需求的模型。

  4. 更新您的脚本以使用您选择的model

    script({
    ...
    model: "huggingface:microsoft/Phi-3-mini-4k-instruct",
    })

别名

以下模型别名在GenAIScript中默认尝试使用。

别名模型标识符
largemeta-llama/Llama-3.3-70B-Instruct
smallmicrosoft/phi-4
visionmeta-llama/Llama-3.2-11B-Vision-Instruct
embeddingsnomic-ai/nomic-embed-text-v1.5

限制条件

Mistral AI

mistral 提供商允许您通过 Mistral API 使用 Mistral AI Models

script({ model: "mistral:mistral-large-latest" })
  1. 注册一个Mistral AI账户并从他们的控制台获取API密钥。

  2. 将您的Mistral AI API密钥添加到.env文件中:

    .env
    MISTRAL_API_KEY=...
  3. 将您的脚本更新为使用您选择的model

    script({
    ...
    model: "mistral:mistral-large-latest",
    })

别名

以下模型别名在GenAIScript中默认尝试使用。

别名模型标识符
大模型mistral-large-latest
mistral-small-latest
visionpixtral-large-latest

限制条件

  • 忽略输出令牌的预测

阿里云

alibaba 提供商接入 Alibaba Cloud 的模型。

script({
model: "alibaba:qwen-max",
})
  1. 注册一个阿里云账号并从他们的控制台获取API密钥。

  2. 将您的阿里云API密钥添加到.env文件中:

    .env
    ALIBABA_API_KEY=sk_...
  3. 通过访问Alibaba models找到最适合您需求的模型。

  4. 更新您的脚本以使用您选择的model

    script({
    ...
    model: "alibaba:qwen-max",
    })

别名

以下模型别名在GenAIScript中默认尝试使用。

别名模型标识符
largeqwen-max
smallqwen-turbo
longqwen-plus
embeddingstext-embedding-v3

限制条件

  • 使用 OpenAI兼容层
  • listModels
  • 忽略输出令牌的预测
  • 工具作为后备工具自动实现。

Ollama

Ollama 是一款桌面应用程序,可让您本地下载并运行模型。

在本地运行工具可能需要额外的GPU资源,具体取决于您使用的模型。

使用 ollama 提供程序来访问 Ollama 模型。

  1. 启动Ollama应用程序或

    终端窗口
    ollama serve
  2. 将您的脚本更新为使用ollama:phi3.5模型(或任何其他模型或来自Hugging Face的模型)。

    script({
    ...,
    model: "ollama:phi3.5",
    })

    GenAIScript会自动拉取模型,根据模型大小可能需要一些时间。该模型由Ollama在本地缓存。

  3. 如果Ollama运行在服务器、其他计算机或不同端口上,您需要配置OLLAMA_HOST环境变量来连接远程Ollama服务器。

    .env
    OLLAMA_HOST=https://:/ # 服务器URL
    OLLAMA_HOST=0.0.0.0:12345 # 不同端口

您可以通过在模型名称后添加尺寸来指定模型大小,例如ollama:llama3.2:3b

script({
...,
model: "ollama:llama3.2:3b",
})

Ollama与Hugging Face模型

你也可以使用来自Hugging FaceGGUF模型

script({
...,
model: "ollama:hf.co/bartowski/Llama-3.2-1B-Instruct-GGUF",
})

使用Docker运行Ollama

您可以方便地在Docker容器中运行Ollama。

{
"features": {
"docker-in-docker": "latest"
}
}
终端窗口
docker run -d -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama
  • 停止并移除Ollama容器
终端窗口
docker stop ollama && docker rm ollama

别名

以下模型别名在GenAIScript中默认尝试使用。

别名模型标识符
embeddingsnomic-embed-text

限制条件

深度求索

deepseekDeepSeek (https://www.deepseek.com/) 聊天模型提供商。 它使用 DEEPSEEK_API_... 环境变量。

  1. DeepSeek API密钥门户创建一个新的密钥。

  2. 更新.env文件中的密钥。

    .env
    DEEPSEEK_API_KEY=sk_...
  3. script中的model字段设置为deepseek:deepseek:deepseek-chat,这是目前唯一支持的模型。

    script({
    model: "deepseek:deepseek-chat",
    ...
    })

别名

以下模型别名在GenAIScript中默认尝试使用。

别名模型标识符
largedeepseek-chat
smalldeepseek-chat
visiondeepseek-chat

LM Studio

lmstudio 提供程序连接到 LMStudio 无头服务器,并允许运行本地LLM模型。

  1. 安装 LMStudio (v0.3.5及以上版本)

  2. 打开LMStudio

  3. 打开模型目录,选择您的模型并至少加载一次,以便将其下载到本地。

  4. 打开设置(齿轮图标)并启用启用本地LLM服务

  5. GenAIScript 默认假设本地服务器位于 http://localhost:1234/v1。 添加 LMSTUDIO_API_BASE 环境变量可以更改服务器URL。

    .env
    LMSTUDIO_API_BASE=http://localhost:2345/v1

在已加载模型的对话框中找到模型的API标识符,然后在您的脚本中使用该标识符:

script({
model: "lmstudio:llama-3.2-1b-instruct",
})
  • GenAIScript 使用 LMStudio CLI 按需拉取模型。
  • 目前不支持指定量化。

别名

以下模型别名在GenAIScript中默认尝试使用。

别名模型标识符
embeddingstext-embedding-nomic-embed-text-v1.5

限制条件

  • 忽略输出令牌的预测

LM Studio与Hugging Face模型

按照本指南将Hugging Face模型加载到LMStudio中。

一月

jan 提供者连接到 Jan 本地服务器。

  1. 一月

  2. 打开Jan并下载您计划使用的模型。您可以在模型描述页面找到模型标识符。

  3. 点击本地API服务器图标(左下角),然后点击启动服务器

    保持桌面应用程序持续运行!

要使用Jan模型,请使用jan:modelid语法。 如果您更改了默认服务器URL,可以设置JAN_API_BASE环境变量。

.env
JAN_API_BASE=http://localhost:1234/v1

限制条件

  • 忽略输出令牌的预测
  • 忽略top_p

Windows AI

window_ai 提供程序支持 AI for Windows Apps,它提供了最先进的本地模型,并支持NPU硬件。

  1. 安装 AI Toolkit for Visual Studio Code 扩展。

  2. 打开模型目录并从ONNX模型运行时部分添加一个模型。

  3. 在资源管理器视图中右键点击模型,选择复制模型名称

  4. 在您的脚本中将模型名称设置为复制的模型名称。

    script({
    model: "windows_ai:Phi-4-mini-gpu-int4-rtn-block-32",
    })

查看 Azure AI 工具包入门指南

LocalAI

LocalAI 作为一个即插即用的REST API替代方案,兼容OpenAI API规范用于本地推理。它使用免费的开源模型,并且可以在CPU上运行。

LocalAI充当OpenAI的替代品,您可以在容器中看到使用的模型名称映射,例如gpt-4被映射到phi-2

  1. 安装Docker。更多信息请参阅< a>LocalAI文档。

  2. 更新 .env 文件并将 api 类型设置为 localai

    .env
    OPENAI_API_TYPE=localai

要在docker中启动LocalAI,请运行以下命令:

终端窗口
docker run -p 8080:8080 --name local-ai -ti localai/localai:latest-aio-cpu
docker start local-ai
docker stats
echo "LocalAI is running at http://127.0.0.1:8080"

Llamafile

https://llamafile.ai/ 是一个单文件桌面应用程序,可让您在本地运行大型语言模型。

提供者是 llamafile,模型名称被忽略。

SGLang

SGLang 是一个用于大语言模型和视觉语言模型的高速服务框架。

提供者是 sglang,模型名称被忽略。

vLLM

vLLM 是一个快速且易于使用的库,用于LLM推理和服务。

提供者是vllm,模型名称被忽略。

LLaMA.cpp

LLaMA.cpp 还允许在本地运行模型或与其他LLM供应商对接。

  1. 更新.env文件中的本地服务器信息。

    .env
    OPENAI_API_BASE=http://localhost:...

OpenRouter

您可以将OpenAI提供商配置为使用OpenRouter服务,只需将OPENAI_API_BASE设置为https://openrouter.ai/api/v1。您还需要一个api key

.env
OPENAI_API_BASE=https://openrouter.ai/api/v1
OPENAI_API_KEY=...

然后在您的脚本中使用OpenRouter模型名称:

script({ model: "openai:openai/gpt-4o-mini" })

默认情况下,GenAIScript会将站点URL和名称设置为GenAIScript,但您可以用自己的值覆盖这些设置:

.env
OPENROUTER_SITE_URL=... # populates HTTP-Referer header
OPENROUTER_SITE_NAME=... # populate X-Title header

LiteLLM

LiteLLM 代理网关提供了一个与OpenAI兼容的API,用于在本地运行模型。 配置 LITELLM_... 密钥以设置密钥和可选的基地址。

.env
LITELLM_API_KEY="..."
#LITELLM_API_BASE="..."

Hugging Face Transformer.js

这个transformers提供程序使用Hugging Face Transformers.js在设备上运行模型。

模型语法是 transformers:: 其中

  • repo 是Hugging Face上的模型仓库,
  • dtype 是量化类型。
script({
model: "transformers:onnx-community/Qwen2.5-Coder-0.5B-Instruct:q4",
})

默认的transformers设备是cpu,但您可以通过HUGGINGFACE_TRANSFORMERS_DEVICE环境变量来更改它。

.env
HUGGINGFACE_TRANSFORMERS_DEVICE=gpu

限制条件

  • 忽略输出令牌的预测

Whisper ASR 网络服务

这个 whisperasr 提供商允许配置一个转录任务来使用Whisper ASR WebService项目

const transcript = await transcribe("video.mp4", {
model: "whisperasr:default",
})

该whisper服务可以在本地或docker容器中运行(参见文档)。

CPU
docker run -d -p 9000:9000 -e ASR_MODEL=base -e ASR_ENGINE=openai_whisper onerahmet/openai-whisper-asr-webservice:latest

你也可以覆盖transcription模型别名来更改transcribe使用的默认模型。

回显

echo 提供者是一个模拟运行的LLM提供者,它会直接返回消息而无需调用任何LLM。 这在调试时非常有用,当您想查看LLM请求的结果而不实际发送请求时。

script({
model: "echo",
})

Echo 以 markdown 和 JSON 格式回复聊天消息,这对调试很有帮助。

none提供程序会阻止LLM的执行。它通常用于仅使用内联提示的顶级脚本。

script({
model: "none",
})

自定义提供商(兼容OpenAI)

您可以使用与OpenAI文本生成API兼容的自定义服务提供商。 这对于在本地服务器或其他云服务提供商上运行LLM非常有用。

例如,要定义一个ollizard提供程序,您需要将OLLIARD_API_BASE环境变量设置为自定义提供程序URL,并根据需要设置OLLIZARD_API_KEY

.env
OLLIZARD_API_BASE=http://localhost:1234/v1
#OLLIZARD_API_KEY=...

然后你可以像使用其他提供程序一样使用这个提供程序。

script({
model: "ollizard:llama3.2:1b",
})

模型特定的环境变量

您可以为每个命名模型提供不同的环境变量,通过使用PROVIDER_MODEL_API_...前缀或PROVIDER_API_...前缀。 模型名称会被大写转换,并且所有非字母数字字符都会被转换为_

这允许为不同模型配置多种LLM计算来源。例如,启用本地运行的ollama:phi3模型,同时保留默认的openai模型连接信息。

.env
OLLAMA_PHI3_API_BASE=http://localhost:11434/v1

在代理服务器后运行

你可以设置HTTP_PROXY和/或HTTPS_PROXY环境变量来在代理服务器后运行GenAIScript。

.env
HTTP_PROXY=http://proxy.example.com:8080

检查您的配置

您可以通过运行genaiscript info env command来检查您的配置。 它将显示由GenAIScript解析的当前配置信息。

终端窗口
genaiscript info env

下一步

编写您的第一个脚本