APISIX > AI 网关实现 - 实践

news/2026/1/19 14:36:12/文章来源:https://www.cnblogs.com/gccbuaa/p/19501570

文章目录

    • APISIX的AI 网关实现
      • AI 插件列表
      • AI 请求处理流程
      • LLM 提供商驱动
      • 核心能力
      • Token 限流策略
      • Prometheus 指标
      • ai-request-rewrite 插件详解
      • 双 LLM 架构
      • ai-proxy 的 Provider 和 Model 选择
      • ai-proxy-multi 多实例负载均衡
    • 配置 LLM 接口实战
      • 1. 创建路由
      • 2. 客户端调用
      • 3. 关键配置说明
      • 4. Docker 网络配置
      • 5. 常见问题排查

APISIX的AI 网关实现

APISIX 通过 AI 插件生态系统实现了向 AI 网关的转型。

AI 插件列表

插件优先级功能
ai-proxy1040核心 LLM 代理,支持 OpenAI、DeepSeek、Azure 等
ai-proxy-multi1041多 LLM 提供商负载均衡和故障转移
ai-rag1060RAG 检索增强生成
ai-prompt-template1071预定义提示词模板
ai-prompt-decorator1072添加系统提示词(前置/后置)
ai-prompt-guard1072提示词安全校验(正则白名单/黑名单)
ai-request-rewrite1073请求重写(认证、模型选择)
ai-rate-limiting-基于 Token 的限流
ai-aws-content-moderation-AWS 内容审核

AI 请求处理流程

客户端请求↓
ai-prompt-template → 应用提示词模板↓
ai-prompt-decorator → 添加系统提示词↓
ai-prompt-guard → 提示词安全校验↓
ai-rag → 检索增强(向量搜索 + 上下文注入)↓
ai-proxy → 转换为 LLM 提供商格式,发送请求↓
LLM 提供商(OpenAI/DeepSeek/Azure...)↓
ai-rate-limiting → Token 限流↓
返回客户端

LLM 提供商驱动

位于 apisix/plugins/ai-drivers/

  • openai.lua - OpenAI
  • azure-openai.lua - Azure OpenAI
  • deepseek.lua - DeepSeek
  • openai-compatible.lua - 通用 OpenAI 兼容 API

核心能力

Token 限流策略

ai-rate-limiting 支持三种限流维度:

  • total_tokens - 总 Token
  • prompt_tokens - 输入 Token
  • completion_tokens - 输出 Token

Prometheus 指标

ai-request-rewrite 插件详解

该插件用 LLM 来重写客户端请求,将原始请求体发送给 LLM,根据配置的 prompt 进行转换,然后用 LLM 响应替换原始请求。

配置 Schema

{
prompt = "string",           -- 必填,指导 LLM 如何重写请求的提示词
provider = "openai|deepseek|aimlapi|openai-compatible",  -- 必填
auth = {                     -- 必填,认证信息
header = { ["Authorization"] = "Bearer xxx" },
query = { ["api-key"] = "xxx" }
},
options = { model = "gpt-3.5-turbo" },  -- 模型选项
timeout = 30000,             -- 超时(毫秒)
ssl_verify = true,
override = { endpoint = "https://..." }  -- openai-compatible 必填
}

工作流程

1. access 阶段获取客户端请求体↓
2. 构造 LLM 请求:{ messages: [{ role: "system", content: conf.prompt },{ role: "user", content: 原始请求体 }]}↓
3. 调用 ai-driver 发送请求到 LLM↓
4. 解析 LLM 响应,提取 choices[0].message.content↓
5. 返回重写后的请求给下游

使用场景

  • 请求格式转换
  • 请求增强(补充缺失字段)
  • 请求规范化
  • 智能路由预处理

双 LLM 架构

ai-request-rewrite 和 ai-proxy 可以配置不同的 LLM

客户端请求↓
┌─────────────────────────────────────┐
│ ai-request-rewrite                  │
│ 调用 LLM-A(如 GPT-3.5)重写请求     │
└─────────────────────────────────────┘↓
重写后的请求↓
┌─────────────────────────────────────┐
│ ai-proxy                            │
│ 调用 LLM-B(如 GPT-4)处理业务请求   │
└─────────────────────────────────────┘↓
最终响应

配置示例

plugins:
- name: ai-request-rewrite
config:
provider: openai
options:
model: "gpt-3.5-turbo"  # 便宜模型做重写
prompt: "规范化以下请求格式..."
- name: ai-proxy
config:
provider: openai
options:
model: "gpt-4"  # 强模型做业务处理

分开配置的好处是可以按需选择不同模型,优化成本和性能。

ai-proxy 的 Provider 和 Model 选择

Provider 选择:在路由配置中静态指定

plugins:
ai-proxy:
provider: "openai"  # 必填,枚举值
auth:
header:
Authorization: "Bearer sk-xxx"

支持的 provider:

  • openai
  • deepseek
  • aimlapi
  • openai-compatible
  • azure-openai

Model 选择:有两个来源,配置优先

-- base.lua:79
local model = ai_instance.options.model or request_body.model
  1. 配置优先conf.options.model - 路由配置中指定的模型
  2. 请求兜底request_body.model - 客户端请求体中的模型

示例

plugins:
ai-proxy:
provider: openai
options:
model: "gpt-4"  # 强制使用 gpt-4,忽略客户端请求的模型

ai-proxy-multi 多实例负载均衡

支持配置多个 LLM 实例,通过负载均衡和故障转移选择:

plugins:
ai-proxy-multi:
balancer:
algorithm: "roundrobin"  # 或 chash
instances:
- name: "openai-primary"
provider: openai
weight: 80
priority: 0
auth: { header: { Authorization: "Bearer sk-xxx" } }
options: { model: "gpt-4" }
- name: "deepseek-backup"
provider: deepseek
weight: 20
priority: 1
auth: { header: { Authorization: "Bearer xxx" } }
options: { model: "deepseek-chat" }
fallback_strategy: "http_5xx"  # 5xx 时切换到下一个实例

选择逻辑

  • weight - 权重,用于负载均衡
  • priority - 优先级,用于故障转移
  • fallback_strategy - 触发切换的条件(429、5xx 等)

配置 LLM 接口实战

以宿主机 Ollama(http://127.0.0.1:11434)为例,配置 APISIX 代理 LLM 接口。

1. 创建路由

curl http://127.0.0.1:9180/apisix/admin/routes/1 -X PUT \
-H "X-API-KEY: edd1c9f034335f136f87ad84b625c8f1" \
-d '{
"uri": "/v1/chat/completions",
"plugins": {
"ai-proxy": {
"provider": "openai-compatible",
"auth": {
"header": {}
},
"options": {
"model": "llama3.2"
},
"override": {
"endpoint": "http://host.docker.internal:11434/v1/chat/completions"
},
"timeout": 60000,
"ssl_verify": false
}
}
}'

2. 客户端调用

curl http://127.0.0.1:9080/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "llama3.2",
"max_tokens": 1000,
"messages": [
{"role": "system", "content": "你是一个得力助手。"},
{"role": "user", "content": "你好"}
],
"stream": false
}'

3. 关键配置说明

配置项说明
provideropenai-compatibleOllama 兼容 OpenAI API
override.endpoint见下表必填,LLM 服务地址
auth.header{}Ollama 本地无需认证
options.modelllama3.2指定模型
ssl_verifyfalse本地 HTTP 无需 SSL
timeout60000本地模型响应慢,建议 60 秒

4. Docker 网络配置

APISIX 在 Docker 中时,访问宿主机服务需要特殊地址:

环境endpoint
macOS/Windows Dockerhttp://host.docker.internal:11434/v1/chat/completions
Linux Dockerhttp://172.17.0.1:11434/v1/chat/completions
本地直接运行http://127.0.0.1:11434/v1/chat/completions

5. 常见问题排查

Admin API 认证失败

{"description":"wrong apikey","error_msg":"failed to check token"}
  • 检查 conf/config.yaml 中的 admin_key
  • 默认 key:edd1c9f034335f136f87ad84b625c8f1

500 Internal Server Error

# 查看错误日志
tail -100 logs/error.log | grep -i error

常见原因:

  • Ollama 未启动
  • Docker 网络不通(改用 host.docker.internal
  • ai-proxy 插件未启用

启用插件:检查 conf/config.yaml

plugins:
- ai-proxy
- ai-prompt-decorator
# ...

重载配置:

apisix reload

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1183463.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Qwen3-VL-2B行业应用:安防监控的异常行为检测

Qwen3-VL-2B行业应用:安防监控的异常行为检测 1. 引言:AI视觉理解在安防场景中的演进 随着城市化进程加快和公共安全需求提升,传统安防系统正从“被动录像”向“主动识别”转型。早期的视频监控依赖人工回看,效率低、响应慢&…

超实用技巧!快速掌握 Qwen2.5-7B 指令微调方法

超实用技巧!快速掌握 Qwen2.5-7B 指令微调方法 1. 环境与资源概览 在进行大模型指令微调之前,确保具备合适的硬件和软件环境是成功的关键。本文基于预置镜像 单卡十分钟完成 Qwen2.5-7B 首次微调,提供一套高效、可复现的 LoRA 微调实践方案…

朔州市山阴应县右玉英语雅思培训辅导机构推荐,2026权威出国雅思课程中心学校口碑排行榜 - 苏木2025

在全球化留学趋势持续升温的背景下,雅思考试已成为朔州市、山阴县、应县、右玉县学子通往海外名校的核心门槛。然而,当地雅思培训市场鱼龙混杂,考生普遍面临选课迷茫、优质资源匮乏、提分效率低下、个性化方案缺失等…

mysql 语句优化

# MySQL 语句优化方式详解 ## 📊 **一、SQL 编写优化** ### **1. 避免 SELECT ***```sql-- ❌ 不推荐SELECT * FROM users WHERE status = 1; -- ✅ 推荐:只取需要的列SELECT id, name, email FROM users WHERE sta…

Qwen2.5 API调用实战:Python集成与响应解析指南

Qwen2.5 API调用实战:Python集成与响应解析指南 1. 引言 1.1 业务场景描述 在当前大模型应用快速发展的背景下,如何高效地将大型语言模型(LLM)集成到实际产品中成为关键挑战。本文聚焦于 Qwen2.5-7B-Instruct 模型的本地部署与…

忻州市忻府原平定襄五台英语雅思培训辅导机构推荐,2026权威出国雅思课程中心学校口碑排行榜 - 苏木2025

在雅思培训市场鱼龙混杂的当下,忻州市忻府、原平、定襄、五台等地的考生普遍面临选课迷茫、优质机构难甄别、提分技巧匮乏、个性化方案缺失等痛点。如何在众多教育机构中选出靠谱且性价比高的品牌,直接关系到考试成败…

实战案例解析CANFD如何突破CAN的速率瓶颈

实战解析:CAN FD如何破解传统CAN的带宽困局你有没有遇到过这样的场景?在调试一辆智能电动车的BMS系统时,发现电池数据上传延迟严重;或者在做ADAS融合感知时,摄像头目标框频繁丢帧——而排查下来,并非算法或…

Qwen3-4B模型安全:内容过滤与敏感词处理

Qwen3-4B模型安全:内容过滤与敏感词处理 1. 引言 1.1 AI 写作大师 - Qwen3-4B-Instruct 随着大语言模型在内容生成、代码编写和逻辑推理等领域的广泛应用,如何确保其输出的安全性成为工程落地中的关键挑战。基于阿里云最新发布的 Qwen/Qwen3-4B-Instr…

IsoAlgo管道轴测图引擎用户界面

为了方便用户使用IsoAlgo,提供一个简单的用户界面IsoAlgo简介 IsoAlgo是图核科技公司自主研发的管道轴测图引擎piping Isometric drawing generation Algorithms的简称,读作ISO阿狗或爱狗。IsoAlgo可以通过读取IDF/P…

通义千问2.5推理延迟高?GPU利用率提升实战指南

通义千问2.5推理延迟高?GPU利用率提升实战指南 在大模型应用日益普及的今天,Qwen2.5-7B-Instruct 凭借其强大的指令理解与生成能力,成为众多开发者构建智能对话系统的首选。然而,在实际部署过程中,不少用户反馈&#…

2026年丽江口碑好的污水处理咨询,污水处理施工,污水处理设计厂家品牌推荐清单 - 品牌鉴赏师

污水处理厂家推荐榜 推荐一:云南龙帜环境工程有限公司品牌介绍:云南龙帜环境工程有限公司是国家高新技术企业,同时担任云南省环保协会副会长单位等。它长期专注环保水处理,业务涵盖生活、工业等多种废水处理,以及…

如何一键将照片转卡通?DCT-Net人像卡通化模型全解析

如何一键将照片转卡通?DCT-Net人像卡通化模型全解析 1. 技术背景与核心价值 随着虚拟形象、社交娱乐和数字内容创作的兴起,人像卡通化技术逐渐成为AI图像生成领域的重要应用方向。用户希望通过简单操作,将真实人脸照片自动转换为风格统一、…

Qwen-Image-2512未来展望:语言驱动修图新时代

Qwen-Image-2512未来展望:语言驱动修图新时代 随着多模态大模型的持续演进,图像编辑正从“像素操作”迈向“语义操控”的全新时代。阿里通义千问团队推出的 Qwen-Image-2512 模型,作为 Qwen-VL 系列在视觉生成领域的最新迭代,不仅…

2026全铝定制厂家实力TOP10:铝合金衣柜选品攻略,这几家闭眼入不踩雷 - 深度智识库

在 2026 年的家居消费市场,健康环保与耐用实用成为消费者选购家具的核心诉求。铝合金衣柜、全铝衣柜、金属衣柜等全铝定制产品,凭借零甲醛释放、防水防潮、使用寿命长等突出优势,迅速占领家装市场的半壁江山。为了帮…

vivado2025新手避坑指南:环境搭建中的十大错误

Vivado 2025 新手避坑指南:从零搭建稳定开发环境的实战经验 你是不是也曾在安装 Vivado 的第一天就卡在启动界面? 是不是下载了几个小时的安装包,结果双击 xsetup.exe 却弹出一串看不懂的日志错误? 又或者好不容易装上了&…

如何用PyTorch-2.x-Universal-Dev-v1.0快速实现图像超分辨率任务?

如何用PyTorch-2.x-Universal-Dev-v1.0快速实现图像超分辨率任务? 1. 引言 1.1 业务场景与技术背景 在计算机视觉领域,图像超分辨率(Super-Resolution, SR)是一项关键任务,旨在从低分辨率图像中恢复出高分辨率、细节…

HY-MT1.5-1.8B部署实战:边缘计算场景应用

HY-MT1.5-1.8B部署实战:边缘计算场景应用 1. 引言 随着全球化进程的加速,跨语言沟通需求在企业服务、跨境电商、内容本地化等场景中日益增长。传统云端机器翻译方案虽然性能强大,但在延迟敏感型边缘计算场景中面临网络依赖高、响应慢、数据…

通义千问3-14B部署教程:Windows下Ollama配置避坑指南

通义千问3-14B部署教程:Windows下Ollama配置避坑指南 1. 引言 1.1 学习目标 本文旨在为开发者提供一份完整的 Qwen3-14B 模型在 Windows 系统下的本地部署指南,重点围绕 Ollama Ollama WebUI 的组合使用展开。通过本教程,你将掌握&#x…

实测Cute_Animal_For_Kids_Qwen_Image:儿童绘本创作神器体验

实测Cute_Animal_For_Kids_Qwen_Image:儿童绘本创作神器体验 1. 引言:AI生成技术在儿童内容创作中的新突破 随着生成式AI技术的快速发展,图像生成模型已逐步从“写实风格”向“特定场景定制化”演进。尤其在儿童教育与绘本创作领域&#xf…

YOLOv12官版镜像部署避坑指南,新手必收藏

YOLOv12官版镜像部署避坑指南,新手必收藏 在深度学习目标检测领域,YOLO系列始终是开发者首选的高效框架。随着YOLOv12的发布,其以注意力机制为核心的全新架构打破了传统CNN主导的范式,在精度与效率之间实现了前所未有的平衡。然而…