字节火山提供的 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
使用 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 了: