必须通过自建代理服务调用豆包大模型,禁止前端直连;先完成火山引擎实名认证、创建api密钥并开通doubao-lite-32k模型获取endpoint id;再用cloudflare workers或本地flask部署代理;app端向代理发送openai格式请求并解析响应。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

要在自己的手机APP里调用豆包大模型的文本生成能力,必须绕过前端直连火山引擎API的安全限制,通过自建代理服务中转请求,否则会因跨域和密钥泄露被拦截或封禁。
第一步:完成火山引擎侧基础准备
打开火山引擎官网(console.volcengine.com),用手机号注册并登录;未实名认证的账号无法开通模型服务,【必须完成个人实名认证】,否则后续所有步骤都会卡在模型开通环节。
登录后,在顶部搜索框输入“火山方舟”进入控制台;左侧菜单点击「API 密钥管理」→「创建 API Key」;名称可填 app-proxy-key,权限选“读写”,生成后立即复制保存——该密钥仅显示一次,格式为 ek-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 或 apikey-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx。
进入「模型广场」,搜索 doubao-lite-32k(免费、响应快、适合APP轻量调用);点击「开通服务」,状态变为“已启用”;再点击该模型名称,复制页面顶部显示的 Endpoint ID(以 ep- 开头,如 ep-m-20260801xxxxxx-xxxxxx)。
第二步:部署一个最小化代理服务
你不能把 API Key 写进 APP 安装包,否则任何用户反编译都能拿到密钥,直接盗用你的额度甚至被恶意刷量。必须用服务器做一层转发。
方法一:使用 Cloudflare Workers 部署(零服务器运维)
访问 https://dash.cloudflare.com → 创建 Worker → 粘贴以下精简代码:
export default { async fetch(request, env) { const url = new URL(request.url); if (url.pathname === '/v1/chat/completions') { const body = await request.json(); const res = await fetch('https://ark.cn-beijing.volces.com/api/v3/chat/completions', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': `Bearer ${env.DOUBAO_API_KEY}` }, body: JSON.stringify({ model: env.DOUBAO_EP_ID, ...body }) }); return res; } return new Response('Not found', { status: 404 }); } };
在环境变量中添加 DOUBAO_API_KEY 和 DOUBAO_EP_ID,值分别填你上一步复制的密钥和 Endpoint ID;保存并部署,获得类似 https://yourname.xxxx.workers.dev 的代理地址。
方法二:本地快速验证用 Python Flask(仅测试,不可上线)
安装 flask:pip install flask
新建 app.py,写入:
from flask import Flask, request, jsonify
import requests
app = Flask(__name__)
@app.route('/v1/chat/completions', methods=['POST'])
def proxy():
data = request.get_json()
res = requests.post(
'https://ark.cn-beijing.volces.com/api/v3/chat/completions',
headers={'Authorization': 'Bearer your_apikey_here', 'Content-Type': 'application/json'},
json={'model': 'ep-your-endpoint-id', **data}
)
return jsonify(res.json()), res.status_code
if __name__ == '__main__':
app.run(host='0.0.0.0:5000')
运行 python app.py,代理地址即为 http://localhost:5000/v1/chat/completions;注意:此方式密钥硬编码在文件里,【绝对不可用于生产环境】。
第三步:APP端发起标准 OpenAI 兼容请求
第一步:在 APP 工程中引入网络库(Android 用 OkHttp,iOS 用 URLSession,Flutter 用 http 包)。
第二步:构造请求体,发送到你的代理地址(不是火山引擎原始地址):
POST /v1/chat/completions
Host: your-proxy-domain.com
Content-Type: application/json
{ "model": "doubao-lite-32k", "messages": [{ "role": "user", "content": "你好,请用一句话介绍自己" }] }
第三步:解析返回的 JSON,提取 choices[0].message.content 字段内容即可展示给用户。
第四步:在 APP 设置页加入“清空对话历史”功能,每次新会话都重置 messages 数组,避免 contextWindow 超限(doubao-lite-32k 上限为 32768 token)。











