推荐在Workers配置界面填写环境变量, 而不是直接修改js代码中的变量
| KEY | 特殊说明 |
|---|---|
| DATABASE | 先新建KV,新建的时候名字随意,然后绑定的时候必须设定为DATABASE |
为每个用户通用的配置,只能在Workers配置界面或者toml中配置填写,不支持通过Telegram发送消息来修改。
array string: 数组为空字符串,表示没有设置值,如果需要设置值,设置为'value1,value2',多个值用逗号分隔。
| KEY | 名称 | 默认值 | 描述 |
|---|---|---|---|
| LANGUAGE | 语言 | zh-cn |
设置语言 |
| UPDATE_BRANCH | 更新分支 | master |
检查更新的分支 |
| CHAT_COMPLETE_API_TIMEOUT | 聊天完成API超时 | 0 |
AI对话API的超时时间(秒) |
| KEY | 名称 | 默认值 | 描述 |
|---|---|---|---|
| TELEGRAM_API_DOMAIN | Telegram API域名 | https://api.telegram.org/ |
Telegram API的域名 |
| TELEGRAM_AVAILABLE_TOKENS | 可用的Telegram令牌 | ''(array string) |
允许访问的Telegram Token,设置时以逗号分隔 |
| DEFAULT_PARSE_MODE | 默认解析模式 | Markdown |
默认消息解析模式 |
| I_AM_A_GENEROUS_PERSON | 允许所有人使用 | false |
是否允许所有人使用 |
| CHAT_WHITE_LIST | 聊天白名单 | ''(array string) |
允许使用的聊天ID白名单 |
| LOCK_USER_CONFIG_KEYS | 锁定的用户配置键 | 默认值为所有API的URL | 防止被替换导致token泄露的配置键 |
| TELEGRAM_BOT_NAME | Telegram机器人名称 | ''(array string) |
允许访问的Telegram Token对应的Bot Name,设置时以逗号分隔 |
| CHAT_GROUP_WHITE_LIST | 群组白名单 | ''(array string) |
允许使用的群组ID白名单 |
| GROUP_CHAT_BOT_ENABLE | 群组机器人开关 | true |
是否启用群组机器人 |
| GROUP_CHAT_BOT_SHARE_MODE | 群组机器人共享模式 | true |
开启后同个群组的人使用同一个聊天上下文 |
IMPORTANT: 必须把群ID加到白名单
CHAT_GROUP_WHITE_LIST才能使用, 否则任何人都可以把你的机器人加到群组中,然后消耗你的配额。
IMPORTANT: 受限TG的隐私安全策略,如果你的群组是公开群组或超过2000人,请将机器人设置为
管理员,否则机器人无法响应@机器人的聊天消息。
IMPORTANT: 必须在botfather中设置
/setprivacy为Disable,否则机器人无法响应@机器人的聊天消息。
如果您想将
DEFAULT_PARSE_MODE设置为MarkdownV2,您需要使用workers-mk2版本。
IMPORTANT: 如果你遇到
Key XXX is locked的错误,说明你的配置被锁定了,需要解锁才能修改。
LOCK_USER_CONFIG_KEYS的默认值为所有API的BASE URL。为了防止用户替换API BASE URL导致token泄露,所以默认情况下会锁定所有API的BASE URL。如果你想解锁某个API的BASE URL,可以将其从LOCK_USER_CONFIG_KEYS中删除。
LOCK_USER_CONFIG_KEYS是一个字符串数组,默认值为:
OPENAI_API_BASE,GOOGLE_COMPLETIONS_API,MISTRAL_API_BASE,COHERE_API_BASE,ANTHROPIC_API_BASE,AZURE_COMPLETIONS_API,AZURE_DALLE_API
| KEY | 名称 | 默认值 | 描述 |
|---|---|---|---|
| AUTO_TRIM_HISTORY | 自动裁剪历史记录 | true |
为避免4096字符限制,自动裁剪消息 |
| MAX_HISTORY_LENGTH | 最大历史记录长度 | 20 |
保留的最大历史记录条数 |
| MAX_TOKEN_LENGTH | 最大令牌长度 | -1(不裁剪) |
以现在模型的价格只需要裁剪消息条数即可 |
| KEY | 名称 | 默认值 | 描述 |
|---|---|---|---|
| HIDE_COMMAND_BUTTONS | 隐藏命令按钮 | ''(array string) |
修改后需要重新init |
| SHOW_REPLY_BUTTON | 显示快捷回复按钮 | false |
是否显示快捷回复按钮 |
| EXTRA_MESSAGE_CONTEXT | 额外消息上下文 | false |
引用的消息也会假如上下文 |
| STREAM_MODE | 流模式 | true |
打字机模式 |
| SAFE_MODE | 安全模式 | true |
开启后会保存最新一条消息的ID |
| DEBUG_MODE | 调试模式 | false |
开启后会保存最新一条消息 |
| DEV_MODE | 开发模式 | false |
开启后会展示更多调试信息 |
每个用户的自定义配置,只能通过Telegram发送消息来修改,消息格式为/setenv KEY=VALUE, 用户配置的优先级比系统配置的更高。如果想删除配置,请使用/delenv KEY。 批量设置变量请使用/setenvs {"KEY1": "VALUE1", "KEY2": "VALUE2"}
所有 xxx_MODELS_LIST 可以是一个 URL 或一个 JSON 数组字符串。当它为空时,将默认使用 xxx__API_BASE 拼接成 URL 并请求获取所有模型的列表。如果您想手动设置模型列表,可以使用 JSON 数组字符串。
| KEY | 名称 | 默认值 | 描述 |
|---|---|---|---|
| AI_PROVIDER | AI提供商 | auto |
可选值 auto, openai, azure, workers, gemini, mistral, cohere, anthropic |
| AI_IMAGE_PROVIDER | AI图片提供商 | auto |
可选值 auto, openai, azure, workers |
| SYSTEM_INIT_MESSAGE | 全局默认初始化消息 | null |
根据绑定的语言自动选择默认值 |
system |
废弃 |
| KEY | 名称 | 默认值 |
|---|---|---|
| OPENAI_API_KEY | OpenAI API Key | ''(array string) |
| OPENAI_CHAT_MODEL | OpenAI的模型名称 | gpt-4o-mini |
| OPENAI_API_BASE | OpenAI API BASE | https://api.openai.com/v1 |
| OPENAI_API_EXTRA_PARAMS | OpenAI API Extra Params | {} |
| OPENAI_CHAT_MODELS_LIST | OpenAI 模型列表 | '' |
| KEY | Name | Default |
|---|---|---|
| DALL_E_MODEL | DALL-E的模型名称 | dall-e-3 |
| DALL_E_IMAGE_SIZE | DALL-E图片尺寸 | 1024x1024 |
| DALL_E_IMAGE_QUALITY | DALL-E图片质量 | standard |
| DALL_E_IMAGE_STYLE | DALL-E图片风格 | vivid |
| DALL_E_MODELS_LIST | DALL-E模型列表 | '' |
AZURE_COMPLETIONS_API
https://RESOURCE_NAME.openai.azure.com/openai/deployments/MODEL_NAME/chat/completions?api-version=VERSION_NAME
AZURE_DALLE_API
https://RESOURCE_NAME.openai.azure.com/openai/deployments/MODEL_NAME/images/generations?api-version=VERSION_NAME
| KEY | 名称 | 默认值 |
|---|---|---|
| AZURE_API_KEY | Azure API Key | null |
null |
||
null |
||
| AZURE_RESOURCE_NAME | Azure 资源名称 | null |
| AZURE_CHAT_MODEL | Azure 对话模型 | null |
| AZURE_IMAGE_MODEL | Azure 图片模型 | null |
| AZURE_API_VERSION | Azure API 版本号 | 2024-06-01 |
| AZURE_CHAT_MODELS_LIST | Azure聊天模型列表 | '' |
| KEY | 名称 | 默认值 |
|---|---|---|
| CLOUDFLARE_ACCOUNT_ID | Cloudflare Account ID | null |
| CLOUDFLARE_TOKEN | Cloudflare Token | null |
| WORKERS_CHAT_MODEL | Workers对话模型 | @cf/qwen/qwen1.5-7b-chat-awq |
| WORKERS_IMAGE_MODEL | Workers文生图模型 | @cf/black-forest-labs/flux-1-schnell |
| WORKERS_CHAT_MODELS_LIST | Workers聊天模型列表 | '' |
| WORKERS_IMAGE_MODELS_LIST | Workers文生图模型列表 | '' |
cloudflare workers 暂时不支持访问
| KEY | 名称 | 默认值 |
|---|---|---|
| GOOGLE_API_KEY | Google Gemini API Key | null |
https://generativelanguage.googleapis.com/v1beta/models/ |
||
gemini-pro |
||
| GOOGLE_CHAT_MODEL | Google Gemini Model | gemini-pro |
| GOOGLE_API_BASE | 支持Openai API 格式的 Gemini API Base | https://generativelanguage.googleapis.com/v1beta |
| GOOGLE_CHAT_MODELS_LIST | 谷歌聊天模型列表 | '' |
| KEY | 名称 | 默认值 |
|---|---|---|
| MISTRAL_API_KEY | Mistral API Key | null |
| MISTRAL_API_BASE | Mistral API Base | https://api.mistral.ai/v1 |
| MISTRAL_CHAT_MODEL | Mistral API Model | mistral-tiny |
| MISTRAL_CHAT_MODELS_LIST | Mistral聊天模型列表 | '' |
| KEY | 名称 | 默认值 |
|---|---|---|
| COHERE_API_KEY | Cohere API Key | null |
| COHERE_API_BASE | Cohere API Base | https://api.cohere.com/v1 |
| COHERE_CHAT_MODEL | Cohere API Model | command-r-plus |
| COHERE_CHAT_MODELS_LIST | Cohere 聊天室型号列表 | '' |
| KEY | 名称 | 默认值 |
|---|---|---|
| ANTHROPIC_API_KEY | Anthropic API Key | null |
| ANTHROPIC_API_BASE | Anthropic API Base | https://api.anthropic.com/v1 |
| ANTHROPIC_CHAT_MODEL | Anthropic API Model | claude-3-haiku-20240307 |
| ANTHROPIC_CHAT_MODELS_LIST | Anthropic聊天模型列表 | '' |
| KEY | 名称 | 默认值 |
|---|---|---|
| GROQ_API_KEY | Groq API Key | null |
| GROQ_API_BASE | Groq API Base | https://api.groq.com/openai/v1 |
| GROQ_CHAT_MODEL | Groq API Model | groq-chat |
| GROQ_CHAT_MODELS_LIST | Groq聊天模型列表 | '' |
| KEY | 名称 | 默认值 |
|---|---|---|
| DEEPSEEK_API_KEY | DeepSeek API Key | null |
| DEEPSEEK_API_BASE | DeepSeek API Base | https://api.deepseek.com |
| DEEPSEEK_CHAT_MODEL | DeepSeek API Model | deepseek-chat |
| DEEPSEEK_CHAT_MODELS_LIST | DeepSeek 聊天模型列表 | '' |
| KEY | 名称 | 默认值 |
|---|---|---|
| XAI_API_KEY | XAi API Key | null |
| XAI_API_BASE | XAi API Base | https://api.x.ai |
| XAI_CHAT_MODEL | XAi API Model | grok-2-latest |
| XAI_CHAT_MODELS_LIST | XAi 聊天模型列表 | '' |
| 命令 | 说明 | 示例 |
|---|---|---|
/help |
获取命令帮助 | /help |
/new |
发起新的对话 | /new |
/start |
获取你的ID,并发起新的对话 | /start |
/img |
生成一张图片 | /img 图片描述 |
/version |
获取当前版本号,判断是否需要更新 | /version |
/setenv |
设置用户配置, 详情见用户配置 |
/setenv KEY=VALUE |
/setenvs |
批量设置用户配置, 详情见用户配置 |
/setenvs {"KEY1": "VALUE1", "KEY2": "VALUE2"} |
/delenv |
删除用户配置 | /delenv KEY |
/system |
查看当前一些系统信息 | /system |
/redo |
修改上一个提问或者换一个回答 | /redo 修改过的内容 或者 /redo |
/models |
切换对话模型 | /models 后通过内置菜单选择模型 |
/echo |
回显消息,仅开发模式可用 | /echo |
除了上述系统定义的指令,你也可以自定义快捷指令, 可以将某些较长的指令简化为一个单词的指令。
自定义指令使用环境变量设置 CUSTOM_COMMAND_XXX,其中XXX为指令名,比如CUSTOM_COMMAND_azure,值为指令内容,比如/setenvs {"AI_PROVIDER": "azure"}。 这样就可以使用/azure来代替/setenvs {"AI_PROVIDER": "azure"}实现快速切换AI提供商。
下面是一些自定义指令例子
| 指令 | 值 |
|---|---|
| CUSTOM_COMMAND_azure | /setenvs {"AI_PROVIDER": "azure"} |
| CUSTOM_COMMAND_workers | /setenvs {"AI_PROVIDER": "workers"} |
| CUSTOM_COMMAND_gpt3 | /setenvs {"AI_PROVIDER": "openai", "OPENAI_CHAT_MODEL": "gpt-3.5-turbo"} |
| CUSTOM_COMMAND_gpt4 | /setenvs {"AI_PROVIDER": "openai", "OPENAI_CHAT_MODEL": "gpt-4"} |
| CUSTOM_COMMAND_cn2en | /setenvs {"SYSTEM_INIT_MESSAGE": "你是一个翻译下面将我说的话都翻译成英文"} |
如果你是用toml进行配置,可以使用下面的方式:
CUSTOM_COMMAND_azure= '/setenvs {"AI_PROVIDER": "azure"}'
CUSTOM_COMMAND_workers = '/setenvs {"AI_PROVIDER": "workers"}'
CUSTOM_COMMAND_gpt3 = '/setenvs {"AI_PROVIDER": "openai", "OPENAI_CHAT_MODEL": "gpt-3.5-turbo"}'
CUSTOM_COMMAND_gpt4 = '/setenvs {"AI_PROVIDER": "openai", "OPENAI_CHAT_MODEL": "gpt-4"}'
CUSTOM_COMMAND_cn2en = '/setenvs {"SYSTEM_INIT_MESSAGE": "你是一个翻译下面将我说的话都翻译成英文"}'如果你想为自定义指令添加帮助信息,可以使用环境变量设置 COMMAND_DESCRIPTION_XXX,其中XXX为指令名,比如COMMAND_DESCRIPTION_azure,值为指令描述,比如切换AI提供商为Azure。 这样就可以使用/help查看到自定义指令的帮助信息。
下面是一些自定义指令帮助信息例子
| 指令描述 | 描述 |
|---|---|
| COMMAND_DESCRIPTION_azure | 切换AI提供商为Azure |
| COMMAND_DESCRIPTION_workers | 切换AI提供商为Workers |
| COMMAND_DESCRIPTION_gpt3 | 切换AI提供商为OpenAI GPT-3.5 Turbo |
| COMMAND_DESCRIPTION_gpt4 | 切换AI提供商为OpenAI GPT-4 |
| COMMAND_DESCRIPTION_cn2en | 将对话内容翻译成英文 |
如果你是用toml进行配置,可以使用下面的方式:
COMMAND_DESCRIPTION_azure = '切换AI提供商为Azure'
COMMAND_DESCRIPTION_workers = '切换AI提供商为Workers'
COMMAND_DESCRIPTION_gpt3 = '切换AI提供商为OpenAI GPT-3.5 Turbo'
COMMAND_DESCRIPTION_gpt4 = '切换AI提供商为OpenAI GPT-4'
COMMAND_DESCRIPTION_cn2en = '将对话内容翻译成英文'如果你想将自定义命令绑定到telegram的菜单中,你可以添加如下环境变量COMMAND_SCOPE_azure = "all_private_chats,all_group_chats,all_chat_administrators",这样插件就会在所有的私聊,群聊和群组中生效。
function stringify(obj) {
const res = {}
for(const key of Object.keys(obj)) {
res[key] = JSON.stringify(obj[key])
}
return JSON.stringify(res)
}
console.log(`/setenvs ${stringify(
{
"AI_PROVIDER": "openai",
"OPENAI_CHAT_MODELS_LIST": ["gpt4", "gpt3", "gpt2", "gpt1"]
}
)}`)
// output: /setenvs {"AI_PROVIDER":"\"openai\"","OPENAI_CHAT_MODELS_LIST":"[\"gpt4\",\"gpt3\",\"gpt2\",\"gpt1\"]"}支持使用 /models 命令获取支持的模型列表,并且通过菜单选择切换。
模型列表支持的配置项的类型为 URL 或者 json 数组。 如果是 URL,会自动请求获取模型列表,如果是 json 数组,会直接使用该数组。
当前支持从URL获取模型列表的AI提供商有 openai, workers, mistral, cohere。只支持 json 数组的AI提供商有 azure, gemini, anthropic。
当支持从URL获取模型列表的AI提供商的模型列表配置项为空时候,会默认根据其 base api 自动拼接获取模型列表的URL。
| AI提供商 | 模型列表配置项 | 自动拼接生成的值 |
|---|---|---|
| openai | OPENAI_CHAT_MODELS_LIST | ${OPENAI_API_BASE}/models |
| workers | WORKERS_CHAT_MODELS_LIST | https://api.cloudflare.com/client/v4/accounts/${CLOUDFLARE_ACCOUNT_ID}/ai/models/search?task=Text%20Generation |
| mistral | MISTRAL_CHAT_MODELS_LIST | ${MISTRAL_API_BASE}/models |
| cohere | COHERE_CHAT_MODELS_LIST | https://api.cohere.com/v1/models |
| azure | AZURE_CHAT_MODELS_LIST | https://${context.AZURE_RESOURCE_NAME}.openai.azure.com/openai/models?api-version=${context.AZURE_API_VERSION} |
| gemini | GOOGLE_COMPLETIONS_MODELS_LIST | ${GOOGLE_API_BASE}/v1beta/models |
| anthropic | ANTHROPIC_CHAT_MODELS_LIST | ${ANTHROPIC_API_BASE}/models |