From f50d59b9d65f417f35803b96c2a4ded14160cd70 Mon Sep 17 00:00:00 2001 From: wy471x Date: Tue, 26 May 2026 22:26:46 +0800 Subject: [PATCH 1/3] fix: correct zh i18n AI plugin filenames and image paths for versions 2.7.0.1-2.7.0.3 --- .../plugin-center/ai/ai-prompt.md | 57 +++++++++++++++++ .../plugin-center/ai/ai-proxy.md | 63 +++++++++++++++++++ .../plugin-center/ai/ai-token-limiter.md | 61 ++++++++++++++++++ .../plugin-center/ai/ai-prompt.md | 57 +++++++++++++++++ .../plugin-center/ai/ai-proxy.md | 63 +++++++++++++++++++ .../plugin-center/ai/ai-token-limiter.md | 61 ++++++++++++++++++ .../plugin-center/ai/ai-prompt.md | 57 +++++++++++++++++ .../plugin-center/ai/ai-proxy.md | 63 +++++++++++++++++++ .../plugin-center/ai/ai-token-limiter.md | 61 ++++++++++++++++++ 9 files changed, 543 insertions(+) create mode 100644 i18n/zh/docusaurus-plugin-content-docs/version-2.7.0.1/plugin-center/ai/ai-prompt.md create mode 100644 i18n/zh/docusaurus-plugin-content-docs/version-2.7.0.1/plugin-center/ai/ai-proxy.md create mode 100644 i18n/zh/docusaurus-plugin-content-docs/version-2.7.0.1/plugin-center/ai/ai-token-limiter.md create mode 100644 i18n/zh/docusaurus-plugin-content-docs/version-2.7.0.2/plugin-center/ai/ai-prompt.md create mode 100644 i18n/zh/docusaurus-plugin-content-docs/version-2.7.0.2/plugin-center/ai/ai-proxy.md create mode 100644 i18n/zh/docusaurus-plugin-content-docs/version-2.7.0.2/plugin-center/ai/ai-token-limiter.md create mode 100644 i18n/zh/docusaurus-plugin-content-docs/version-2.7.0.3/plugin-center/ai/ai-prompt.md create mode 100644 i18n/zh/docusaurus-plugin-content-docs/version-2.7.0.3/plugin-center/ai/ai-proxy.md create mode 100644 i18n/zh/docusaurus-plugin-content-docs/version-2.7.0.3/plugin-center/ai/ai-token-limiter.md diff --git a/i18n/zh/docusaurus-plugin-content-docs/version-2.7.0.1/plugin-center/ai/ai-prompt.md b/i18n/zh/docusaurus-plugin-content-docs/version-2.7.0.1/plugin-center/ai/ai-prompt.md new file mode 100644 index 00000000000..7852b913c1c --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/version-2.7.0.1/plugin-center/ai/ai-prompt.md @@ -0,0 +1,57 @@ +--- +title: AiPmompt插件 +keywords: ["AiPmompt"] +description: AiPmompt插件 +--- + + +## 说明 + +aiPrompt 插件用于在转发请求之前动态注入预设的 Prompt 内容(如 system 角色语句、上下文信息等)。配置了 aiPrompt 插件的请求到达网关后,插件会先将指定的提示文本添加到请求体(例如在消息列表前插入一个 system 消息)。这对于统一的上下文控制或预设角色很有用,例如可以在所有请求前自动添加“你是一个 AI 翻译助手”之类的 system 提示。配合aiProxy进行使用, 主要用于提示词增强。 + +## 插件设置 + +在 ShenYu 管理界面配置插件时,需要先创建 **Selector**(选择器)再创建 **Rule**(规则)。Selector 通常用于匹配请求条件(如路径、Header 等),Rule 用于配置插件参数或转发目标。关于选择器和规则配置,请参考:[选择器和规则管理](../../user-guide/admin-usage/selector-and-rule)。 + +使用aiPrompt插件主要关注以下字段: + +- **Selector**: 选择器通常指定匹配的路径或请求特征。如可设置 `Pattern` 为 `/**` 以匹配所有请求,或指定特定路由路径。 + +- **Rule**: 在规则层面为各插件填写参数。各插件常见字段如下: + + - `prepend:`**前置提示内容**。会被插入到用户原始消息之前,作为第一个消息发给大模型。通常用于注入全局的系统指令或上下文说明,例如“你是一个翻译助手,帮我将用户输入翻译为英文。”。; + - `preRole:`**前置提示的角色**。指定 `prepend` 这条消息的 `role` 字段,可选值同 OpenAI Chat API; + - `append:` 后置提示内容; + - `postRole:` 后置提示角色; + +以下给出aiPrompt插件的配置示例截图在 (admin 界面): + +**注意**:aiPrompt插件依赖于aiProxy插件, 常的调用流程中,应先用 **AiPrompt**(如果需要注入 prompt),再用 **AiTokenLimiter** 做令牌统计/限流(如果需要token限流),最后由 **AiProxy** 将请求转发给 LLM 服务。确保在 “插件管理” 中,**AiTokenLimiter** 的 **sort** 值 **小于** **AiProxy**,并 **大于** **AiPrompt**。 + +![](/img/shenyu/plugin/ai-prompt/ai-prompt-selector-zh.png) + +![ai-proxy-rule-zh](/img/shenyu/plugin/ai-prompt/ai-prompt-rule-zh.png) + + + +## API调用说明 + +启用AiProxy插件后, 通过postman等工具请求shenyu网关, 即可通过网关代理获取LLM响应 + +```bash +curl --location --request POST 'http://localhost:9195/ai/proxy/v1/chat/completions' \ +--header 'Content-Type: application/json' \ +--data-raw '{ + "model": "gpt-4o-mini", + "messages": [ + { + "role": "user", + "content": "我于杀戮之中盛放,亦如黎明中的花朵" + } + ] +}' +``` + +示例截图 + +![ai-proxy-api](/img/shenyu/plugin/ai-proxy/ai-proxy-api.png) diff --git a/i18n/zh/docusaurus-plugin-content-docs/version-2.7.0.1/plugin-center/ai/ai-proxy.md b/i18n/zh/docusaurus-plugin-content-docs/version-2.7.0.1/plugin-center/ai/ai-proxy.md new file mode 100644 index 00000000000..45783306ced --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/version-2.7.0.1/plugin-center/ai/ai-proxy.md @@ -0,0 +1,63 @@ +--- +title: AiProxy插件 +keywords: ["AiProxy"] +description: AiProxyC插件 +--- + + +## 说明 + +aiProxy 插件用作 LLM 请求的转发代理,支持主流大模型服务。用户通过 ShenYu 将请求发送到配置了 aiProxy 的路由,aiProxy 会根据插件配置的提供商(如 OpenAI、阿里云等)、模型名称、API 密钥等参数,调用对应 LLM 的 API 并返回结果。典型应用场景包括将聊天请求转发给 OpenAI 的 ChatGPT 接口,或使用国内的 AI 服务进行智能问答。类比之前的插件使用模式, 可以理解为LLM扮演了原有应用服务的角色, 本地模型兼容OpenAI协议或其他主流协议的话, 也可以通过shenyu-aiProxy插件进行代理。 + +## 插件设置 + +在 ShenYu 管理界面配置插件时,需要先创建 **Selector**(选择器)再创建 **Rule**(规则)。Selector 通常用于匹配请求条件(如路径、Header 等),Rule 用于配置插件参数或转发目标。关于选择器和规则配置,请参考:[选择器和规则管理](../../user-guide/admin-usage/selector-and-rule)。 + +使用aiProxy插件主要关注以下字段: + +- **Selector**: 选择器通常指定匹配的路径或请求特征。如可设置 `Pattern` 为 `/**` 以匹配所有请求,或指定特定路由路径。 + +- **Rule**: 在规则层面为各插件填写参数。各插件常见字段如下: + + - `provider:`提供商名,如 OpenAI; + - `baseUrl:`LLM提供商API 调用地址; + - `model:` 模型名称; + - `apiKey:` 授权密钥; + +以下给出aiProxy插件的配置示例截图在 (admin 界面): + +Selector 匹配路径后,Rule 中配置提供商、模型、API Key、上游地址等参数。 + +![](/img/shenyu/plugin/ai-proxy/ai-proxy-selector-zh.png) + +![ai-proxy-rule-zh](/img/shenyu/plugin/ai-proxy/ai-proxy-rule-zh.png) + +注意, 在该设置下, 还需要进行contextPath插件的设置, 以移除匹配前缀头, 拼接正确调用url, 请参考:[contextPath插件设置](../http-process/contextPath-plugin.md) + + + +## API调用说明 + +启用AiProxy插件后, 通过postman等工具请求shenyu网关, 即可通过网关代理获取LLM响应 + +```bash +curl --location --request POST 'http://localhost:9195/ai/proxy/v1/chat/completions' \ +--header 'Content-Type: application/json' \ +--data-raw '{ + "model": "gpt-4o-mini", + "messages": [ + { + "role": "system", + "content": "你是翻译助手,帮我翻译输入的内容为英文。" + }, + { + "role": "user", + "content": "我于杀戮之中盛放,亦如黎明中的花朵" + } + ] +}' +``` + +示例截图 + +![ai-proxy-api](/img/shenyu/plugin/ai-proxy/ai-proxy-api.png) diff --git a/i18n/zh/docusaurus-plugin-content-docs/version-2.7.0.1/plugin-center/ai/ai-token-limiter.md b/i18n/zh/docusaurus-plugin-content-docs/version-2.7.0.1/plugin-center/ai/ai-token-limiter.md new file mode 100644 index 00000000000..bfa0ddf95f6 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/version-2.7.0.1/plugin-center/ai/ai-token-limiter.md @@ -0,0 +1,61 @@ +--- +title: AiTokenLimiter插件 +keywords: ["AiTokenLimiter"] +description: AiTokenLimiter插件 +--- + + +## 说明 + +aiTokenLimiter 插件用于统计来自 LLM 响应的 token 消耗,并基于 Redis 进行限流管理。每次响应返回后,aiTokenLimiter 会计算响应中使用的 token 数量,并按用户或业务维度累积计数。超过预设阈值时,可以拒绝或限制后续请求。需要注意的是,ShenYu 的限流实现通常基于 Redis 存储令牌桶或滑动窗口状态,aiTokenLimiter 也依赖 Redis 来记录和检查 token 用量。配合aiProxy进行使用, 主要用于token限流。 + +## 插件设置 + +在 ShenYu 管理界面配置插件时,需要先创建 **Selector**(选择器)再创建 **Rule**(规则)。Selector 通常用于匹配请求条件(如路径、Header 等),Rule 用于配置插件参数或转发目标。关于选择器和规则配置,请参考:[选择器和规则管理](../../user-guide/admin-usage/selector-and-rule)。 + +使用aiTokenLimiter插件主要关注以下字段: + +- **Selector**: 选择器通常指定匹配的路径或请求特征。如可设置 `Pattern` 为 `/**` 以匹配所有请求,或指定特定路由路径。 +- **Rule**: 在规则层面为各插件填写参数。各插件常见字段如下: + + - `timeWindowSeconds`:限流时间窗口的长度(单位:秒)。在该窗口期内,插件会统计累计的 Token 使用量,并与阈值(`tokenLimit`)比较。 + - `keyName:`用于从请求中提取“限流维度键”的字段名。结合 `aiTokenLimitType`(如 HEADER、PARAMETER、COOKIE)一起使用:; + - `tokenLimit:` 时间窗口内允许的最大 Token 数量阈值。插件会统计下游 LLM 返回的 completion tokens(即模型生成内容消耗的 Token 数),累计超过此值时,将立即以 HTTP 429 拒绝后续请求。 + +以下给出aiTokenLimiter插件的配置示例截图在 (admin 界面): + +**注意**:aiTokenLimiter插件依赖于aiProxy插件, 常的调用流程中,应先用 **AiPrompt**(如果需要注入 prompt),再用 **AiTokenLimiter** 做令牌统计/限流(如果需要token限流),最后由 **AiProxy** 将请求转发给 LLM 服务。确保在 “插件管理” 中,**AiTokenLimiter** 的 **sort** 值 **小于** **AiProxy**,并 **大于** **AiPrompt**。 + +![](/img/shenyu/plugin/ai-token-limiter/ai-token-limiter-selector-zh.png) + +![ai-proxy-rule-zh](/img/shenyu/plugin/ai-token-limiter/ai-token-limiter-rule-zh.png) + + + +## API调用说明 + +启用AiProxy和AiTokenLimiter插件后, 通过postman等工具请求shenyu网关, 即可通过网关代理获取LLM响应 + +```bash +curl --location --request POST 'http://localhost:9195/ai/proxy/v1/chat/completions' \ +--header 'Content-Type: application/json' \ +--data-raw '{ + "model": "gpt-4o-mini", + "messages": [ + { + "role": "user", + "content": "我于杀戮之中盛放,亦如黎明中的花朵" + } + ] +}' +``` + +示例截图 + +![ai-proxy-api](/img/shenyu/plugin/ai-token-limiter/ai-token-limiter-api-before.png) + +设置tokenLimit=10, 60s内再次调用, AiTokenLimiter会拦截请求, 返回429并提示已经达到token使用限制, 稍后重试。 + +示例截图 + +![ai-proxy-api](/img/shenyu/plugin/ai-token-limiter/ai-token-limiter-api-after.png) diff --git a/i18n/zh/docusaurus-plugin-content-docs/version-2.7.0.2/plugin-center/ai/ai-prompt.md b/i18n/zh/docusaurus-plugin-content-docs/version-2.7.0.2/plugin-center/ai/ai-prompt.md new file mode 100644 index 00000000000..7852b913c1c --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/version-2.7.0.2/plugin-center/ai/ai-prompt.md @@ -0,0 +1,57 @@ +--- +title: AiPmompt插件 +keywords: ["AiPmompt"] +description: AiPmompt插件 +--- + + +## 说明 + +aiPrompt 插件用于在转发请求之前动态注入预设的 Prompt 内容(如 system 角色语句、上下文信息等)。配置了 aiPrompt 插件的请求到达网关后,插件会先将指定的提示文本添加到请求体(例如在消息列表前插入一个 system 消息)。这对于统一的上下文控制或预设角色很有用,例如可以在所有请求前自动添加“你是一个 AI 翻译助手”之类的 system 提示。配合aiProxy进行使用, 主要用于提示词增强。 + +## 插件设置 + +在 ShenYu 管理界面配置插件时,需要先创建 **Selector**(选择器)再创建 **Rule**(规则)。Selector 通常用于匹配请求条件(如路径、Header 等),Rule 用于配置插件参数或转发目标。关于选择器和规则配置,请参考:[选择器和规则管理](../../user-guide/admin-usage/selector-and-rule)。 + +使用aiPrompt插件主要关注以下字段: + +- **Selector**: 选择器通常指定匹配的路径或请求特征。如可设置 `Pattern` 为 `/**` 以匹配所有请求,或指定特定路由路径。 + +- **Rule**: 在规则层面为各插件填写参数。各插件常见字段如下: + + - `prepend:`**前置提示内容**。会被插入到用户原始消息之前,作为第一个消息发给大模型。通常用于注入全局的系统指令或上下文说明,例如“你是一个翻译助手,帮我将用户输入翻译为英文。”。; + - `preRole:`**前置提示的角色**。指定 `prepend` 这条消息的 `role` 字段,可选值同 OpenAI Chat API; + - `append:` 后置提示内容; + - `postRole:` 后置提示角色; + +以下给出aiPrompt插件的配置示例截图在 (admin 界面): + +**注意**:aiPrompt插件依赖于aiProxy插件, 常的调用流程中,应先用 **AiPrompt**(如果需要注入 prompt),再用 **AiTokenLimiter** 做令牌统计/限流(如果需要token限流),最后由 **AiProxy** 将请求转发给 LLM 服务。确保在 “插件管理” 中,**AiTokenLimiter** 的 **sort** 值 **小于** **AiProxy**,并 **大于** **AiPrompt**。 + +![](/img/shenyu/plugin/ai-prompt/ai-prompt-selector-zh.png) + +![ai-proxy-rule-zh](/img/shenyu/plugin/ai-prompt/ai-prompt-rule-zh.png) + + + +## API调用说明 + +启用AiProxy插件后, 通过postman等工具请求shenyu网关, 即可通过网关代理获取LLM响应 + +```bash +curl --location --request POST 'http://localhost:9195/ai/proxy/v1/chat/completions' \ +--header 'Content-Type: application/json' \ +--data-raw '{ + "model": "gpt-4o-mini", + "messages": [ + { + "role": "user", + "content": "我于杀戮之中盛放,亦如黎明中的花朵" + } + ] +}' +``` + +示例截图 + +![ai-proxy-api](/img/shenyu/plugin/ai-proxy/ai-proxy-api.png) diff --git a/i18n/zh/docusaurus-plugin-content-docs/version-2.7.0.2/plugin-center/ai/ai-proxy.md b/i18n/zh/docusaurus-plugin-content-docs/version-2.7.0.2/plugin-center/ai/ai-proxy.md new file mode 100644 index 00000000000..45783306ced --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/version-2.7.0.2/plugin-center/ai/ai-proxy.md @@ -0,0 +1,63 @@ +--- +title: AiProxy插件 +keywords: ["AiProxy"] +description: AiProxyC插件 +--- + + +## 说明 + +aiProxy 插件用作 LLM 请求的转发代理,支持主流大模型服务。用户通过 ShenYu 将请求发送到配置了 aiProxy 的路由,aiProxy 会根据插件配置的提供商(如 OpenAI、阿里云等)、模型名称、API 密钥等参数,调用对应 LLM 的 API 并返回结果。典型应用场景包括将聊天请求转发给 OpenAI 的 ChatGPT 接口,或使用国内的 AI 服务进行智能问答。类比之前的插件使用模式, 可以理解为LLM扮演了原有应用服务的角色, 本地模型兼容OpenAI协议或其他主流协议的话, 也可以通过shenyu-aiProxy插件进行代理。 + +## 插件设置 + +在 ShenYu 管理界面配置插件时,需要先创建 **Selector**(选择器)再创建 **Rule**(规则)。Selector 通常用于匹配请求条件(如路径、Header 等),Rule 用于配置插件参数或转发目标。关于选择器和规则配置,请参考:[选择器和规则管理](../../user-guide/admin-usage/selector-and-rule)。 + +使用aiProxy插件主要关注以下字段: + +- **Selector**: 选择器通常指定匹配的路径或请求特征。如可设置 `Pattern` 为 `/**` 以匹配所有请求,或指定特定路由路径。 + +- **Rule**: 在规则层面为各插件填写参数。各插件常见字段如下: + + - `provider:`提供商名,如 OpenAI; + - `baseUrl:`LLM提供商API 调用地址; + - `model:` 模型名称; + - `apiKey:` 授权密钥; + +以下给出aiProxy插件的配置示例截图在 (admin 界面): + +Selector 匹配路径后,Rule 中配置提供商、模型、API Key、上游地址等参数。 + +![](/img/shenyu/plugin/ai-proxy/ai-proxy-selector-zh.png) + +![ai-proxy-rule-zh](/img/shenyu/plugin/ai-proxy/ai-proxy-rule-zh.png) + +注意, 在该设置下, 还需要进行contextPath插件的设置, 以移除匹配前缀头, 拼接正确调用url, 请参考:[contextPath插件设置](../http-process/contextPath-plugin.md) + + + +## API调用说明 + +启用AiProxy插件后, 通过postman等工具请求shenyu网关, 即可通过网关代理获取LLM响应 + +```bash +curl --location --request POST 'http://localhost:9195/ai/proxy/v1/chat/completions' \ +--header 'Content-Type: application/json' \ +--data-raw '{ + "model": "gpt-4o-mini", + "messages": [ + { + "role": "system", + "content": "你是翻译助手,帮我翻译输入的内容为英文。" + }, + { + "role": "user", + "content": "我于杀戮之中盛放,亦如黎明中的花朵" + } + ] +}' +``` + +示例截图 + +![ai-proxy-api](/img/shenyu/plugin/ai-proxy/ai-proxy-api.png) diff --git a/i18n/zh/docusaurus-plugin-content-docs/version-2.7.0.2/plugin-center/ai/ai-token-limiter.md b/i18n/zh/docusaurus-plugin-content-docs/version-2.7.0.2/plugin-center/ai/ai-token-limiter.md new file mode 100644 index 00000000000..bfa0ddf95f6 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/version-2.7.0.2/plugin-center/ai/ai-token-limiter.md @@ -0,0 +1,61 @@ +--- +title: AiTokenLimiter插件 +keywords: ["AiTokenLimiter"] +description: AiTokenLimiter插件 +--- + + +## 说明 + +aiTokenLimiter 插件用于统计来自 LLM 响应的 token 消耗,并基于 Redis 进行限流管理。每次响应返回后,aiTokenLimiter 会计算响应中使用的 token 数量,并按用户或业务维度累积计数。超过预设阈值时,可以拒绝或限制后续请求。需要注意的是,ShenYu 的限流实现通常基于 Redis 存储令牌桶或滑动窗口状态,aiTokenLimiter 也依赖 Redis 来记录和检查 token 用量。配合aiProxy进行使用, 主要用于token限流。 + +## 插件设置 + +在 ShenYu 管理界面配置插件时,需要先创建 **Selector**(选择器)再创建 **Rule**(规则)。Selector 通常用于匹配请求条件(如路径、Header 等),Rule 用于配置插件参数或转发目标。关于选择器和规则配置,请参考:[选择器和规则管理](../../user-guide/admin-usage/selector-and-rule)。 + +使用aiTokenLimiter插件主要关注以下字段: + +- **Selector**: 选择器通常指定匹配的路径或请求特征。如可设置 `Pattern` 为 `/**` 以匹配所有请求,或指定特定路由路径。 +- **Rule**: 在规则层面为各插件填写参数。各插件常见字段如下: + + - `timeWindowSeconds`:限流时间窗口的长度(单位:秒)。在该窗口期内,插件会统计累计的 Token 使用量,并与阈值(`tokenLimit`)比较。 + - `keyName:`用于从请求中提取“限流维度键”的字段名。结合 `aiTokenLimitType`(如 HEADER、PARAMETER、COOKIE)一起使用:; + - `tokenLimit:` 时间窗口内允许的最大 Token 数量阈值。插件会统计下游 LLM 返回的 completion tokens(即模型生成内容消耗的 Token 数),累计超过此值时,将立即以 HTTP 429 拒绝后续请求。 + +以下给出aiTokenLimiter插件的配置示例截图在 (admin 界面): + +**注意**:aiTokenLimiter插件依赖于aiProxy插件, 常的调用流程中,应先用 **AiPrompt**(如果需要注入 prompt),再用 **AiTokenLimiter** 做令牌统计/限流(如果需要token限流),最后由 **AiProxy** 将请求转发给 LLM 服务。确保在 “插件管理” 中,**AiTokenLimiter** 的 **sort** 值 **小于** **AiProxy**,并 **大于** **AiPrompt**。 + +![](/img/shenyu/plugin/ai-token-limiter/ai-token-limiter-selector-zh.png) + +![ai-proxy-rule-zh](/img/shenyu/plugin/ai-token-limiter/ai-token-limiter-rule-zh.png) + + + +## API调用说明 + +启用AiProxy和AiTokenLimiter插件后, 通过postman等工具请求shenyu网关, 即可通过网关代理获取LLM响应 + +```bash +curl --location --request POST 'http://localhost:9195/ai/proxy/v1/chat/completions' \ +--header 'Content-Type: application/json' \ +--data-raw '{ + "model": "gpt-4o-mini", + "messages": [ + { + "role": "user", + "content": "我于杀戮之中盛放,亦如黎明中的花朵" + } + ] +}' +``` + +示例截图 + +![ai-proxy-api](/img/shenyu/plugin/ai-token-limiter/ai-token-limiter-api-before.png) + +设置tokenLimit=10, 60s内再次调用, AiTokenLimiter会拦截请求, 返回429并提示已经达到token使用限制, 稍后重试。 + +示例截图 + +![ai-proxy-api](/img/shenyu/plugin/ai-token-limiter/ai-token-limiter-api-after.png) diff --git a/i18n/zh/docusaurus-plugin-content-docs/version-2.7.0.3/plugin-center/ai/ai-prompt.md b/i18n/zh/docusaurus-plugin-content-docs/version-2.7.0.3/plugin-center/ai/ai-prompt.md new file mode 100644 index 00000000000..7852b913c1c --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/version-2.7.0.3/plugin-center/ai/ai-prompt.md @@ -0,0 +1,57 @@ +--- +title: AiPmompt插件 +keywords: ["AiPmompt"] +description: AiPmompt插件 +--- + + +## 说明 + +aiPrompt 插件用于在转发请求之前动态注入预设的 Prompt 内容(如 system 角色语句、上下文信息等)。配置了 aiPrompt 插件的请求到达网关后,插件会先将指定的提示文本添加到请求体(例如在消息列表前插入一个 system 消息)。这对于统一的上下文控制或预设角色很有用,例如可以在所有请求前自动添加“你是一个 AI 翻译助手”之类的 system 提示。配合aiProxy进行使用, 主要用于提示词增强。 + +## 插件设置 + +在 ShenYu 管理界面配置插件时,需要先创建 **Selector**(选择器)再创建 **Rule**(规则)。Selector 通常用于匹配请求条件(如路径、Header 等),Rule 用于配置插件参数或转发目标。关于选择器和规则配置,请参考:[选择器和规则管理](../../user-guide/admin-usage/selector-and-rule)。 + +使用aiPrompt插件主要关注以下字段: + +- **Selector**: 选择器通常指定匹配的路径或请求特征。如可设置 `Pattern` 为 `/**` 以匹配所有请求,或指定特定路由路径。 + +- **Rule**: 在规则层面为各插件填写参数。各插件常见字段如下: + + - `prepend:`**前置提示内容**。会被插入到用户原始消息之前,作为第一个消息发给大模型。通常用于注入全局的系统指令或上下文说明,例如“你是一个翻译助手,帮我将用户输入翻译为英文。”。; + - `preRole:`**前置提示的角色**。指定 `prepend` 这条消息的 `role` 字段,可选值同 OpenAI Chat API; + - `append:` 后置提示内容; + - `postRole:` 后置提示角色; + +以下给出aiPrompt插件的配置示例截图在 (admin 界面): + +**注意**:aiPrompt插件依赖于aiProxy插件, 常的调用流程中,应先用 **AiPrompt**(如果需要注入 prompt),再用 **AiTokenLimiter** 做令牌统计/限流(如果需要token限流),最后由 **AiProxy** 将请求转发给 LLM 服务。确保在 “插件管理” 中,**AiTokenLimiter** 的 **sort** 值 **小于** **AiProxy**,并 **大于** **AiPrompt**。 + +![](/img/shenyu/plugin/ai-prompt/ai-prompt-selector-zh.png) + +![ai-proxy-rule-zh](/img/shenyu/plugin/ai-prompt/ai-prompt-rule-zh.png) + + + +## API调用说明 + +启用AiProxy插件后, 通过postman等工具请求shenyu网关, 即可通过网关代理获取LLM响应 + +```bash +curl --location --request POST 'http://localhost:9195/ai/proxy/v1/chat/completions' \ +--header 'Content-Type: application/json' \ +--data-raw '{ + "model": "gpt-4o-mini", + "messages": [ + { + "role": "user", + "content": "我于杀戮之中盛放,亦如黎明中的花朵" + } + ] +}' +``` + +示例截图 + +![ai-proxy-api](/img/shenyu/plugin/ai-proxy/ai-proxy-api.png) diff --git a/i18n/zh/docusaurus-plugin-content-docs/version-2.7.0.3/plugin-center/ai/ai-proxy.md b/i18n/zh/docusaurus-plugin-content-docs/version-2.7.0.3/plugin-center/ai/ai-proxy.md new file mode 100644 index 00000000000..45783306ced --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/version-2.7.0.3/plugin-center/ai/ai-proxy.md @@ -0,0 +1,63 @@ +--- +title: AiProxy插件 +keywords: ["AiProxy"] +description: AiProxyC插件 +--- + + +## 说明 + +aiProxy 插件用作 LLM 请求的转发代理,支持主流大模型服务。用户通过 ShenYu 将请求发送到配置了 aiProxy 的路由,aiProxy 会根据插件配置的提供商(如 OpenAI、阿里云等)、模型名称、API 密钥等参数,调用对应 LLM 的 API 并返回结果。典型应用场景包括将聊天请求转发给 OpenAI 的 ChatGPT 接口,或使用国内的 AI 服务进行智能问答。类比之前的插件使用模式, 可以理解为LLM扮演了原有应用服务的角色, 本地模型兼容OpenAI协议或其他主流协议的话, 也可以通过shenyu-aiProxy插件进行代理。 + +## 插件设置 + +在 ShenYu 管理界面配置插件时,需要先创建 **Selector**(选择器)再创建 **Rule**(规则)。Selector 通常用于匹配请求条件(如路径、Header 等),Rule 用于配置插件参数或转发目标。关于选择器和规则配置,请参考:[选择器和规则管理](../../user-guide/admin-usage/selector-and-rule)。 + +使用aiProxy插件主要关注以下字段: + +- **Selector**: 选择器通常指定匹配的路径或请求特征。如可设置 `Pattern` 为 `/**` 以匹配所有请求,或指定特定路由路径。 + +- **Rule**: 在规则层面为各插件填写参数。各插件常见字段如下: + + - `provider:`提供商名,如 OpenAI; + - `baseUrl:`LLM提供商API 调用地址; + - `model:` 模型名称; + - `apiKey:` 授权密钥; + +以下给出aiProxy插件的配置示例截图在 (admin 界面): + +Selector 匹配路径后,Rule 中配置提供商、模型、API Key、上游地址等参数。 + +![](/img/shenyu/plugin/ai-proxy/ai-proxy-selector-zh.png) + +![ai-proxy-rule-zh](/img/shenyu/plugin/ai-proxy/ai-proxy-rule-zh.png) + +注意, 在该设置下, 还需要进行contextPath插件的设置, 以移除匹配前缀头, 拼接正确调用url, 请参考:[contextPath插件设置](../http-process/contextPath-plugin.md) + + + +## API调用说明 + +启用AiProxy插件后, 通过postman等工具请求shenyu网关, 即可通过网关代理获取LLM响应 + +```bash +curl --location --request POST 'http://localhost:9195/ai/proxy/v1/chat/completions' \ +--header 'Content-Type: application/json' \ +--data-raw '{ + "model": "gpt-4o-mini", + "messages": [ + { + "role": "system", + "content": "你是翻译助手,帮我翻译输入的内容为英文。" + }, + { + "role": "user", + "content": "我于杀戮之中盛放,亦如黎明中的花朵" + } + ] +}' +``` + +示例截图 + +![ai-proxy-api](/img/shenyu/plugin/ai-proxy/ai-proxy-api.png) diff --git a/i18n/zh/docusaurus-plugin-content-docs/version-2.7.0.3/plugin-center/ai/ai-token-limiter.md b/i18n/zh/docusaurus-plugin-content-docs/version-2.7.0.3/plugin-center/ai/ai-token-limiter.md new file mode 100644 index 00000000000..bfa0ddf95f6 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/version-2.7.0.3/plugin-center/ai/ai-token-limiter.md @@ -0,0 +1,61 @@ +--- +title: AiTokenLimiter插件 +keywords: ["AiTokenLimiter"] +description: AiTokenLimiter插件 +--- + + +## 说明 + +aiTokenLimiter 插件用于统计来自 LLM 响应的 token 消耗,并基于 Redis 进行限流管理。每次响应返回后,aiTokenLimiter 会计算响应中使用的 token 数量,并按用户或业务维度累积计数。超过预设阈值时,可以拒绝或限制后续请求。需要注意的是,ShenYu 的限流实现通常基于 Redis 存储令牌桶或滑动窗口状态,aiTokenLimiter 也依赖 Redis 来记录和检查 token 用量。配合aiProxy进行使用, 主要用于token限流。 + +## 插件设置 + +在 ShenYu 管理界面配置插件时,需要先创建 **Selector**(选择器)再创建 **Rule**(规则)。Selector 通常用于匹配请求条件(如路径、Header 等),Rule 用于配置插件参数或转发目标。关于选择器和规则配置,请参考:[选择器和规则管理](../../user-guide/admin-usage/selector-and-rule)。 + +使用aiTokenLimiter插件主要关注以下字段: + +- **Selector**: 选择器通常指定匹配的路径或请求特征。如可设置 `Pattern` 为 `/**` 以匹配所有请求,或指定特定路由路径。 +- **Rule**: 在规则层面为各插件填写参数。各插件常见字段如下: + + - `timeWindowSeconds`:限流时间窗口的长度(单位:秒)。在该窗口期内,插件会统计累计的 Token 使用量,并与阈值(`tokenLimit`)比较。 + - `keyName:`用于从请求中提取“限流维度键”的字段名。结合 `aiTokenLimitType`(如 HEADER、PARAMETER、COOKIE)一起使用:; + - `tokenLimit:` 时间窗口内允许的最大 Token 数量阈值。插件会统计下游 LLM 返回的 completion tokens(即模型生成内容消耗的 Token 数),累计超过此值时,将立即以 HTTP 429 拒绝后续请求。 + +以下给出aiTokenLimiter插件的配置示例截图在 (admin 界面): + +**注意**:aiTokenLimiter插件依赖于aiProxy插件, 常的调用流程中,应先用 **AiPrompt**(如果需要注入 prompt),再用 **AiTokenLimiter** 做令牌统计/限流(如果需要token限流),最后由 **AiProxy** 将请求转发给 LLM 服务。确保在 “插件管理” 中,**AiTokenLimiter** 的 **sort** 值 **小于** **AiProxy**,并 **大于** **AiPrompt**。 + +![](/img/shenyu/plugin/ai-token-limiter/ai-token-limiter-selector-zh.png) + +![ai-proxy-rule-zh](/img/shenyu/plugin/ai-token-limiter/ai-token-limiter-rule-zh.png) + + + +## API调用说明 + +启用AiProxy和AiTokenLimiter插件后, 通过postman等工具请求shenyu网关, 即可通过网关代理获取LLM响应 + +```bash +curl --location --request POST 'http://localhost:9195/ai/proxy/v1/chat/completions' \ +--header 'Content-Type: application/json' \ +--data-raw '{ + "model": "gpt-4o-mini", + "messages": [ + { + "role": "user", + "content": "我于杀戮之中盛放,亦如黎明中的花朵" + } + ] +}' +``` + +示例截图 + +![ai-proxy-api](/img/shenyu/plugin/ai-token-limiter/ai-token-limiter-api-before.png) + +设置tokenLimit=10, 60s内再次调用, AiTokenLimiter会拦截请求, 返回429并提示已经达到token使用限制, 稍后重试。 + +示例截图 + +![ai-proxy-api](/img/shenyu/plugin/ai-token-limiter/ai-token-limiter-api-after.png) From 3796b950eb4d9b922a494d3398c66d83122aa3e3 Mon Sep 17 00:00:00 2001 From: wy471x Date: Tue, 26 May 2026 22:38:05 +0800 Subject: [PATCH 2/3] fix(docs): correct zh i18n AI plugin filenames and image paths for versions 2.7.0.1-2.7.0.3 --- .../plugin-center/ai/ai-prompt-plugin.md | 57 ----------------- .../plugin-center/ai/ai-proxy-plugin.md | 63 ------------------- .../ai/ai-tokenLimiter-plugin.md | 61 ------------------ 3 files changed, 181 deletions(-) delete mode 100644 i18n/zh/docusaurus-plugin-content-docs/version-2.7.0.3/plugin-center/ai/ai-prompt-plugin.md delete mode 100644 i18n/zh/docusaurus-plugin-content-docs/version-2.7.0.3/plugin-center/ai/ai-proxy-plugin.md delete mode 100644 i18n/zh/docusaurus-plugin-content-docs/version-2.7.0.3/plugin-center/ai/ai-tokenLimiter-plugin.md diff --git a/i18n/zh/docusaurus-plugin-content-docs/version-2.7.0.3/plugin-center/ai/ai-prompt-plugin.md b/i18n/zh/docusaurus-plugin-content-docs/version-2.7.0.3/plugin-center/ai/ai-prompt-plugin.md deleted file mode 100644 index 5e23317ec71..00000000000 --- a/i18n/zh/docusaurus-plugin-content-docs/version-2.7.0.3/plugin-center/ai/ai-prompt-plugin.md +++ /dev/null @@ -1,57 +0,0 @@ ---- -title: AiPmompt插件 -keywords: ["AiPmompt"] -description: AiPmompt插件 ---- - - -## 说明 - -aiPrompt 插件用于在转发请求之前动态注入预设的 Prompt 内容(如 system 角色语句、上下文信息等)。配置了 aiPrompt 插件的请求到达网关后,插件会先将指定的提示文本添加到请求体(例如在消息列表前插入一个 system 消息)。这对于统一的上下文控制或预设角色很有用,例如可以在所有请求前自动添加“你是一个 AI 翻译助手”之类的 system 提示。配合aiProxy进行使用, 主要用于提示词增强。 - -## 插件设置 - -在 ShenYu 管理界面配置插件时,需要先创建 **Selector**(选择器)再创建 **Rule**(规则)。Selector 通常用于匹配请求条件(如路径、Header 等),Rule 用于配置插件参数或转发目标。关于选择器和规则配置,请参考:[选择器和规则管理](../../user-guide/admin-usage/selector-and-rule)。 - -使用aiPrompt插件主要关注以下字段: - -- **Selector**: 选择器通常指定匹配的路径或请求特征。如可设置 `Pattern` 为 `/**` 以匹配所有请求,或指定特定路由路径。 - -- **Rule**: 在规则层面为各插件填写参数。各插件常见字段如下: - - - `prepend:`**前置提示内容**。会被插入到用户原始消息之前,作为第一个消息发给大模型。通常用于注入全局的系统指令或上下文说明,例如“你是一个翻译助手,帮我将用户输入翻译为英文。”。; - - `preRole:`**前置提示的角色**。指定 `prepend` 这条消息的 `role` 字段,可选值同 OpenAI Chat API; - - `append:` 后置提示内容; - - `postRole:` 后置提示角色; - -以下给出aiPrompt插件的配置示例截图在 (admin 界面): - -**注意**:aiPrompt插件依赖于aiProxy插件, 常的调用流程中,应先用 **AiPrompt**(如果需要注入 prompt),再用 **AiTokenLimiter** 做令牌统计/限流(如果需要token限流),最后由 **AiProxy** 将请求转发给 LLM 服务。确保在 “插件管理” 中,**AiTokenLimiter** 的 **sort** 值 **小于** **AiProxy**,并 **大于** **AiPrompt**。 - -![](/static/img/shenyu/plugin/ai-prompt/ai-prompt-selector-zh.png) - -![ai-proxy-rule-zh](/static/img/shenyu/plugin/ai-prompt/ai-prompt-rule-zh.png) - - - -## API调用说明 - -启用AiProxy插件后, 通过postman等工具请求shenyu网关, 即可通过网关代理获取LLM响应 - -```bash -curl --location --request POST 'http://localhost:9195/ai/proxy/v1/chat/completions' \ ---header 'Content-Type: application/json' \ ---data-raw '{ - "model": "gpt-4o-mini", - "messages": [ - { - "role": "user", - "content": "我于杀戮之中盛放,亦如黎明中的花朵" - } - ] -}' -``` - -示例截图 - -![ai-proxy-api](/static/img/shenyu/plugin/ai-proxy/ai-proxy-api.png) diff --git a/i18n/zh/docusaurus-plugin-content-docs/version-2.7.0.3/plugin-center/ai/ai-proxy-plugin.md b/i18n/zh/docusaurus-plugin-content-docs/version-2.7.0.3/plugin-center/ai/ai-proxy-plugin.md deleted file mode 100644 index 125dfdf1337..00000000000 --- a/i18n/zh/docusaurus-plugin-content-docs/version-2.7.0.3/plugin-center/ai/ai-proxy-plugin.md +++ /dev/null @@ -1,63 +0,0 @@ ---- -title: AiProxy插件 -keywords: ["AiProxy"] -description: AiProxyC插件 ---- - - -## 说明 - -aiProxy 插件用作 LLM 请求的转发代理,支持主流大模型服务。用户通过 ShenYu 将请求发送到配置了 aiProxy 的路由,aiProxy 会根据插件配置的提供商(如 OpenAI、阿里云等)、模型名称、API 密钥等参数,调用对应 LLM 的 API 并返回结果。典型应用场景包括将聊天请求转发给 OpenAI 的 ChatGPT 接口,或使用国内的 AI 服务进行智能问答。类比之前的插件使用模式, 可以理解为LLM扮演了原有应用服务的角色, 本地模型兼容OpenAI协议或其他主流协议的话, 也可以通过shenyu-aiProxy插件进行代理。 - -## 插件设置 - -在 ShenYu 管理界面配置插件时,需要先创建 **Selector**(选择器)再创建 **Rule**(规则)。Selector 通常用于匹配请求条件(如路径、Header 等),Rule 用于配置插件参数或转发目标。关于选择器和规则配置,请参考:[选择器和规则管理](../../user-guide/admin-usage/selector-and-rule)。 - -使用aiProxy插件主要关注以下字段: - -- **Selector**: 选择器通常指定匹配的路径或请求特征。如可设置 `Pattern` 为 `/**` 以匹配所有请求,或指定特定路由路径。 - -- **Rule**: 在规则层面为各插件填写参数。各插件常见字段如下: - - - `provider:`提供商名,如 OpenAI; - - `baseUrl:`LLM提供商API 调用地址; - - `model:` 模型名称; - - `apiKey:` 授权密钥; - -以下给出aiProxy插件的配置示例截图在 (admin 界面): - -Selector 匹配路径后,Rule 中配置提供商、模型、API Key、上游地址等参数。 - -![](../../../../../../static/img/shenyu/plugin/ai-proxy/ai-proxy-selector-zh.png) - -![ai-proxy-rule-zh](../../../../../../static/img/shenyu/plugin/ai-proxy/ai-proxy-rule-zh.png) - -注意, 在该设置下, 还需要进行contextPath插件的设置, 以移除匹配前缀头, 拼接正确调用url, 请参考:[contextPath插件设置](../http-process/contextPath-plugin.md) - - - -## API调用说明 - -启用AiProxy插件后, 通过postman等工具请求shenyu网关, 即可通过网关代理获取LLM响应 - -```bash -curl --location --request POST 'http://localhost:9195/ai/proxy/v1/chat/completions' \ ---header 'Content-Type: application/json' \ ---data-raw '{ - "model": "gpt-4o-mini", - "messages": [ - { - "role": "system", - "content": "你是翻译助手,帮我翻译输入的内容为英文。" - }, - { - "role": "user", - "content": "我于杀戮之中盛放,亦如黎明中的花朵" - } - ] -}' -``` - -示例截图 - -![ai-proxy-api](../../../../../../static/img/shenyu/plugin/ai-proxy/ai-proxy-api.png) diff --git a/i18n/zh/docusaurus-plugin-content-docs/version-2.7.0.3/plugin-center/ai/ai-tokenLimiter-plugin.md b/i18n/zh/docusaurus-plugin-content-docs/version-2.7.0.3/plugin-center/ai/ai-tokenLimiter-plugin.md deleted file mode 100644 index bfa0ddf95f6..00000000000 --- a/i18n/zh/docusaurus-plugin-content-docs/version-2.7.0.3/plugin-center/ai/ai-tokenLimiter-plugin.md +++ /dev/null @@ -1,61 +0,0 @@ ---- -title: AiTokenLimiter插件 -keywords: ["AiTokenLimiter"] -description: AiTokenLimiter插件 ---- - - -## 说明 - -aiTokenLimiter 插件用于统计来自 LLM 响应的 token 消耗,并基于 Redis 进行限流管理。每次响应返回后,aiTokenLimiter 会计算响应中使用的 token 数量,并按用户或业务维度累积计数。超过预设阈值时,可以拒绝或限制后续请求。需要注意的是,ShenYu 的限流实现通常基于 Redis 存储令牌桶或滑动窗口状态,aiTokenLimiter 也依赖 Redis 来记录和检查 token 用量。配合aiProxy进行使用, 主要用于token限流。 - -## 插件设置 - -在 ShenYu 管理界面配置插件时,需要先创建 **Selector**(选择器)再创建 **Rule**(规则)。Selector 通常用于匹配请求条件(如路径、Header 等),Rule 用于配置插件参数或转发目标。关于选择器和规则配置,请参考:[选择器和规则管理](../../user-guide/admin-usage/selector-and-rule)。 - -使用aiTokenLimiter插件主要关注以下字段: - -- **Selector**: 选择器通常指定匹配的路径或请求特征。如可设置 `Pattern` 为 `/**` 以匹配所有请求,或指定特定路由路径。 -- **Rule**: 在规则层面为各插件填写参数。各插件常见字段如下: - - - `timeWindowSeconds`:限流时间窗口的长度(单位:秒)。在该窗口期内,插件会统计累计的 Token 使用量,并与阈值(`tokenLimit`)比较。 - - `keyName:`用于从请求中提取“限流维度键”的字段名。结合 `aiTokenLimitType`(如 HEADER、PARAMETER、COOKIE)一起使用:; - - `tokenLimit:` 时间窗口内允许的最大 Token 数量阈值。插件会统计下游 LLM 返回的 completion tokens(即模型生成内容消耗的 Token 数),累计超过此值时,将立即以 HTTP 429 拒绝后续请求。 - -以下给出aiTokenLimiter插件的配置示例截图在 (admin 界面): - -**注意**:aiTokenLimiter插件依赖于aiProxy插件, 常的调用流程中,应先用 **AiPrompt**(如果需要注入 prompt),再用 **AiTokenLimiter** 做令牌统计/限流(如果需要token限流),最后由 **AiProxy** 将请求转发给 LLM 服务。确保在 “插件管理” 中,**AiTokenLimiter** 的 **sort** 值 **小于** **AiProxy**,并 **大于** **AiPrompt**。 - -![](/img/shenyu/plugin/ai-token-limiter/ai-token-limiter-selector-zh.png) - -![ai-proxy-rule-zh](/img/shenyu/plugin/ai-token-limiter/ai-token-limiter-rule-zh.png) - - - -## API调用说明 - -启用AiProxy和AiTokenLimiter插件后, 通过postman等工具请求shenyu网关, 即可通过网关代理获取LLM响应 - -```bash -curl --location --request POST 'http://localhost:9195/ai/proxy/v1/chat/completions' \ ---header 'Content-Type: application/json' \ ---data-raw '{ - "model": "gpt-4o-mini", - "messages": [ - { - "role": "user", - "content": "我于杀戮之中盛放,亦如黎明中的花朵" - } - ] -}' -``` - -示例截图 - -![ai-proxy-api](/img/shenyu/plugin/ai-token-limiter/ai-token-limiter-api-before.png) - -设置tokenLimit=10, 60s内再次调用, AiTokenLimiter会拦截请求, 返回429并提示已经达到token使用限制, 稍后重试。 - -示例截图 - -![ai-proxy-api](/img/shenyu/plugin/ai-token-limiter/ai-token-limiter-api-after.png) From 9548bcbaa6069b6f93bb11862083426c5378df77 Mon Sep 17 00:00:00 2001 From: wy471x Date: Tue, 26 May 2026 22:46:18 +0800 Subject: [PATCH 3/3] fix(docs): correct zh i18n AI plugin filenames and image paths for versions 2.7.0.1-2.7.0.3 --- .../plugin-center/ai/ai-prompt-plugin.md | 57 ----------------- .../plugin-center/ai/ai-proxy-plugin.md | 63 ------------------- .../ai/ai-tokenLimiter-plugin.md | 61 ------------------ .../plugin-center/ai/ai-prompt-plugin.md | 57 ----------------- .../plugin-center/ai/ai-proxy-plugin.md | 63 ------------------- .../ai/ai-tokenLimiter-plugin.md | 61 ------------------ 6 files changed, 362 deletions(-) delete mode 100644 i18n/zh/docusaurus-plugin-content-docs/version-2.7.0.1/plugin-center/ai/ai-prompt-plugin.md delete mode 100644 i18n/zh/docusaurus-plugin-content-docs/version-2.7.0.1/plugin-center/ai/ai-proxy-plugin.md delete mode 100644 i18n/zh/docusaurus-plugin-content-docs/version-2.7.0.1/plugin-center/ai/ai-tokenLimiter-plugin.md delete mode 100644 i18n/zh/docusaurus-plugin-content-docs/version-2.7.0.2/plugin-center/ai/ai-prompt-plugin.md delete mode 100644 i18n/zh/docusaurus-plugin-content-docs/version-2.7.0.2/plugin-center/ai/ai-proxy-plugin.md delete mode 100644 i18n/zh/docusaurus-plugin-content-docs/version-2.7.0.2/plugin-center/ai/ai-tokenLimiter-plugin.md diff --git a/i18n/zh/docusaurus-plugin-content-docs/version-2.7.0.1/plugin-center/ai/ai-prompt-plugin.md b/i18n/zh/docusaurus-plugin-content-docs/version-2.7.0.1/plugin-center/ai/ai-prompt-plugin.md deleted file mode 100644 index 5e23317ec71..00000000000 --- a/i18n/zh/docusaurus-plugin-content-docs/version-2.7.0.1/plugin-center/ai/ai-prompt-plugin.md +++ /dev/null @@ -1,57 +0,0 @@ ---- -title: AiPmompt插件 -keywords: ["AiPmompt"] -description: AiPmompt插件 ---- - - -## 说明 - -aiPrompt 插件用于在转发请求之前动态注入预设的 Prompt 内容(如 system 角色语句、上下文信息等)。配置了 aiPrompt 插件的请求到达网关后,插件会先将指定的提示文本添加到请求体(例如在消息列表前插入一个 system 消息)。这对于统一的上下文控制或预设角色很有用,例如可以在所有请求前自动添加“你是一个 AI 翻译助手”之类的 system 提示。配合aiProxy进行使用, 主要用于提示词增强。 - -## 插件设置 - -在 ShenYu 管理界面配置插件时,需要先创建 **Selector**(选择器)再创建 **Rule**(规则)。Selector 通常用于匹配请求条件(如路径、Header 等),Rule 用于配置插件参数或转发目标。关于选择器和规则配置,请参考:[选择器和规则管理](../../user-guide/admin-usage/selector-and-rule)。 - -使用aiPrompt插件主要关注以下字段: - -- **Selector**: 选择器通常指定匹配的路径或请求特征。如可设置 `Pattern` 为 `/**` 以匹配所有请求,或指定特定路由路径。 - -- **Rule**: 在规则层面为各插件填写参数。各插件常见字段如下: - - - `prepend:`**前置提示内容**。会被插入到用户原始消息之前,作为第一个消息发给大模型。通常用于注入全局的系统指令或上下文说明,例如“你是一个翻译助手,帮我将用户输入翻译为英文。”。; - - `preRole:`**前置提示的角色**。指定 `prepend` 这条消息的 `role` 字段,可选值同 OpenAI Chat API; - - `append:` 后置提示内容; - - `postRole:` 后置提示角色; - -以下给出aiPrompt插件的配置示例截图在 (admin 界面): - -**注意**:aiPrompt插件依赖于aiProxy插件, 常的调用流程中,应先用 **AiPrompt**(如果需要注入 prompt),再用 **AiTokenLimiter** 做令牌统计/限流(如果需要token限流),最后由 **AiProxy** 将请求转发给 LLM 服务。确保在 “插件管理” 中,**AiTokenLimiter** 的 **sort** 值 **小于** **AiProxy**,并 **大于** **AiPrompt**。 - -![](/static/img/shenyu/plugin/ai-prompt/ai-prompt-selector-zh.png) - -![ai-proxy-rule-zh](/static/img/shenyu/plugin/ai-prompt/ai-prompt-rule-zh.png) - - - -## API调用说明 - -启用AiProxy插件后, 通过postman等工具请求shenyu网关, 即可通过网关代理获取LLM响应 - -```bash -curl --location --request POST 'http://localhost:9195/ai/proxy/v1/chat/completions' \ ---header 'Content-Type: application/json' \ ---data-raw '{ - "model": "gpt-4o-mini", - "messages": [ - { - "role": "user", - "content": "我于杀戮之中盛放,亦如黎明中的花朵" - } - ] -}' -``` - -示例截图 - -![ai-proxy-api](/static/img/shenyu/plugin/ai-proxy/ai-proxy-api.png) diff --git a/i18n/zh/docusaurus-plugin-content-docs/version-2.7.0.1/plugin-center/ai/ai-proxy-plugin.md b/i18n/zh/docusaurus-plugin-content-docs/version-2.7.0.1/plugin-center/ai/ai-proxy-plugin.md deleted file mode 100644 index 125dfdf1337..00000000000 --- a/i18n/zh/docusaurus-plugin-content-docs/version-2.7.0.1/plugin-center/ai/ai-proxy-plugin.md +++ /dev/null @@ -1,63 +0,0 @@ ---- -title: AiProxy插件 -keywords: ["AiProxy"] -description: AiProxyC插件 ---- - - -## 说明 - -aiProxy 插件用作 LLM 请求的转发代理,支持主流大模型服务。用户通过 ShenYu 将请求发送到配置了 aiProxy 的路由,aiProxy 会根据插件配置的提供商(如 OpenAI、阿里云等)、模型名称、API 密钥等参数,调用对应 LLM 的 API 并返回结果。典型应用场景包括将聊天请求转发给 OpenAI 的 ChatGPT 接口,或使用国内的 AI 服务进行智能问答。类比之前的插件使用模式, 可以理解为LLM扮演了原有应用服务的角色, 本地模型兼容OpenAI协议或其他主流协议的话, 也可以通过shenyu-aiProxy插件进行代理。 - -## 插件设置 - -在 ShenYu 管理界面配置插件时,需要先创建 **Selector**(选择器)再创建 **Rule**(规则)。Selector 通常用于匹配请求条件(如路径、Header 等),Rule 用于配置插件参数或转发目标。关于选择器和规则配置,请参考:[选择器和规则管理](../../user-guide/admin-usage/selector-and-rule)。 - -使用aiProxy插件主要关注以下字段: - -- **Selector**: 选择器通常指定匹配的路径或请求特征。如可设置 `Pattern` 为 `/**` 以匹配所有请求,或指定特定路由路径。 - -- **Rule**: 在规则层面为各插件填写参数。各插件常见字段如下: - - - `provider:`提供商名,如 OpenAI; - - `baseUrl:`LLM提供商API 调用地址; - - `model:` 模型名称; - - `apiKey:` 授权密钥; - -以下给出aiProxy插件的配置示例截图在 (admin 界面): - -Selector 匹配路径后,Rule 中配置提供商、模型、API Key、上游地址等参数。 - -![](../../../../../../static/img/shenyu/plugin/ai-proxy/ai-proxy-selector-zh.png) - -![ai-proxy-rule-zh](../../../../../../static/img/shenyu/plugin/ai-proxy/ai-proxy-rule-zh.png) - -注意, 在该设置下, 还需要进行contextPath插件的设置, 以移除匹配前缀头, 拼接正确调用url, 请参考:[contextPath插件设置](../http-process/contextPath-plugin.md) - - - -## API调用说明 - -启用AiProxy插件后, 通过postman等工具请求shenyu网关, 即可通过网关代理获取LLM响应 - -```bash -curl --location --request POST 'http://localhost:9195/ai/proxy/v1/chat/completions' \ ---header 'Content-Type: application/json' \ ---data-raw '{ - "model": "gpt-4o-mini", - "messages": [ - { - "role": "system", - "content": "你是翻译助手,帮我翻译输入的内容为英文。" - }, - { - "role": "user", - "content": "我于杀戮之中盛放,亦如黎明中的花朵" - } - ] -}' -``` - -示例截图 - -![ai-proxy-api](../../../../../../static/img/shenyu/plugin/ai-proxy/ai-proxy-api.png) diff --git a/i18n/zh/docusaurus-plugin-content-docs/version-2.7.0.1/plugin-center/ai/ai-tokenLimiter-plugin.md b/i18n/zh/docusaurus-plugin-content-docs/version-2.7.0.1/plugin-center/ai/ai-tokenLimiter-plugin.md deleted file mode 100644 index bfa0ddf95f6..00000000000 --- a/i18n/zh/docusaurus-plugin-content-docs/version-2.7.0.1/plugin-center/ai/ai-tokenLimiter-plugin.md +++ /dev/null @@ -1,61 +0,0 @@ ---- -title: AiTokenLimiter插件 -keywords: ["AiTokenLimiter"] -description: AiTokenLimiter插件 ---- - - -## 说明 - -aiTokenLimiter 插件用于统计来自 LLM 响应的 token 消耗,并基于 Redis 进行限流管理。每次响应返回后,aiTokenLimiter 会计算响应中使用的 token 数量,并按用户或业务维度累积计数。超过预设阈值时,可以拒绝或限制后续请求。需要注意的是,ShenYu 的限流实现通常基于 Redis 存储令牌桶或滑动窗口状态,aiTokenLimiter 也依赖 Redis 来记录和检查 token 用量。配合aiProxy进行使用, 主要用于token限流。 - -## 插件设置 - -在 ShenYu 管理界面配置插件时,需要先创建 **Selector**(选择器)再创建 **Rule**(规则)。Selector 通常用于匹配请求条件(如路径、Header 等),Rule 用于配置插件参数或转发目标。关于选择器和规则配置,请参考:[选择器和规则管理](../../user-guide/admin-usage/selector-and-rule)。 - -使用aiTokenLimiter插件主要关注以下字段: - -- **Selector**: 选择器通常指定匹配的路径或请求特征。如可设置 `Pattern` 为 `/**` 以匹配所有请求,或指定特定路由路径。 -- **Rule**: 在规则层面为各插件填写参数。各插件常见字段如下: - - - `timeWindowSeconds`:限流时间窗口的长度(单位:秒)。在该窗口期内,插件会统计累计的 Token 使用量,并与阈值(`tokenLimit`)比较。 - - `keyName:`用于从请求中提取“限流维度键”的字段名。结合 `aiTokenLimitType`(如 HEADER、PARAMETER、COOKIE)一起使用:; - - `tokenLimit:` 时间窗口内允许的最大 Token 数量阈值。插件会统计下游 LLM 返回的 completion tokens(即模型生成内容消耗的 Token 数),累计超过此值时,将立即以 HTTP 429 拒绝后续请求。 - -以下给出aiTokenLimiter插件的配置示例截图在 (admin 界面): - -**注意**:aiTokenLimiter插件依赖于aiProxy插件, 常的调用流程中,应先用 **AiPrompt**(如果需要注入 prompt),再用 **AiTokenLimiter** 做令牌统计/限流(如果需要token限流),最后由 **AiProxy** 将请求转发给 LLM 服务。确保在 “插件管理” 中,**AiTokenLimiter** 的 **sort** 值 **小于** **AiProxy**,并 **大于** **AiPrompt**。 - -![](/img/shenyu/plugin/ai-token-limiter/ai-token-limiter-selector-zh.png) - -![ai-proxy-rule-zh](/img/shenyu/plugin/ai-token-limiter/ai-token-limiter-rule-zh.png) - - - -## API调用说明 - -启用AiProxy和AiTokenLimiter插件后, 通过postman等工具请求shenyu网关, 即可通过网关代理获取LLM响应 - -```bash -curl --location --request POST 'http://localhost:9195/ai/proxy/v1/chat/completions' \ ---header 'Content-Type: application/json' \ ---data-raw '{ - "model": "gpt-4o-mini", - "messages": [ - { - "role": "user", - "content": "我于杀戮之中盛放,亦如黎明中的花朵" - } - ] -}' -``` - -示例截图 - -![ai-proxy-api](/img/shenyu/plugin/ai-token-limiter/ai-token-limiter-api-before.png) - -设置tokenLimit=10, 60s内再次调用, AiTokenLimiter会拦截请求, 返回429并提示已经达到token使用限制, 稍后重试。 - -示例截图 - -![ai-proxy-api](/img/shenyu/plugin/ai-token-limiter/ai-token-limiter-api-after.png) diff --git a/i18n/zh/docusaurus-plugin-content-docs/version-2.7.0.2/plugin-center/ai/ai-prompt-plugin.md b/i18n/zh/docusaurus-plugin-content-docs/version-2.7.0.2/plugin-center/ai/ai-prompt-plugin.md deleted file mode 100644 index 5e23317ec71..00000000000 --- a/i18n/zh/docusaurus-plugin-content-docs/version-2.7.0.2/plugin-center/ai/ai-prompt-plugin.md +++ /dev/null @@ -1,57 +0,0 @@ ---- -title: AiPmompt插件 -keywords: ["AiPmompt"] -description: AiPmompt插件 ---- - - -## 说明 - -aiPrompt 插件用于在转发请求之前动态注入预设的 Prompt 内容(如 system 角色语句、上下文信息等)。配置了 aiPrompt 插件的请求到达网关后,插件会先将指定的提示文本添加到请求体(例如在消息列表前插入一个 system 消息)。这对于统一的上下文控制或预设角色很有用,例如可以在所有请求前自动添加“你是一个 AI 翻译助手”之类的 system 提示。配合aiProxy进行使用, 主要用于提示词增强。 - -## 插件设置 - -在 ShenYu 管理界面配置插件时,需要先创建 **Selector**(选择器)再创建 **Rule**(规则)。Selector 通常用于匹配请求条件(如路径、Header 等),Rule 用于配置插件参数或转发目标。关于选择器和规则配置,请参考:[选择器和规则管理](../../user-guide/admin-usage/selector-and-rule)。 - -使用aiPrompt插件主要关注以下字段: - -- **Selector**: 选择器通常指定匹配的路径或请求特征。如可设置 `Pattern` 为 `/**` 以匹配所有请求,或指定特定路由路径。 - -- **Rule**: 在规则层面为各插件填写参数。各插件常见字段如下: - - - `prepend:`**前置提示内容**。会被插入到用户原始消息之前,作为第一个消息发给大模型。通常用于注入全局的系统指令或上下文说明,例如“你是一个翻译助手,帮我将用户输入翻译为英文。”。; - - `preRole:`**前置提示的角色**。指定 `prepend` 这条消息的 `role` 字段,可选值同 OpenAI Chat API; - - `append:` 后置提示内容; - - `postRole:` 后置提示角色; - -以下给出aiPrompt插件的配置示例截图在 (admin 界面): - -**注意**:aiPrompt插件依赖于aiProxy插件, 常的调用流程中,应先用 **AiPrompt**(如果需要注入 prompt),再用 **AiTokenLimiter** 做令牌统计/限流(如果需要token限流),最后由 **AiProxy** 将请求转发给 LLM 服务。确保在 “插件管理” 中,**AiTokenLimiter** 的 **sort** 值 **小于** **AiProxy**,并 **大于** **AiPrompt**。 - -![](/static/img/shenyu/plugin/ai-prompt/ai-prompt-selector-zh.png) - -![ai-proxy-rule-zh](/static/img/shenyu/plugin/ai-prompt/ai-prompt-rule-zh.png) - - - -## API调用说明 - -启用AiProxy插件后, 通过postman等工具请求shenyu网关, 即可通过网关代理获取LLM响应 - -```bash -curl --location --request POST 'http://localhost:9195/ai/proxy/v1/chat/completions' \ ---header 'Content-Type: application/json' \ ---data-raw '{ - "model": "gpt-4o-mini", - "messages": [ - { - "role": "user", - "content": "我于杀戮之中盛放,亦如黎明中的花朵" - } - ] -}' -``` - -示例截图 - -![ai-proxy-api](/static/img/shenyu/plugin/ai-proxy/ai-proxy-api.png) diff --git a/i18n/zh/docusaurus-plugin-content-docs/version-2.7.0.2/plugin-center/ai/ai-proxy-plugin.md b/i18n/zh/docusaurus-plugin-content-docs/version-2.7.0.2/plugin-center/ai/ai-proxy-plugin.md deleted file mode 100644 index 125dfdf1337..00000000000 --- a/i18n/zh/docusaurus-plugin-content-docs/version-2.7.0.2/plugin-center/ai/ai-proxy-plugin.md +++ /dev/null @@ -1,63 +0,0 @@ ---- -title: AiProxy插件 -keywords: ["AiProxy"] -description: AiProxyC插件 ---- - - -## 说明 - -aiProxy 插件用作 LLM 请求的转发代理,支持主流大模型服务。用户通过 ShenYu 将请求发送到配置了 aiProxy 的路由,aiProxy 会根据插件配置的提供商(如 OpenAI、阿里云等)、模型名称、API 密钥等参数,调用对应 LLM 的 API 并返回结果。典型应用场景包括将聊天请求转发给 OpenAI 的 ChatGPT 接口,或使用国内的 AI 服务进行智能问答。类比之前的插件使用模式, 可以理解为LLM扮演了原有应用服务的角色, 本地模型兼容OpenAI协议或其他主流协议的话, 也可以通过shenyu-aiProxy插件进行代理。 - -## 插件设置 - -在 ShenYu 管理界面配置插件时,需要先创建 **Selector**(选择器)再创建 **Rule**(规则)。Selector 通常用于匹配请求条件(如路径、Header 等),Rule 用于配置插件参数或转发目标。关于选择器和规则配置,请参考:[选择器和规则管理](../../user-guide/admin-usage/selector-and-rule)。 - -使用aiProxy插件主要关注以下字段: - -- **Selector**: 选择器通常指定匹配的路径或请求特征。如可设置 `Pattern` 为 `/**` 以匹配所有请求,或指定特定路由路径。 - -- **Rule**: 在规则层面为各插件填写参数。各插件常见字段如下: - - - `provider:`提供商名,如 OpenAI; - - `baseUrl:`LLM提供商API 调用地址; - - `model:` 模型名称; - - `apiKey:` 授权密钥; - -以下给出aiProxy插件的配置示例截图在 (admin 界面): - -Selector 匹配路径后,Rule 中配置提供商、模型、API Key、上游地址等参数。 - -![](../../../../../../static/img/shenyu/plugin/ai-proxy/ai-proxy-selector-zh.png) - -![ai-proxy-rule-zh](../../../../../../static/img/shenyu/plugin/ai-proxy/ai-proxy-rule-zh.png) - -注意, 在该设置下, 还需要进行contextPath插件的设置, 以移除匹配前缀头, 拼接正确调用url, 请参考:[contextPath插件设置](../http-process/contextPath-plugin.md) - - - -## API调用说明 - -启用AiProxy插件后, 通过postman等工具请求shenyu网关, 即可通过网关代理获取LLM响应 - -```bash -curl --location --request POST 'http://localhost:9195/ai/proxy/v1/chat/completions' \ ---header 'Content-Type: application/json' \ ---data-raw '{ - "model": "gpt-4o-mini", - "messages": [ - { - "role": "system", - "content": "你是翻译助手,帮我翻译输入的内容为英文。" - }, - { - "role": "user", - "content": "我于杀戮之中盛放,亦如黎明中的花朵" - } - ] -}' -``` - -示例截图 - -![ai-proxy-api](../../../../../../static/img/shenyu/plugin/ai-proxy/ai-proxy-api.png) diff --git a/i18n/zh/docusaurus-plugin-content-docs/version-2.7.0.2/plugin-center/ai/ai-tokenLimiter-plugin.md b/i18n/zh/docusaurus-plugin-content-docs/version-2.7.0.2/plugin-center/ai/ai-tokenLimiter-plugin.md deleted file mode 100644 index bfa0ddf95f6..00000000000 --- a/i18n/zh/docusaurus-plugin-content-docs/version-2.7.0.2/plugin-center/ai/ai-tokenLimiter-plugin.md +++ /dev/null @@ -1,61 +0,0 @@ ---- -title: AiTokenLimiter插件 -keywords: ["AiTokenLimiter"] -description: AiTokenLimiter插件 ---- - - -## 说明 - -aiTokenLimiter 插件用于统计来自 LLM 响应的 token 消耗,并基于 Redis 进行限流管理。每次响应返回后,aiTokenLimiter 会计算响应中使用的 token 数量,并按用户或业务维度累积计数。超过预设阈值时,可以拒绝或限制后续请求。需要注意的是,ShenYu 的限流实现通常基于 Redis 存储令牌桶或滑动窗口状态,aiTokenLimiter 也依赖 Redis 来记录和检查 token 用量。配合aiProxy进行使用, 主要用于token限流。 - -## 插件设置 - -在 ShenYu 管理界面配置插件时,需要先创建 **Selector**(选择器)再创建 **Rule**(规则)。Selector 通常用于匹配请求条件(如路径、Header 等),Rule 用于配置插件参数或转发目标。关于选择器和规则配置,请参考:[选择器和规则管理](../../user-guide/admin-usage/selector-and-rule)。 - -使用aiTokenLimiter插件主要关注以下字段: - -- **Selector**: 选择器通常指定匹配的路径或请求特征。如可设置 `Pattern` 为 `/**` 以匹配所有请求,或指定特定路由路径。 -- **Rule**: 在规则层面为各插件填写参数。各插件常见字段如下: - - - `timeWindowSeconds`:限流时间窗口的长度(单位:秒)。在该窗口期内,插件会统计累计的 Token 使用量,并与阈值(`tokenLimit`)比较。 - - `keyName:`用于从请求中提取“限流维度键”的字段名。结合 `aiTokenLimitType`(如 HEADER、PARAMETER、COOKIE)一起使用:; - - `tokenLimit:` 时间窗口内允许的最大 Token 数量阈值。插件会统计下游 LLM 返回的 completion tokens(即模型生成内容消耗的 Token 数),累计超过此值时,将立即以 HTTP 429 拒绝后续请求。 - -以下给出aiTokenLimiter插件的配置示例截图在 (admin 界面): - -**注意**:aiTokenLimiter插件依赖于aiProxy插件, 常的调用流程中,应先用 **AiPrompt**(如果需要注入 prompt),再用 **AiTokenLimiter** 做令牌统计/限流(如果需要token限流),最后由 **AiProxy** 将请求转发给 LLM 服务。确保在 “插件管理” 中,**AiTokenLimiter** 的 **sort** 值 **小于** **AiProxy**,并 **大于** **AiPrompt**。 - -![](/img/shenyu/plugin/ai-token-limiter/ai-token-limiter-selector-zh.png) - -![ai-proxy-rule-zh](/img/shenyu/plugin/ai-token-limiter/ai-token-limiter-rule-zh.png) - - - -## API调用说明 - -启用AiProxy和AiTokenLimiter插件后, 通过postman等工具请求shenyu网关, 即可通过网关代理获取LLM响应 - -```bash -curl --location --request POST 'http://localhost:9195/ai/proxy/v1/chat/completions' \ ---header 'Content-Type: application/json' \ ---data-raw '{ - "model": "gpt-4o-mini", - "messages": [ - { - "role": "user", - "content": "我于杀戮之中盛放,亦如黎明中的花朵" - } - ] -}' -``` - -示例截图 - -![ai-proxy-api](/img/shenyu/plugin/ai-token-limiter/ai-token-limiter-api-before.png) - -设置tokenLimit=10, 60s内再次调用, AiTokenLimiter会拦截请求, 返回429并提示已经达到token使用限制, 稍后重试。 - -示例截图 - -![ai-proxy-api](/img/shenyu/plugin/ai-token-limiter/ai-token-limiter-api-after.png)