配置
您需要配置LLM连接和授权密钥。您可以在GenAIScript中使用远程模型(如OpenAI、Azure等)和本地模型(如Ollama、Jan、LMStudio等)。
模型选择
脚本使用的模型通过script
函数中的model
字段进行配置。
模型名称格式为provider:model-name
,其中provider
是LLM提供商,
而model-name
是提供商特定的模型名称。
script({ model: "openai:gpt-4o",})
大型、小型、视觉模型
你也可以使用small
、large
、vision
模型别名来调用默认配置的小型、大型和视觉增强模型。
大型模型通常具备OpenAI gpt-4级别的推理能力,适合处理更复杂的任务。
小型模型属于OpenAI gpt-4o-mini级别,适用于快速处理简单任务。
script({ model: "small" })
script({ model: "large" })
模型别名也可以通过cli run命令、环境变量或配置文件进行覆盖。了解更多关于模型别名的信息。
genaiscript run ... --model largemodelid --small-model smallmodelid
或者通过添加GENAISCRIPT_MODEL_LARGE
和GENAISCRIPT_MODEL_SMALL
环境变量来实现。
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
是您想要使用的别名。
GENAISCRIPT_MODEL_TINY=...
在脚本中使用时,模型别名总是小写的。
script({ model: "tiny" })
.env
文件和 .env.genaiscript
文件
GenAIScript使用.env
文件(以及.env.genaiscript
)将密钥和配置信息加载到进程环境变量中。
GenAIScript支持多个.env
文件来加载配置信息。
在项目根目录创建或更新
.gitignore
文件,确保其中包含.env
。 这样可以避免您意外将密钥提交到源代码管理中。.gitignore ....env.env.genaiscript在项目根目录下创建一个
.env
文件。- .gitignore
- .env
使用配置信息更新
.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 ...
- 通过在配置文件中指定
.env
文件的位置。
{ "$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配置
run: npx --yes genaiscript run ...env: OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
configure
命令
configure 命令是一个交互式命令,用于配置和验证LLM连接。
npx genaiscript configure
OpenAI
openai
是OpenAI聊天模型的提供商。
它使用OPENAI_API_...
环境变量。
升级您的账户以获取模型访问权限。 如果您没有付费账户,将会收到404错误。
从OpenAI API密钥门户创建一个新的密钥。
更新
.env
文件中的密钥。.env OPENAI_API_KEY=sk_...从OpenAI API参考文档或OpenAI聊天测试平台中找到您想要使用的模型。
在
script
中设置model
字段为您想要使用的模型。script({model: "openai:gpt-4o",...})
别名
以下模型别名在GenAIScript中默认尝试使用。
别名 | 模型标识符 |
---|---|
large | gpt-4o |
small | gpt-4o-mini |
vision | gpt-4o |
vision_small | gpt-4o-mini |
embeddings | text-embedding-3-small |
推理 | o1 |
reasoning_small | o3-mini |
转录 | whisper-1 |
语音 | tts-1 |
image | dall-e-3 |
GitHub 模型
GitHub Models 提供商 github
允许通过 GitHub Marketplace 运行模型。
该提供商适用于原型设计,并根据您的订阅情况受到速率限制。
script({ model: "github:gpt-4o" })
创建一个GitHub个人访问令牌。 该令牌不应具有任何范围或权限。
使用令牌更新
.env
文件。.env GITHUB_TOKEN=...
要配置特定模型,
打开GitHub Marketplace并找到您想使用的模型。
从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-preview
和 o1-mini
模型
目前这些模型不支持流式处理和系统提示。GenAIScript在内部处理此功能。
script({ model: "github:o1-mini",})
别名
以下模型别名在GenAIScript中默认尝试使用。
别名 | 模型标识符 |
---|---|
large | gpt-4o |
small | gpt-4o-mini |
vision | gpt-4o |
embeddings | text-embedding-3-small |
推理 | o1-preview |
reasoning_small | o1-mini |
限制条件
- 较小的上下文窗口和速率限制
- listModels
- logprobs(以及top logprobs)被忽略
- 忽略输出令牌的预测
- topLogprobs
Azure OpenAI
Azure OpenAI 提供商 azure
使用 AZURE_OPENAI_...
环境变量。
您可以使用托管身份(推荐)或API密钥来验证Azure OpenAI服务。
您也可以按照automation文档中的说明使用服务主体。
script({ model: "azure:deployment-id" })
托管身份(Entra ID)
在Azure 门户中打开您的 Azure OpenAI 资源
导航到访问控制(IAM),然后选择查看我的访问权限。确保您的用户或服务主体拥有Cognitive Services OpenAI 用户/贡献者角色。如果收到
401
错误,请点击添加,添加角色分配,并将Cognitive Services OpenAI 用户角色分配给您的用户。导航到资源管理,然后选择密钥和终结点。
更新
.env
文件中的端点配置。.env AZURE_OPENAI_API_ENDPOINT=https://....openai.azure.com导航到部署部分,确保您已部署LLM并复制
deployment-id
,在脚本中会需要它。打开终端并使用Azure CLI进行登录。
终端窗口 az login更新
script
函数中的model
字段,使其与您Azure资源中的模型部署名称相匹配。script({model: "azure:deployment-id",...})
列出模型
有两种方法可以列出您的Azure OpenAI资源中的模型:使用Azure管理API或调用自定义/models
端点。
使用管理API(这是常用方式)
为了让GenAIScript能够列出您的Azure OpenAI服务中的部署, 您需要提供订阅ID并且需要使用Microsoft Entra!。
在Azure 门户中打开 Azure OpenAI 资源,进入概览选项卡并复制订阅 ID。
更新
.env
文件中的订阅ID。.env AZURE_OPENAI_SUBSCRIPTION_ID="..."通过运行以下命令测试您的配置
终端窗口 npx genaiscript models azure
使用 /models
端点
此方法假设您已在订阅中设置了兼容OpenAI的/models
端点,该端点会返回与OpenAI API兼容格式的部署列表。
您可以将环境变量AZURE_OPENAI_API_MODELS_TYPE
设置为指向openai
。
AZURE_OPENAI_API_MODELS_TYPE="openai"
自定义凭证
在某些情况下,默认的凭据链查找可能无法正常工作。此时,您可以指定一个额外的环境变量AZURE_OPENAI_API_CREDENTIALS
来设置应使用的凭据类型。
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
环境变量覆盖此值。
AZURE_OPENAI_TOKEN_SCOPES=...
API版本
GenAIScript 维护了一个默认的 API 版本用于访问 Azure OpenAI。您可以通过 AZURE_OPENAI_API_VERSION
环境变量来覆盖这个值。
AZURE_OPENAI_API_VERSION=2025-01-01-preview
您还可以通过设置AZURE_OPENAI_API_VERSION_
环境变量(其中deployment-id为大写)来针对每个部署覆盖API版本。
AZURE_OPENAI_API_VERSION_GPT-4O=2025-01-01-preview
API密钥
打开您的Azure OpenAI资源并导航至资源管理,然后选择密钥和终结点。
使用密钥(Key 1 或 Key 2)和端点更新
.env
文件。.env AZURE_OPENAI_API_KEY=...AZURE_OPENAI_API_ENDPOINT=https://....openai.azure.com其余步骤相同:找到部署名称并在脚本中使用它,
model: "azure:deployment-id"
。
别名
以下模型别名在GenAIScript中默认尝试使用。
别名 | 模型标识符 |
---|
限制条件
- 忽略输出令牌的预测
Azure AI Foundry
Azure AI Foundry 提供对无服务器和已部署模型的访问,包括OpenAI及其他供应商的模型。在GenAIScript中支持多种访问这些服务器的方式:
- 无需任何部署,使用Azure AI Model Inference提供商,
- 支持OpenAI模型的部署,使用Azure AI OpenAI Serverless提供商,
- 对于非OpenAI模型的部署,请使用Azure AI Serverless Models提供商。
您可以通过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)
请仔细按照这些步骤来为您的用户配置所需的角色。
打开 https://ai.azure.com/ 并进入您的项目
将端点目标URL配置为
AZURE_AI_INFERENCE_API_ENDPOINT
。.env AZURE_AI_INFERENCE_API_ENDPOINT=https://.services.ai.azure.com/models 在模型目录中找到带有部署选项 = 无服务器API筛选器的模型名称,并在您的脚本中使用它,
model: "azure_id_inference:model-id"
。script({ model: "azure_ai_inference:model-id" })
API密钥
打开 https://ai.azure.com/,进入您的项目并转到概览页面。
将端点目标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=...在模型目录中通过部署选项 = 无服务器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)
打开https://ai.azure.com/,进入您的项目并转到部署页面。
从目录中部署一个基础模型。 您可以使用
Deployment Options
->Serverless API
选项将模型部署为无服务器API。部署一个OpenAI基础模型。 这还将在您的订阅中创建一个新的Azure OpenAI资源(您可能看不到该资源,稍后会详细介绍)。
更新
.env
文件中的部署端点,将其设置在AZURE_SERVERLESS_OPENAI_API_ENDPOINT
变量中。.env AZURE_SERVERLESS_OPENAI_API_ENDPOINT=https://....openai.azure.com返回您的Azure AI Foundry项目中的概览选项卡,然后点击在管理中心打开。
点击Azure OpenAI Service资源,然后点击Resource外部链接,这将带您回到Azure门户中的(底层)Azure OpenAI服务。
导航到访问控制(IAM),然后选择查看我的访问权限。确保您的用户或服务主体拥有Cognitive Services OpenAI 用户/贡献者角色。如果收到
401
错误,请点击添加,添加角色分配,并将Cognitive Services OpenAI 用户角色分配给您的用户。
此时,您已准备好使用Azure CLI登录并使用托管身份。
安装 Azure CLI。
打开终端并登录
终端窗口 az login
API密钥
打开您的Azure OpenAI资源并导航至资源管理,然后选择密钥和终结点。
更新
.env
文件,填写端点地址和密钥(Key 1或Key 2)以及端点信息。.env AZURE_SERVERLESS_OPENAI_API_ENDPOINT=https://....openai.azure.comAZURE_SERVERLESS_OPENAI_API_KEY=...
别名
以下模型别名在GenAIScript中默认尝试使用。
别名 | 模型标识符 |
---|---|
large | gpt-4o |
small | gpt-4o-mini |
vision | gpt-4o |
vision_small | gpt-4o-mini |
推理 | o1 |
reasoning_small | o1-mini |
embeddings | text-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)
在Azure Portal中打开您的Azure AI项目资源
导航至访问控制(IAM),然后选择查看我的访问权限。确保您的用户或服务主体拥有Azure AI开发者角色。如果收到
401
错误,请点击添加,添加角色分配并为您的用户添加Azure AI开发者角色。将端点目标URL配置为
AZURE_SERVERLESS_MODELS_API_ENDPOINT
。.env AZURE_SERVERLESS_MODELS_API_ENDPOINT=https://...models.ai.azure.com导航到部署部分,确保您已部署LLM并复制部署信息名称,在脚本中会需要用到它。
更新
script
函数中的model
字段,使其与您Azure资源中的模型部署名称相匹配。script({model: "azure_serverless:deployment-info-name",...})
API密钥
打开 https://ai.azure.com/ 并进入 部署 页面。
从目录中部署一个基础模型。 您可以使用
Deployment Options
->Serverless API
选项将模型部署为无服务器API。将端点目标URL配置为
AZURE_SERVERLESS_MODELS_API_ENDPOINT
变量,并将密钥配置在.env
文件中的AZURE_SERVERLESS_MODELS_API_KEY
中*.**.env AZURE_SERVERLESS_MODELS_API_ENDPOINT=https://...models.ai.azure.comAZURE_SERVERLESS_MODELS_API_KEY=...找到部署名称并在您的脚本中使用它,
model: "azure_serverless_models:deployment-id"
。
支持多种推理部署方式
你可以更新AZURE_SERVERLESS_MODELS_API_KEY
,通过一个deploymentid=key
对的列表来支持多个部署(每个部署有不同的密钥)。
AZURE_SERVERLESS_MODELS_API_KEY="model1=key1model2=key2model3=key3"
限制条件
- listModels
- 忽略输出令牌的预测
Azure AI 搜索
这不是一个大型语言模型提供商,而是一个内容搜索服务提供商。但由于其配置方式与其他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/
在Azure 门户中打开您的Azure AI Search资源, 点击概述,然后点击属性。
点击API访问控制并启用基于角色的访问控制或两者。
打开访问控制(IAM)选项卡,确保您的用户 或服务主体拥有搜索服务参与者角色。
API密钥
该服务通过AZURE_AI_SEARCH_ENDPOINT
和AZURE_AI_SEARCH_API_KEY
环境变量进行配置。
AZURE_AI_SEARCH_ENDPOINT=https://{{service-name}}.search.windows.net/AZURE_AI_SEARCH_API_KEY=...
Google AI
google
提供商允许您使用Google AI模型。它为您提供访问权限
打开 Google AI Studio 并创建一个新的API密钥。
更新
.env
文件中的API密钥。.env GEMINI_API_KEY=...在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 |
long | gemini-1.5-flash-latest |
推理 | gemini-2.0-flash-thinking-exp-1219 |
reasoning_small | gemini-2.0-flash-thinking-exp-1219 |
embeddings | text-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:*
作为模型名称来强制使用此模型。
安装 GitHub Copilot Chat (重点是 Chat)
- 运行你的脚本
确认您已允许GenAIScript使用GitHub Copilot Chat模型。
选择与您脚本中匹配的最佳聊天模型
(如果您的设置中已有映射,此步骤将被跳过)
GenAIScript模型名称与Visual Studio模型的映射关系存储在设置中。
Anthropic
anthropic
提供商可访问 Anthropic 模型。Anthropic 是一家提供强大语言模型(包括 Claude 系列)的人工智能研究公司。
script({ model: "anthropic:claude-2.1" })
要在GenAIScript中使用Anthropic模型,请按照以下步骤操作:
注册一个Anthropic账号并从他们的控制台获取API密钥。
将您的Anthropic API密钥添加到
.env
文件中:.env ANTHROPIC_API_KEY=sk-ant-api...通过访问Anthropic模型文档找到最适合您需求的模型。
更新您的脚本以使用您选择的
model
。script({...model: "anthropic:claude-3-5-sonnet-20240620",})
别名
以下模型别名在GenAIScript中默认尝试使用。
别名 | 模型标识符 |
---|---|
large | claude-3-7-sonnet-latest |
small | claude-3-5-haiku-latest |
vision | claude-3-7-sonnet-latest |
vision_small | claude-3-5-sonnet-latest |
推理 | claude-3-7-sonnet-latest:high |
reasoning_small | claude-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模型,请按照以下步骤操作:
注册一个Hugging Face账号并从他们的控制台获取API密钥。 如果您正在创建细粒度令牌,请启用调用无服务器推理API选项。
将您的Hugging Face API密钥添加到
.env
文件中 作为HUGGINGFACE_API_KEY
、HF_TOKEN
或HUGGINGFACE_TOKEN
变量。.env HUGGINGFACE_API_KEY=hf_...通过访问HuggingFace models找到最适合您需求的模型。
更新您的脚本以使用您选择的
model
。script({...model: "huggingface:microsoft/Phi-3-mini-4k-instruct",})
别名
以下模型别名在GenAIScript中默认尝试使用。
别名 | 模型标识符 |
---|---|
large | meta-llama/Llama-3.3-70B-Instruct |
small | microsoft/phi-4 |
vision | meta-llama/Llama-3.2-11B-Vision-Instruct |
embeddings | nomic-ai/nomic-embed-text-v1.5 |
限制条件
- 使用 OpenAI兼容层
- listModels
- 忽略输出令牌的预测
Mistral AI
mistral
提供商允许您通过 Mistral API 使用 Mistral AI Models。
script({ model: "mistral:mistral-large-latest" })
注册一个Mistral AI账户并从他们的控制台获取API密钥。
将您的Mistral AI API密钥添加到
.env
文件中:.env MISTRAL_API_KEY=...将您的脚本更新为使用您选择的
model
。script({...model: "mistral:mistral-large-latest",})
别名
以下模型别名在GenAIScript中默认尝试使用。
别名 | 模型标识符 |
---|---|
大模型 | mistral-large-latest |
小 | mistral-small-latest |
vision | pixtral-large-latest |
限制条件
- 忽略输出令牌的预测
阿里云
alibaba
提供商接入 Alibaba Cloud 的模型。
script({ model: "alibaba:qwen-max",})
将您的阿里云API密钥添加到
.env
文件中:.env ALIBABA_API_KEY=sk_...通过访问Alibaba models找到最适合您需求的模型。
更新您的脚本以使用您选择的
model
。script({...model: "alibaba:qwen-max",})
别名
以下模型别名在GenAIScript中默认尝试使用。
别名 | 模型标识符 |
---|---|
large | qwen-max |
small | qwen-turbo |
long | qwen-plus |
embeddings | text-embedding-v3 |
限制条件
- 使用 OpenAI兼容层
- listModels
- 忽略输出令牌的预测
- 工具作为后备工具自动实现。
Ollama
Ollama 是一款桌面应用程序,可让您本地下载并运行模型。
在本地运行工具可能需要额外的GPU资源,具体取决于您使用的模型。
使用 ollama
提供程序来访问 Ollama 模型。
启动Ollama应用程序或
终端窗口 ollama serve将您的脚本更新为使用
ollama:phi3.5
模型(或任何其他模型或来自Hugging Face的模型)。script({...,model: "ollama:phi3.5",})GenAIScript会自动拉取模型,根据模型大小可能需要一些时间。该模型由Ollama在本地缓存。
如果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 Face的GGUF模型。
script({ ..., model: "ollama:hf.co/bartowski/Llama-3.2-1B-Instruct-GGUF",})
使用Docker运行Ollama
您可以方便地在Docker容器中运行Ollama。
- 如果您正在使用devcontainer
或GitHub Codespace,
请确保在您的
devcontainer.json
文件中添加docker-in-docker
选项。
{ "features": { "docker-in-docker": "latest" }}
- 启动 Ollama 容器
docker run -d -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama
- 停止并移除Ollama容器
docker stop ollama && docker rm ollama
别名
以下模型别名在GenAIScript中默认尝试使用。
别名 | 模型标识符 |
---|---|
embeddings | nomic-embed-text |
限制条件
- 使用 OpenAI兼容层
- 忽略logit_bias
- 忽略输出令牌的预测
深度求索
deepseek
是 DeepSeek (https://www.deepseek.com/) 聊天模型提供商。
它使用 DEEPSEEK_API_...
环境变量。
从DeepSeek API密钥门户创建一个新的密钥。
更新
.env
文件中的密钥。.env DEEPSEEK_API_KEY=sk_...将
script
中的model
字段设置为deepseek:deepseek:deepseek-chat
,这是目前唯一支持的模型。script({model: "deepseek:deepseek-chat",...})
别名
以下模型别名在GenAIScript中默认尝试使用。
别名 | 模型标识符 |
---|---|
large | deepseek-chat |
small | deepseek-chat |
vision | deepseek-chat |
LM Studio
lmstudio
提供程序连接到 LMStudio 无头服务器,并允许运行本地LLM模型。
安装 LMStudio (v0.3.5及以上版本)
打开LMStudio
打开模型目录,选择您的模型并至少加载一次,以便将其下载到本地。
打开设置(齿轮图标)并启用启用本地LLM服务。
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中默认尝试使用。
别名 | 模型标识符 |
---|---|
embeddings | text-embedding-nomic-embed-text-v1.5 |
限制条件
- 忽略输出令牌的预测
LM Studio与Hugging Face模型
按照本指南将Hugging Face模型加载到LMStudio中。
一月
jan
提供者连接到 Jan 本地服务器。
打开Jan并下载您计划使用的模型。您可以在模型描述页面找到模型标识符。
点击本地API服务器图标(左下角),然后点击启动服务器。
保持桌面应用程序持续运行!
要使用Jan模型,请使用jan:modelid
语法。
如果您更改了默认服务器URL,可以设置JAN_API_BASE
环境变量。
JAN_API_BASE=http://localhost:1234/v1
限制条件
- 忽略输出令牌的预测
- 忽略top_p
Windows AI
window_ai
提供程序支持 AI for Windows Apps,它提供了最先进的本地模型,并支持NPU硬件。
打开模型目录并从ONNX模型运行时部分添加一个模型。
在资源管理器视图中右键点击模型,选择复制模型名称
在您的脚本中将模型名称设置为复制的模型名称。
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
。
安装Docker。更多信息请参阅< a>LocalAI文档。
更新
.env
文件并将 api 类型设置为localai
。.env OPENAI_API_TYPE=localai
要在docker中启动LocalAI,请运行以下命令:
docker run -p 8080:8080 --name local-ai -ti localai/localai:latest-aio-cpudocker start local-aidocker statsecho "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供应商对接。
更新
.env
文件中的本地服务器信息。.env OPENAI_API_BASE=http://localhost:...
OpenRouter
您可以将OpenAI提供商配置为使用OpenRouter服务,只需将OPENAI_API_BASE
设置为https://openrouter.ai/api/v1
。您还需要一个api key。
OPENAI_API_BASE=https://openrouter.ai/api/v1OPENAI_API_KEY=...
然后在您的脚本中使用OpenRouter模型名称:
script({ model: "openai:openai/gpt-4o-mini" })
默认情况下,GenAIScript会将站点URL和名称设置为GenAIScript
,但您可以用自己的值覆盖这些设置:
OPENROUTER_SITE_URL=... # populates HTTP-Referer headerOPENROUTER_SITE_NAME=... # populate X-Title header
LiteLLM
LiteLLM 代理网关提供了一个与OpenAI兼容的API,用于在本地运行模型。
配置 LITELLM_...
密钥以设置密钥和可选的基地址。
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
环境变量来更改它。
HUGGINGFACE_TRANSFORMERS_DEVICE=gpu
限制条件
- 忽略输出令牌的预测
Whisper ASR 网络服务
这个 whisperasr
提供商允许配置一个转录任务来使用Whisper ASR WebService项目。
const transcript = await transcribe("video.mp4", { model: "whisperasr:default",})
该whisper服务可以在本地或docker容器中运行(参见文档)。
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
。
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
模型连接信息。
OLLAMA_PHI3_API_BASE=http://localhost:11434/v1
在代理服务器后运行
你可以设置HTTP_PROXY
和/或HTTPS_PROXY
环境变量来在代理服务器后运行GenAIScript。
HTTP_PROXY=http://proxy.example.com:8080
检查您的配置
您可以通过运行genaiscript info env
command来检查您的配置。
它将显示由GenAIScript解析的当前配置信息。
genaiscript info env
下一步
编写您的第一个脚本。