[b][size=5][color=#0000ff]API网关[/color][/size][/b]
[quote]一般我们使用AI的时候,需要一个API地址,和一个API KEY,然后才能使用AI的API服务.那么New API就是负责创建并管理各种AI渠道和API KEY的发放,以及额度控制和用户管理的.使用New API的好处之一就是,比如我们使用很多的AI官方服务,比如DeepSeek, OpenAI, Grok, Google Gemini等,如果没有这种整合,那么我就需要在每个用来聊天的AI客户端里,依次添加每个渠道的API地址和API KEY,太麻烦了.那么我们就可以把这些渠道整合在New API里,对外只需要一个域名,一个Key,就可以直接访问这些所有的渠道,非常方便.并且也不用担心KEY的泄露,毕竟不是你的官Key泄露,只需要在New API里删除重新创建一个就行了,而且有完善的日志管理和额度控制,有可疑的地方,翻一翻也能找出问题在哪.还有个好处就是,只要你搭建New API的服务器能正常访问ChatGPT, Claude等,你又能正常访问你的New API这台服务器,那么等于你不用dai--li也能正常访问ChatGPT, Claude.不会暴露你的本机IP.并且New API也可以配置访问dai--li,用配置的dai--li(比如WARP)来访问这些官方的API服务,非常地隐私友好.[/quote]
[b][size=5][color=#0000ff]mcp[/color][/size][/b]
[quote]MCP全称Model Context Protocol,模型上下文协议,简单理解就是你可以使用它来获取需要让AI知道的内容,然后喂给AI.比如时间MCP,它会获取本机的时间,然后将返回结果的JSON喂给AI,AI就知道现在是什么时候了,从而给出更符合当前情境的答案.有很多实用的MCP服务器都是stdio类型的,需要在本机运行.但是有一些MCP比如代码运行之类的工具,在本机运行的话可能有风险(比如跑了个删除文件的代码给你电脑文件删了).还有就是如果手机端要用,基本上stdio类的MCP是用不了的,一般只能用SSE或者Streamable HTTP类型的,可以理解为MCP在远程服务器运行,你只需要调用它提供的SSE或者Streamable HTTP的API[/quote]
[size=5][color=#0000ff]key轮循[/color][/size]
[quote]API KEY的轮询项目(可选),用途是有大量的API KEY的时候,可以轮询使用,用完1次下次就换下1个KEY,避免频率限制等问题(主要是针对大量的,免费的Gemini KEY).因我不喜欢用New API自带的轮询,我喜欢用GPT-Load[/quote]
[img]static/image/hrline/line9.png[/img]
[img]static/image/hrline/line9.png[/img]
[size=5][color=#0000ff]简单介绍完,那么就开始搭建步骤
[/color][/size][size=5][color=#ff0000]New API:[/color][/size]
[color=#00ff][size=4]新建一个new-api目录[/size][/color]
[color=#00ff][code]mkdir new-api && cd new-api
[/code]配置环境变量(文本编辑工具爱用哪个用哪个,我喜欢用nano)[/color]
[color=#00ff][code]nano .env[/code]输入以下内容(自己用SQLite就够了,MYSQL等数据库可以去参照官方文档部署)[/color]
[color=#00ff][code]REDIS_CONN_STRING=redis://new-api-redis
MEMORY_CACHE_ENABLED=true
TZ=Asia/Shanghai
ERROR_LOG_ENABLED=true
[/code]创建docker-compose.yml文件[/color]
[color=#00ff][code]nano docker-compose.yml[/code]输入以下内容,这里映射的端口是用来SSH隧道访问演示用的,实际使用是和Cloudflared容器组一个自定义网络,然后直接通过CF Tunnel后台配置的域名访问New API容器的,其他容器也如此.你可以自行换成其他方式,比如映射到宿主机端口,或者用nginx容器反代也行.[/color]
[color=#00ff][code]name: new-api
services:
new-api:
image: calciumion/new-api:latest
container_name: new-api
restart: unless-stopped
env_file:
- .env
command: --log-dir /app/logs
volumes:
- ./data:/data
- ./logs:/app/logs
depends_on:
new-api-redis:
condition: service_healthy
healthcheck:
test: ["CMD-SHELL", "wget -q -O - http://localhost:3000/api/status | grep -o '\"success\":\\s*true' | awk -F: '{print $$2}'"]
interval: 30s
timeout: 10s
retries: 3
networks:
internal:
cf_tunnel:
ipv4_address: 192.168.0.2
expose:
- 3000
ports: # 用于SSH隧道访问,可以创建完管理员账号以后删除
- 127.0.0.1:3000:3000 # 用于SSH隧道访问,可以创建完管理员账号以后删除
new-api-redis:
image: redis:alpine
container_name: new-api-redis
restart: unless-stopped
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 10s
timeout: 5s
retries: 3
networks:
- internal
networks:
internal:
internal: true
cf_tunnel:
external: true
[/code]创建自定义网络(用来和Cloudflared容器共享网络,走Cloudflare Tunnel从公网访问)[/color]
[code]docker network create --driver bridge --subnet 192.168.0.0/24 --gateway 192.168.0.254 --ipv6 cf_tunnel[/code][align=left][font=-apple-system, BlinkMacSystemFont, "][color=#0000ff]运行容器[/color][/font][/align][code]docker compose up -d[/code][align=left][font=-apple-system, BlinkMacSystemFont, "][color=#0000ff]查看日志是否正常运行[/color][/font][/align]
[code]docker logs -f new-api
[/code]
[code]ssh -N -L 127.0.0.1:3000:127.0.0.1:3000 -p <port_number> <user>@<your_vps_ip>
[/code][color=#0000ff]我们前面在compose配置文件里已经做好了数据持久化,所以下一步[/color]
[img]https://tu.wnflb2023.com/i/2026/05/24/164159.png[/img]
[font=-apple-system, BlinkMacSystemFont, "][size=3][color=#0000ff]输入完账号密码,下一步[/color][/size][/font]
[img]https://tu.wnflb2023.com/i/2026/05/24/164302.png[/img]
[color=#0000ff]选择自用模式,下一步[/color]
[img]https://tu.wnflb2023.com/i/2026/05/24/164352.png[/img]
[color=#0000ff]最后一步,点初始化系统[/color]
[img]https://tu.wnflb2023.com/i/2026/05/24/164435.png[/img]
[font=-apple-system, BlinkMacSystemFont, "][size=3][color=#ff0000]我们点击右上角的登录,用刚才注册的管理员账号登录[/color][/size][/font]
[img]https://tu.wnflb2023.com/i/2026/05/24/164515.png[/img]
[size=4][color=#0000ff]先点进系统设置,把新用户注册关了(没配置邮箱貌似没问题,因为根本没有邮件服务,所以注册不了,但是怕后面忘了,好习惯,有需要自己再开)[/color][/size]
[img]https://tu.wnflb2023.com/i/2026/05/24/164611.png[/img][img]https://tu.wnflb2023.com/i/2026/05/24/164628.png[/img]
[size=4][color=#0000ff]然后我们去添加一个AI渠道,这里演示是DeepSeek[/color][/size]
[img]https://tu.wnflb2023.com/i/2026/05/24/164704.png[/img]
[color=#0000ff]类型选DeepSeek,输入你喜欢的渠道名称,官方的API KEY,下面模型那里如果没显示模型,就点下获取模型列表,然后添加.没问题我们就点提交[/color]
[img]https://tu.wnflb2023.com/i/2026/05/24/164748.png[/img][img]https://tu.wnflb2023.com/i/2026/05/24/164754.png[/img]
[color=#0000ff][font=-apple-system, BlinkMacSystemFont, "]测试下渠道看看是否有效[/font]
[/color]
[img]https://tu.wnflb2023.com/i/2026/05/24/164838.png[/img]
然后我们创建一个API KEY,准备开始跟AI聊天
[img]https://tu.wnflb2023.com/i/2026/05/24/164910.png[/img]
[color=#0000ff]额度,过期时间,用户组什么的随便设置.(顺便提一嘴,你可以用用户分组控制来实现不同分组的用户,允许或限制访问指定的模型,或者不同的倍率,这里就不多说了,可以自己了解下.这里演示默认是default分组,添加的渠道也是默认default分组,所以不需要额外设置)[/color]
[img]https://tu.wnflb2023.com/i/2026/05/24/165030.png[/img]
[color=#0000ff][font=-apple-system, BlinkMacSystemFont, "]打开AI聊天客户端,这里演示用Cherry Studio.添加一个提供商[/font]
[/color]
[img]https://tu.wnflb2023.com/i/2026/05/24/165110.png[/img]
[size=4][color=#0000ff]输入你喜欢易记的名称[/color][/size]
[img]https://tu.wnflb2023.com/i/2026/05/24/165207.png[/img]
[color=#0000ff]输入好API地址和API KEY后点击管理(这里因为是SSH隧道转发到本地的,所以这里填的是[url=http://127.0.0.1:3000]http://127.0.0.1:3000[/url],后面用Cloudflare Tunnel可以配置域名从公网访问)[/color]
[img]https://tu.wnflb2023.com/i/2026/05/24/165257.png[/img]
[font=-apple-system, BlinkMacSystemFont, "][color=#0000ff]添加所有模型[/color][/font]
[img]https://tu.wnflb2023.com/i/2026/05/24/165353.png[/img][img]https://tu.wnflb2023.com/i/2026/05/24/165419.png[/img]
[font=-apple-system, BlinkMacSystemFont, "][size=3][color=#0000ff]新建一个AI助手,点左边的模型设置,再点右上角的模型选择,选择我们刚才添加的模型[/color][/size][/font]
[img]https://tu.wnflb2023.com/i/2026/05/24/165509.png[/img][img]https://tu.wnflb2023.com/i/2026/05/24/165527.png[/img][img]https://tu.wnflb2023.com/i/2026/05/24/165543.png[/img][img]https://tu.wnflb2023.com/i/2026/05/24/165610.png[/img]
[size=5][color=#0000ff]到这里[font=-apple-system, BlinkMacSystemFont, "]恭喜你,你有了属于自己的AI API网关[/font][/color][/size]
[img]static/image/hrline/line6.png[/img]
[b][size=5][color=#ff0000]MCP网关[/color][/size][/b]
[size=4][color=#0000ff]我推荐使用ptbsare大佬的mcp-proxy-server项目[/color][/size]
[quote]可以聚合MCP服务器,把Stdio, SSE, Streamable HTTP类型的MCP全部集合在这个容器里运行,然后统一对外提供SSE或者Streamable HTTP接口来调用,现在的桌面端AI聊天客户端一般都支持SSE和Streamable HTTP的.手机端的话只有少部分支持Streamable HTTP(比如RikkaHub)[/quote]
[size=4][color=#0000ff]那么开始部署[/color][/size]
[color=#0000ff]创建mcp-proxy-server文件夹[/color]
[code]mkdir mcp-proxy-server && cd mcp-proxy-server[/code][color=#0000ff]配置环境变量[/color]
[code]nano .env
[/code][color=#0000ff]输入以下内容:[/color]
[code]PORT=8080
ALLOWED_KEYS=<建议用长一点的密码,最好不要带$>
ENABLE_ADMIN_UI=false
ADMIN_USERNAME=username
ADMIN_PASSWORD=<建议用长一点的密码,最好不要带$>
SESSION_SECRET=<建议用长一点的密码,最好不要带$>
RETRY_SSE_TOOL_CALL=true
SSE_TOOL_CALL_MAX_RETRIES=4
SSE_TOOL_CALL_RETRY_DELAY_BASE_MS=300
RETRY_HTTP_TOOL_CALL=true
HTTP_TOOL_CALL_MAX_RETRIES=4
HTTP_TOOL_CALL_RETRY_DELAY_BASE_MS=500
RETRY_STDIO_TOOL_CALL=true
STDIO_TOOL_CALL_MAX_RETRIES=5
STDIO_TOOL_CALL_RETRY_DELAY_BASE_MS=1000[/code][color=#0000ff]输入以下内容:[/color]
[code]{
"mcpServers": {
"time": {
"type": "stdio",
"name": "Time",
"active": true,
"command": "uvx",
"args": [
"mcp-server-time",
"--local-timezone=Asia/Shanghai"
]
}
}
}[/code][color=#0000ff]运行容器:[/color]
[code]docker compose up -d
[/code][align=left][font=-apple-system, BlinkMacSystemFont, "][color=#0000ff]查看运行日志,容器是否正常运行[/color][/font][/align]
[code]docker logs -f mcp-proxy-server[/code][img]https://tu.wnflb2023.com/i/2026/05/24/170350.png[/img]
[size=3][color=#0000ff]开启SSH隧道转发[/color][/size]
[code]ssh -N -L 127.0.0.1:3001:127.0.0.1:3001 -p <port_number> <user>@<your_vps_ip>
[/code][color=#0000ff]继续转到Cherry Studio,添加一个MCP服务器[/color]
[img]https://tu.wnflb2023.com/i/2026/05/24/170511.png[/img]
[color=#0000ff]名称随意,类型选择Streamable HTTP, URL填 [/color]http://127.0.0.1:3001/mcp[color=#0000ff] ,还是一样,可以从Cloudflare Tunnel配置域名从公网访问.
请求头我们填写X-Api-Key=sk-test,也就是你在环境变量里设置的ALLOWED_KEYS[/color]
[img]https://tu.wnflb2023.com/i/2026/05/24/170602.png[/img]
保存并启用以后,可以看到MCP服务器版本号亮了,并且可用工具的数量也更新了.
[img]https://tu.wnflb2023.com/i/2026/05/24/170637.png[/img]
[color=#0000ff][font=-apple-system, BlinkMacSystemFont, "]
[/font][/color]
[color=#0000ff][font=-apple-system, BlinkMacSystemFont, "]实际体验一下,先给AI启用对应的MCP服务器[/font][/color]
[img]https://tu.wnflb2023.com/i/2026/05/24/170721.png[/img]
[color=#0000ff][font=-apple-system, BlinkMacSystemFont, "]非常完美,AI终于有了获取当前真实世界时间的能力![/font]
[/color][size=5][color=#ff0000]
[/color][/size][size=5][color=#ff0000]KEY轮询[/color][/size]
[quote]一般来说,个人用没有这么多KEY,所以一般来说是用不到,但是因为之前别的站流行打野,基本上人手都是几千上万的Gemini KEY,这个项目可以添加海量KEY并轮询,性能非常高,占用特别低,而且我也不喜欢New API自带的轮询(一开始还有BUG,后面慢慢完善了),所以后端我一般就用这个项目[/quote]
[size=4][color=#0000ff]开始部署:[/color][/size]
[align=left][font=-apple-system, BlinkMacSystemFont, "][color=#0000ff]创建gpt-load文件夹[/color][/font][/align]
[code]mkdir gpt-load && cd gpt-load[/code][align=left][font=-apple-system, BlinkMacSystemFont, "][color=#0000ff]配置环境变量[/color][/font][/align]
[code]nano .env
[/code][code]PORT=3000
HOST=0.0.0.0
SERVER_READ_TIMEOUT=60
SERVER_WRITE_TIMEOUT=600
SERVER_IDLE_TIMEOUT=120
SERVER_GRACEFUL_SHUTDOWN_TIMEOUT=10
IS_SLAVE=false
TZ=Asia/Shanghai
AUTH_KEY=sk-test
REDIS_DSN=redis://gpt-load-redis:6379/0
MAX_CONCURRENT_REQUESTS=99
ENCRYPTION_KEY=encrypt_password
#如果有需要可以自己设置代理,通过代理来访问API
#HTTP_PROXY=socks5://192.168.1.1:1080
#HTTPS_PROXY=socks5://192.168.1.1:1080[/code][align=left][font=-apple-system, BlinkMacSystemFont, "][color=#0000ff]创建docker-compose.yml[/color][/font][/align]
[code]nano docker-compose.yml
[/code][code]name: gpt-load
services:
gpt-load:
image: ghcr.io/tbphp/gpt-load:latest
container_name: gpt-load
restart: unless-stopped
env_file:
- .env
volumes:
- ./data:/app/data
healthcheck:
test: wget -q --spider -T 10 -O /dev/null http://localhost:${PORT:-3001}/health
interval: 30s
timeout: 10s
retries: 3
start_period: 40s
depends_on:
gpt-load-redis:
condition: service_healthy
restart: true
networks:
internal:
cf_tunnel:
ipv4_address: 192.168.0.4
expose:
- 3000
ports:
- 127.0.0.1:3002:3000 # 我这里为了演示就不创建域名了,就用SSH隧道演示下
gpt-load-redis:
image: redis:latest
container_name: gpt-load-redis
restart: unless-stopped
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 5s
timeout: 3s
retries: 3
networks:
- internal
networks:
internal:
internal: true
cf_tunnel:
external: true[/code][color=#0000ff]启动容器[/color]
[code]docker compose up -d
[/code][align=left][font=-apple-system, BlinkMacSystemFont, "][color=#0000ff]查看日志,观察容器是否正常运行[/color][/font][/align]
[code]docker logs -f gpt-load
[/code][img]https://tu.wnflb2023.com/i/2026/05/24/171427.png[/img]
[align=left][font=-apple-system, BlinkMacSystemFont, "][color=#0000ff]开启SSH隧道转发[/color][/font][/align]
[code]ssh -N -L 127.0.0.1:3002:127.0.0.1:3002 -p <port_number> <user>@<your_vps_ip>
[/code][size=3][color=#0000ff]浏览器访问 [url=http://127.0.0.1:3002]http://127.0.0.1:3002[/url] 登录后台,密钥就是环境变量里设置的AUTH_KEY[/color][/size]
[img]https://tu.wnflb2023.com/i/2026/05/24/171608.png[/img]
[quote]这里会有很多警告,因为我这里演示密码设置的很短很不安全,所以你们实际部署的时候,需要设置比较复杂的密码,推荐64位以上数字加字母大小写,符号也可以,但是docker环境变量的话$是保留字符,所以如果你需要表示$本身的话就需要2个$$来转义,所以之前密码我才不建议带$.[/quote]
[img]https://tu.wnflb2023.com/i/2026/05/24/171705.png[/img]
[color=#0000ff]添加一个组[/color]
[img]https://tu.wnflb2023.com/i/2026/05/24/171739.png[/img]
[font=-apple-system, BlinkMacSystemFont, "][color=#0000ff]因为演示,我就只添加了DeepSeek官方渠道,实际使用你可以添加任意的OpenAI兼容渠道,Gemini兼容渠道和Anthropic兼容渠道.这里点生成按钮可以生成任意数量的密钥,因为一般是用作New-API的后端,所以生成1个就行了.[/color][/font]
[img]https://tu.wnflb2023.com/i/2026/05/24/171824.png[/img]
[color=#0000ff]给渠道添加任意数量的KEY[/color]
[img]https://tu.wnflb2023.com/i/2026/05/24/171903.png[/img]
[font=-apple-system, BlinkMacSystemFont, "][color=#0000ff]测试一下渠道是否有效[/color][/font]
[img]https://tu.wnflb2023.com/i/2026/05/24/171932.png[/img]
[quote]那么如何搭配New-API使用呢,因为这2个容器是在同一个网络(cf_tunnel)中的,所以可以在New-API里添加一个渠道,类型选OpenAI, API地址就填[url=http://192.168.0.4:3000/proxy/deepseek]http://192.168.0.4:3000/proxy/deepseek[/url] ,这里192.168.0.4是GPT-Load容器的IP, 3000是端口, /proxy是固定路径, /deepseek是刚才我们创建分组时填写的名称.所以对外提供服务的链接就是[url=http://192.168.0.4:3000/proxy/deepseek.]http://192.168.0.4:3000/proxy/deepseek.[/url]
模型列表里默认会存在大量OpenAI的模型,我们先点击清除,再点击获取[/quote]
[img]https://tu.wnflb2023.com/i/2026/05/24/172038.png[/img]
[font=-apple-system, BlinkMacSystemFont, "][color=#0000ff]勾选渠道包含的模型,然后确定[/color][/font]
[img]https://tu.wnflb2023.com/i/2026/05/24/172107.png[/img][img]https://tu.wnflb2023.com/i/2026/05/24/172121.png[/img]
测试一下是否有问题
[img]https://tu.wnflb2023.com/i/2026/05/24/172146.png[/img]
[font=-apple-system, BlinkMacSystemFont, "][size=4][color=#0000ff]至此API网关+MCP网关+Key轮询就部署完毕了.但是因为这里为了方便,所以用的是SSH隧道的方式访问,下面再讲一下配合Cloudflared(Cloudflare Tunnel)容器实现公网访问.但是需要你自己有域名,并且已经托管到CF[/color][/size][/font]
[img]static/image/hrline/line6.png[/img]
[font=-apple-system, BlinkMacSystemFont, "][color=#0000ff]先登录到Cloudflare控制面板,找到Zero Trust[/color][/font]
[img]https://tu.wnflb2023.com/i/2026/05/24/172318.png[/img]
[font=-apple-system, BlinkMacSystemFont, "][size=4][color=#0000ff]然后 网络 -> Tunnels,创建一个新隧道[/color][/size][/font]
[img]https://tu.wnflb2023.com/i/2026/05/24/172350.png[/img]
[size=4][color=#0000ff][font=-apple-system, BlinkMacSystemFont, "]类型选Cloudflared[/font]
[/color][/size]
[img]https://tu.wnflb2023.com/i/2026/05/24/172430.png[/img]
[color=#0000ff]输入你喜欢的隧道名称,然后创建[/color]
[img]https://tu.wnflb2023.com/i/2026/05/24/172503.png[/img]
[color=#ff0000]并不需要安装什么,我们只需要他的密钥,我们点击复制按钮复制安装命令,找个文本编辑器比如VS Code,然后把install后面开始的密钥记录下来,后面要用.[/color]
[img]https://tu.wnflb2023.com/i/2026/05/24/172543.png[/img]
[color=#0000ff]创建cloudflared文件夹[/color]
[code]mkdir cloudflared && cd cloudflared[/code]
[color=#0000ff]配置环境变量[/color]
[code]nano .env[/code]
[color=#0000ff]输入以下内容:[/color]
[code]CLOUDFLARED_TOKEN=<你刚才复制并提取的密钥,ey开头的>[/code]
[color=#0000ff]编辑docker-compose.yml[/color]
[code]nano docker-compose.yml[/code]
[color=#0000ff]输入以下内容:[/color]
[code]
<div>services:
cloudflared:
image: cloudflare/cloudflared:latest
container_name: cloudflared
restart: unless-stopped
env_file:
- .env
command: tunnel --no-autoupdate run --token ${CLOUDFLARED_TOKEN}
networks:
cf_tunnel:
ipv4_address: 192.168.0.1
networks:
cf_tunnel:
external: true</div>[/code]
[size=4][color=#0000ff]拉起容器[/color][/size]
[code]docker compose up -d[/code]
[color=#0000ff]观察容器运行日志,判断容器是否正常运行[/color]
[code]docker logs -f cloudflared[/code]
[color=#0000ff]我们回到Cloudflare控制台,点击我们刚才创建的隧道,然后点击编辑[/color]
[img]https://tu.wnflb2023.com/i/2026/05/24/172800.png[/img]
[color=#0000ff][font=-apple-system, BlinkMacSystemFont, "]切到已发布应用程序路由标签,然后我们添加一个应用程序路由[/font]
[/color]
[img]https://tu.wnflb2023.com/i/2026/05/24/172833.png[/img]
[color=#0000ff][font=-apple-system, BlinkMacSystemFont, "]子域名看你自己喜好填写,域名选择你托管的域名,类型HTTP,URL填写New API容器的IP地址和端口[/font]
[/color]
[img]https://tu.wnflb2023.com/i/2026/05/24/172904.png[/img]
[color=#0000ff][font=-apple-system, BlinkMacSystemFont, "]mcp-proxy-server也一样[/font]
[/color]
[img=1783,729]https://tu.wnflb2023.com/i/2026/05/24/172932.png[/img]
[color=#0000ff]配置以后可能因为DNS同步的关系,你本地不一定能立即访问,几秒钟到几个小时都是正常的.[/color]
[color=#0000ff]确定解析生效了以后我们就可以去Cherry Studio里,将之前演示用的SSH隧道的本地地址,换成域名从公网访问了.[/color]
[img]https://tu.wnflb2023.com/i/2026/05/24/173013.png[/img][size=5][color=#0000ff]OK,大功告成!至此你已经拥有了属于自己的API网关,MCP网关.你可以把大量的渠道添加进New API或者GPT-Load,然后对外统一一个URL和KEY来访问,喜欢的MCP服务器也可以全部放进mcp-proxy-server这个容器里运行,你的任何AI聊天客户端都只需要访问mcp-proxy-server提供的SSE或者Stremable HTTP接口即可,All in One!而且SSE和Stremable HTTP接口是同时提供,不是只能用一个,你2个同时用都行.避免了很多手机端的AI聊天客户端只支持SSE的尴尬场面,因为有的MCP网关只支持Streamable HTTP.[/color][/size]