配置 nginx 反向代理让 Xcode 支持添加字节火山的 AI 接口

Sep 13, 2025 • 预计阅读时间 1 分钟

字节火山提供的 OpenAI 接口链接是 https://ark.cn-beijing.volces.com/api/v3/chat/completions,和 OpenAI 官方使用的 /v1/chat/completions 不兼容。

然而 Xcode 是固定在服务链接后面拼接 /v1/chat/completions:

If you choose another model, it needs to support the Chat Completions API. In addition, Xcode expects the model to support these endpoints that list models and perform completions:

  • {Model provider URL}/v1/models

  • {Model provider URL}/v1/chat/completions

Ref: https://developer.apple.com/documentation/xcode/writing-code-with-intelligence-in-xcode#Set-up-coding-intelligence

使用 Nginx 配置反向代理请求来解决这个问题,让 Xcode 可以使用字节火山的 AI 服务,毕竟参与了字节火山的协作奖励计划有免费的 token 可以使用。

http {

  sendfile on;
  tcp_nodelay on;
  http2 on;

  gzip on;
  gzip_types text/plain text/css application/json application/javascript text/xml application/xml+rss image/svg+xml font/woff2;

  server {
    listen 443 ssl reuseport;
    listen [::]:443 ssl reuseport;

    ssl_certificate /etc/letsencrypt/live/openrouter.me/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/openrouter.me/privkey.pem;

    location = /ark/api/v1/models {
      default_type application/json;
      return 200 '{"object":"list","data":[{"id":"kimi-k2-250905","object":"model","created":1757001600,"owned_by":"moonshot"}]}';
    }

    location /ark/ {
      rewrite ^/ark/api/v1/(.*)$ /api/v3/$1 break;
      
      proxy_set_header Host $proxy_host;
      proxy_ssl_server_name on;
      proxy_set_header X-Real-IP $proxy_protocol_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_pass https://ark.cn-beijing.volces.com;
    }
  }
}

因为字节火山没有实现获取模型列表的接口,所以还需要自己实现一个,参考的是 OpenAI 的官方文档: https://platform.openai.com/docs/api-reference/models/retrieve

配置完成以后,就可以在 Xcode 中添加我们自己的 AI 了:

XcodeNginx
版权声明:如果转发请带上本文链接和注明来源。

lvv.me

iOS/macOS Developer

重置 macOS 的 “程序坞” 设置