介绍
APISIX 的插件生态为 AI 场景提供了开箱即用的能力,以下是核心插件及其功能。
1. 代理与请求管理
-
ai-proxy
ai-proxy插件通过将插件配置转换为指定的请求格式,简化了对大语言模型(LLM)和嵌入模型的访问。它支持与 OpenAI、DeepSeek 以及其他兼容 OpenAI API 的服务进行集成。
此外,该插件还支持将大语言模型的请求信息记录到访问日志中,例如令牌使用量、模型、首次响应时间等信息。 -
ai-proxy-multi
ai-proxy-multi插件通过将插件配置转换为 OpenAI、DeepSeek 以及其他兼容 OpenAI API 的服务所需的请求格式,简化了对大语言模型(LLM)和嵌入模型的访问。它扩展了ai-proxy的功能,增加了负载均衡、重试、回退和健康检查等功能。
此外,该插件还支持将大语言模型的请求信息记录到访问日志中,例如令牌使用量、模型、首次响应时间等信息。
部署
1. 从github下载仓库
$ git clone https://github.com/apache/apisix-docker.git
$ cd apisix-docker/example
2. 修改docker-compose.yml
vi docker-compose.yml
这俩只保留了apisix和etcd,其他的如果想要也可以保留,nginx应该没有用的,应该是主要用于上游后端服务(Upstream Services)的角色,也就是被 APISIX 代理的目标服务器,用于测试和演示路由转发功能,而非作为网关本身运行。
此处只添加了容器名称
services:
apisix:
image: apache/apisix:${APISIX_IMAGE_TAG:-3.17.0-debian}
container_name: app-apisix
restart: always
volumes:
- ./apisix_conf/config.yaml:/usr/local/apisix/conf/config.yaml:ro
depends_on:
- etcd
##network_mode: host
ports:
- "9180:9180/tcp"
- "9080:9080/tcp"
- "9091:9091/tcp"
- "9443:9443/tcp"
- "9092:9092/tcp"
networks:
apisix:
etcd:
image: bitnamilegacy/etcd:3.5.11
container_name: app-etcd
restart: always
volumes:
- etcd_data:/bitnami/etcd
environment:
ETCD_ENABLE_V2: "true"
ALLOW_NONE_AUTHENTICATION: "yes"
ETCD_ADVERTISE_CLIENT_URLS: "http://app-etcd:2379"
ETCD_LISTEN_CLIENT_URLS: "http://0.0.0.0:2379"
ports:
- "2379:2379/tcp"
networks:
apisix:
networks:
apisix:
driver: bridge
volumes:
etcd_data:
driver: local
2. 修改apisix 的配置文件
vi apisix_conf/config.yaml
修改key和etcd的容器名称
apisix:
node_listen: 9080 # APISIX listening port
enable_ipv6: false
enable_control: true
control:
ip: "0.0.0.0"
port: 9092
deployment:
admin:
allow_admin: # https://nginx.org/en/docs/http/ngx_http_access_module.html#allow
- 0.0.0.0/0 # We need to restrict ip access rules for security. 0.0.0.0/0 is for test.
admin_key:
- name: "admin"
key: edd1c9f03136f87pp84b625c8f1 # 修改
role: admin # admin: manage all configuration data
- name: "viewer"
key: 4054f7cf07e3cc87985e76a2 # 修改
role: viewer
etcd:
host: # it's possible to define multiple etcd hosts addresses of the same etcd cluster.
- "http://app-etcd:2379" # multiple etcd address # 修改
prefix: "/apisix" # apisix configurations prefix
timeout: 30 # 30 seconds
plugin_attr:
prometheus:
export_addr:
ip: "0.0.0.0"
port: 9091
3.启动
docker compose up -d
访问
http://192.168.177.24:9180/ui
输入上面的admin key就可以访问了