使用 OpenAI 协议代理 Cloudflare Workers AI 服务
插件实现了基于 OpenAI API 契约的 AI 代理功能。目前支持 OpenAI、Azure OpenAI、月之暗面(Moonshot)和通义千问等 AI 服务提供商。
注意:
请求路径后缀匹配 时,对应文生文场景,会用 OpenAI 的文生文协议解析请求 Body,再转换为对应 LLM 厂商的文生文协议
请求路径后缀匹配 时,对应文本向量场景,会用 OpenAI 的文本向量协议解析请求 Body,再转换为对应 LLM 厂商的文本向量协议
插件执行阶段: 插件执行优先级:
| 名称 |
数据类型 |
填写要求 |
默认值 |
描述 |
|
object |
必填 |
– |
配置目标 AI 服务提供商的信息 |
的配置字段说明如下:
| 名称 |
数据类型 |
填写要求 |
默认值 |
描述 |
|
string |
必填 |
– |
AI 服务提供商名称 |
|
array of string |
非必填 |
– |
用于在访问 AI 服务时进行认证的令牌。如果配置了多个 token,插件会在请求时随机进行选择。部分服务提供商只支持配置一个 token。 |
|
number |
非必填 |
– |
访问 AI 服务的超时时间。单位为毫秒。默认值为 ,即 2 分钟。此项配置目前仅用于获取上下文信息,并不影响实际转发大模型请求。 |
|
map of string |
非必填 |
– |
AI 模型映射表,用于将请求中的模型名称映射为服务提供商支持模型名称。 1. 支持前缀匹配。例如用 “gpt-3-” 匹配所有名称以“gpt-3-”开头的模型; 2. 支持使用 ”” 为键来配置通用兜底映射关系; 3. 如果映射的目标名称为空字符串 “”,则表示保留原模型名称。 |
|
string |
非必填 |
– |
插件对外提供的 API 接口契约。目前支持以下取值:openai(默认值,使用 OpenAI 的接口契约)、original(使用目标服务提供商的原始接口契约) |
|
object |
非必填 |
– |
配置 AI 对话上下文信息 |
|
array of customSetting |
非必填 |
– |
为AI请求指定覆盖或者填充参数 |
|
object |
非必填 |
– |
配置 apiToken 的 failover 策略,当 apiToken 不可用时,将其移出 apiToken 列表,待健康检测通过后重新添加回 apiToken 列表 |
|
object |
非必填 |
– |
当请求失败时立即进行重试 |
的配置字段说明如下:
| 名称 |
数据类型 |
填写要求 |
默认值 |
描述 |
|
string |
必填 |
– |
保存 AI 对话上下文的文件 URL。仅支持纯文本类型的文件内容 |
|
string |
必填 |
– |
URL 所对应的 Higress 后端服务完整名称 |
|
number |
必填 |
– |
URL 所对应的 Higress 后端服务访问端口 |
的配置字段说明如下:
| 名称 |
数据类型 |
填写要求 |
默认值 |
描述 |
|
string |
必填 |
– |
想要设置的参数的名称,例如 |
|
string/int/float/bool |
必填 |
– |
想要设置的参数的值,例如0 |
|
string |
非必填 |
”auto” |
参数设置的模式,可以设置为”auto”或者”raw”,如果为”auto”则会自动根据协议对参数名做改写,如果为”raw”则不会有任何改写和限制检查 |
|
bool |
非必填 |
true |
如果为false则只在用户没有设置这个参数时填充参数,否则会直接覆盖用户原有的参数设置 |
custom-setting会遵循如下表格,根据和协议来替换对应的字段,用户需要填写表格中列中存在的值。例如用户将设置为,在openai协议中会替换,在gemini中会替换。 表示该协议不支持此参数。如果不在此表格中或者对应协议不支持此参数,同时没有设置raw模式,则配置不会生效。
| settingName |
openai |
baidu |
spark |
qwen |
gemini |
hunyuan |
claude |
minimax |
| max_tokens |
max_tokens |
max_output_tokens |
max_tokens |
max_tokens |
maxOutputTokens |
none |
max_tokens |
tokens_to_generate |
| temperature |
temperature |
temperature |
temperature |
temperature |
temperature |
Temperature |
temperature |
temperature |
| top_p |
top_p |
top_p |
none |
top_p |
topP |
TopP |
top_p |
top_p |
| top_k |
none |
none |
top_k |
none |
topK |
none |
top_k |
none |
| seed |
seed |
none |
none |
seed |
none |
none |
none |
none |
如果启用了raw模式,custom-setting会直接用输入的和去更改请求中的json内容,而不对参数名称做任何限制和修改。 对于大多数协议,custom-setting都会在json内容的根路径修改或者填充参数。对于协议,ai-proxy会在json的子路径下做配置。对于协议,则会在子路径下做配置。
的配置字段说明如下:
| 名称 |
数据类型 |
填写要求 |
默认值 |
描述 |
| enabled |
bool |
非必填 |
false |
是否启用 apiToken 的 failover 机制 |
| failureThreshold |
int |
非必填 |
3 |
触发 failover 连续请求失败的阈值(次数) |
| successThreshold |
int |
非必填 |
1 |
健康检测的成功阈值(次数) |
| healthCheckInterval |
int |
非必填 |
5000 |
健康检测的间隔时间,单位毫秒 |
| healthCheckTimeout |
int |
非必填 |
5000 |
健康检测的超时时间,单位毫秒 |
| healthCheckModel |
string |
启用 failover 时必填 |
|
健康检测使用的模型 |
| failoverOnStatus |
array of string |
非必填 |
|
需要进行 failover 的原始请求的状态码,支持正则表达式匹配 |
的配置字段说明如下:
| 名称 |
数据类型 |
填写要求 |
默认值 |
描述 |
| enabled |
bool |
非必填 |
false |
是否启用失败请求重试 |
| maxRetries |
int |
非必填 |
1 |
最大重试次数 |
| retryTimeout |
int |
非必填 |
30000 |
重试超时时间,单位毫秒 |
| retryOnStatus |
array of string |
非必填 |
|
需要进行重试的原始请求的状态码,支持正则表达式匹配 |
OpenAI
OpenAI 所对应的 为 。它特有的配置字段如下:
| 名称 |
数据类型 |
填写要求 |
默认值 |
描述 |
|
string |
非必填 |
– |
基于OpenAI协议的自定义后端URL,例如: www.example.com/myai/v1/chat/completions |
|
object |
非必填 |
– |
预先定义OpenAI响应需满足的Json Schema, 注意目前仅特定的几种模型支持该用法 |
Azure OpenAI
Azure OpenAI 所对应的 为 。它特有的配置字段如下:
| 名称 |
数据类型 |
填写要求 |
默认值 |
描述 |
|
string |
必填 |
– |
Azure OpenAI 服务的 URL,须包含 查询参数。 |
注意: Azure OpenAI 只支持配置一个 API Token。
月之暗面(Moonshot)
月之暗面所对应的 为 。它特有的配置字段如下:
| 名称 |
数据类型 |
填写要求 |
默认值 |
描述 |
|
string |
非必填 |
– |
通过文件接口上传至月之暗面的文件 ID,其内容将被用做 AI 对话的上下文。不可与 字段同时配置。 |
通义千问(Qwen)
通义千问所对应的 为 。它特有的配置字段如下:
| 名称 |
数据类型 |
填写要求 |
默认值 |
描述 |
|
boolean |
非必填 |
– |
是否启用通义千问内置的互联网搜索功能。 |
|
array of string |
非必填 |
– |
通过文件接口上传至Dashscope的文件 ID,其内容将被用做 AI 对话的上下文。不可与 字段同时配置。 |
|
boolean |
非必填 |
false |
开启通义千问兼容模式。启用通义千问兼容模式后,将调用千问的兼容模式接口,同时对请求/响应不做修改。 |
百川智能 (Baichuan AI)
百川智能所对应的 为 。它并无特有的配置字段。
零一万物(Yi)
零一万物所对应的 为 。它并无特有的配置字段。
智谱AI(Zhipu AI)
智谱AI所对应的 为 。它并无特有的配置字段。
DeepSeek(DeepSeek)
DeepSeek所对应的 为 。它并无特有的配置字段。
Groq
Groq 所对应的 为 。它并无特有的配置字段。
文心一言(Baidu)
文心一言所对应的 为 。它并无特有的配置字段。
360智脑
360智脑所对应的 为 。它并无特有的配置字段。
GitHub模型
GitHub模型所对应的 为 。它并无特有的配置字段。
Mistral
Mistral 所对应的 为 。它并无特有的配置字段。
MiniMax
MiniMax所对应的 为 。它特有的配置字段如下:
| 名称 |
数据类型 |
填写要求 |
默认值 |
描述 |
|
string |
v2 和 pro 中选填一项 |
v2 |
v2 代表 ChatCompletion v2 API,pro 代表 ChatCompletion Pro API |
|
string |
为 pro 时必填 |
– |
为 pro 时使用 ChatCompletion Pro API,需要设置 groupID |
Anthropic Claude
Anthropic Claude 所对应的 为 。它特有的配置字段如下:
| 名称 |
数据类型 |
填写要求 |
默认值 |
描述 |
|
string |
可选 |
– |
Claude 服务的 API 版本,默认为 2023-06-01 |
文心一言 ERNIE Bot 教程
Ollama
Ollama 所对应的 为 。它特有的配置字段如下:
| 名称 |
数据类型 |
填写要求 |
默认值 |
描述 |
|
string |
必填 |
– |
Ollama 服务器的主机地址 |
|
number |
必填 |
– |
Ollama 服务器的端口号,默认为11434 |
混元
混元所对应的 为 。它特有的配置字段如下:
| 名称 |
数据类型 |
填写要求 |
默认值 |
描述 |
|
string |
必填 |
– |
混元用于v3版本认证的id |
|
string |
必填 |
– |
混元用于v3版本认证的key |
阶跃星辰 (Stepfun)
阶跃星辰所对应的 为 。它并无特有的配置字段。
Cloudflare Workers AI
Cloudflare Workers AI 所对应的 为 。它特有的配置字段如下:
| 名称 |
数据类型 |
填写要求 |
默认值 |
描述 |
|
string |
必填 |
– |
Cloudflare Account ID |
星火 (Spark)
星火所对应的 为 。它并无特有的配置字段。
讯飞星火认知大模型的字段值为。即填入自己的APIKey与APISecret,并以分隔。
Gemini
Gemini 所对应的 为 。它特有的配置字段如下:
| 名称 |
数据类型 |
填写要求 |
默认值 |
描述 |
|
map of string |
非必填 |
– |
Gemini AI内容过滤和安全级别设定。参考Safety settings |
DeepL
DeepL 所对应的 为 。它特有的配置字段如下:
| 名称 |
数据类型 |
填写要求 |
默认值 |
描述 |
|
string |
必填 |
– |
DeepL 翻译服务需要的目标语种 |
Cohere
Cohere 所对应的 为 。它并无特有的配置字段。
Together-AI
Together-AI 所对应的 为 。它并无特有的配置字段。
使用最基本的 Azure OpenAI 服务,不配置任何上下文。
配置信息
请求示例
响应示例
使用通义千问服务,并配置从 OpenAI 大模型到通义千问的模型映射关系。
配置信息
AI 对话请求示例
URL: http://your-domain/v1/chat/completions
请求示例:
响应示例:
多模态模型 API 请求示例(适用于 和 模型)
URL: http://your-domain/v1/chat/completions
请求示例:
响应示例:
文本向量请求示例
URL: http://your-domain/v1/embeddings
请求示例:
响应示例:
使用通义千问服务,同时配置纯文本上下文信息。
配置信息
请求示例
响应示例
提前上传文件至通义千问,以文件内容作为上下文使用其 AI 服务。
配置信息
请求示例
响应示例
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。
发布者:Ai探索者,转载请注明出处:https://javaforall.net/263629.html原文链接:https://javaforall.net