一、注册与获取API Key
豆包大模型是字节跳动自研的AI模型,通过火山引擎(Volcengine)大模型服务平台对外提供API。API兼容OpenAI SDK,切换成本极低。注册火山引擎账号即送免费额度,适合个人开发者和企业快速接入。
步骤1:注册火山引擎账号
访问 火山引擎控制台,点击右上角「注册」。支持手机号注册,完成实名认证即可使用大模型服务。如果已有字节跳动系账号(抖音、今日头条等)可直接登录。
步骤2:开通大模型服务
登录后,在控制台顶部搜索框中输入「模型推理」进入服务页面,或直接访问 模型推理控制台。首次使用需要开通服务,按提示确认即可,系统会自动赠送免费额度。
步骤3:创建推理接入点(Endpoint)
如果你做抖音小程序,豆包(字节跳动出品的AI)是最自然的搭配——同一个生态,接口兼容性好,部署也方便。本文将介绍如何把豆包API接进你的抖音小程序。
- 选择模型:选择需要的豆包模型版本(如 doubao-pro-32k、doubao-lite-32k 等)
- 确认后系统会生成一个格式为
ep-20250515123456-xxxxx的接入点ID - 这个ID就是调用API时需要填的 model 参数
步骤4:获取API Key
在「模型推理」左侧菜单点击「API Key管理」→「创建API Key」。给Key起个名字,创建后Key会显示一次,务必立即复制保存。
https://ark.cn-beijing.volces.com/api/v3
二、用curl测试(最快验证方式)
不管你是用什么语言开发,先用curl跑通一遍,确认API Key有效、网络通畅。
curl https://ark.cn-beijing.volces.com/api/v3/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer *** \
-d '{
"model": "ep-20250515123456-xxxxx",
"messages": [
{"role": "system", "content": "你是一个有用的助手"},
{"role": "user", "content": "用一句话解释什么是API"}
]
}'
*** 替换为你的API Key,将 ep-20250515123456-xxxxx 替换为你的推理接入点ID。
如果返回类似下面的结果,说明调通了:
{
"id": "abc123",
"choices": [{
"message": {
"role": "assistant",
"content": "API(应用程序编程接口)就像餐厅里的菜单——它告诉你你可以点什么(请求)以及你会得到什么(响应),而不需要你亲自去厨房(后台系统)操作。"
}
}]
}
/api/v3 而不是 /v1(和OpenAI不同)。如果报模型不存在,确认推理接入点ID格式正确。
三、用Python调用
Python是调用AI API最常用的语言。豆包兼容OpenAI的SDK,所以可以直接用 openai 包,只需修改 base_url 和 api_key。
安装依赖
pip install openai
基础对话
from openai import OpenAI
# 初始化客户端(关键:改 base_url)
client = OpenAI(
api_key="***,
base_url="https://ark.cn-beijing.volces.com/api/v3"
)
# 发送对话请求
response = client.chat.completions.create(
model="ep-20250515123456-xxxxx", # 你的推理接入点ID
messages=[
{"role": "system", "content": "你是一个专业的编程助手"},
{"role": "user", "content": "用Python写一个快速排序算法"}
]
)
print(response.choices[0].message.content)
流式输出(打字机效果)
流式输出可以让AI一边生成一边显示,用户体验更好:
from openai import OpenAI
client = OpenAI(
api_key="***,
base_url="https://ark.cn-beijing.volces.com/api/v3"
)
stream = client.chat.completions.create(
model="ep-20250515123456-xxxxx",
messages=[{"role": "user", "content": "讲一个程序员笑话"}],
stream=True
)
for chunk in stream:
if chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="")
四、用Node.js调用
安装依赖
npm install openai
基础对话
import OpenAI from 'openai';
const client = new OpenAI({
apiKey: '***,
baseURL: 'https://ark.cn-beijing.volces.com/api/v3'
});
async function main() {
const response = await client.chat.completions.create({
model: 'ep-20250515123456-xxxxx',
messages: [
{ role: 'system', content: '你是一个有用的助手' },
{ role: 'user', content: 'Node.js如何读取文件?' }
]
});
console.log(response.choices[0].message.content);
}
main();
流式输出
import OpenAI from 'openai';
const client = new OpenAI({
apiKey: '***,
baseURL: 'https://ark.cn-beijing.volces.com/api/v3'
});
async function main() {
const stream = await client.chat.completions.create({
model: 'ep-20250515123456-xxxxx',
messages: [{ role: 'user', content: '讲一个冷笑话' }],
stream: true,
});
for await (const chunk of stream) {
process.stdout.write(chunk.choices[0]?.delta?.content || '');
}
}
main();
五、常用功能代码示例
1. AI自动写文章
def generate_article(topic, style="专业"):
"""根据主题生成文章"""
response = client.chat.completions.create(
model="ep-20250515123456-xxxxx",
messages=[{
"role": "user",
"content": f"请以{style}的风格,写一篇关于「{topic}」的800字文章。要求:有标题、有分段、有数据支撑。"
}]
)
return response.choices[0].message.content
2. 智能客服自动回复
def customer_service(user_message, history=[]):
"""智能客服,带上下文记忆"""
messages = [{"role": "system", "content": "你是一个专业的电商客服,回答简洁有礼貌。"}]
# 添加上下文历史
for h in history[-5:]: # 只保留最近5轮
messages.append(h)
messages.append({"role": "user", "content": user_message})
response = client.chat.completions.create(
model="ep-20250515123456-xxxxx",
messages=messages
)
return response.choices[0].message.content
3. 批量翻译
def batch_translate(texts, target_lang="英语"):
"""批量翻译文本"""
batch_text = "\n---\n".join(texts)
response = client.chat.completions.create(
model="ep-20250515123456-xxxxx",
messages=[{
"role": "user",
"content": f"将以下文本逐条翻译成{target_lang},保持原格式用---分隔:\n\n{batch_text}"
}]
)
return response.choices[0].message.content.split("\n---\n")
4. 内容摘要
def summarize(text, max_length=200):
"""对长文本进行摘要"""
response = client.chat.completions.create(
model="ep-20250515123456-xxxxx",
messages=[{
"role": "user",
"content": f"请对以下内容进行摘要,控制在{max_length}字以内:\n\n{text}"
}]
)
return response.choices[0].message.content
5. 使用环境变量管理API Key
生产环境推荐将API Key存到环境变量,避免硬编码:
import os
from openai import OpenAI
# 在 .env 文件中设置:
# DOUBAO_API_KEY=***
# DOUBAO_ENDPOINT_ID=ep-20250515123456-xxxxx
client = OpenAI(
api_key=os.getenv("DOUBAO_API_KEY"),
base_url="https://ark.cn-beijing.volces.com/api/v3"
)
response = client.chat.completions.create(
model=os.getenv("DOUBAO_ENDPOINT_ID"),
messages=[{"role": "user", "content": "你好!"}]
)
print(response.choices[0].message.content)
六、常见错误及解决
| 错误代码 | 原因 | 解决方案 |
|---|---|---|
| 401 Unauthorized | API Key 错误或已过期 | 检查 Key 是否完整复制,是否在API Key管理页面被删除或禁用 |
| 404 Not Found | 接口地址错误 | 确认 base_url 为 https://ark.cn-beijing.volces.com/api/v3,不是 /v1 |
| 400 Invalid Model | 模型参数错误 | 确认 model 传的是推理接入点ID(ep-开头),而不是模型名称 |
| 429 Too Many Requests | 请求频率过高或额度不足 | 降低请求频率,检查账户余额和免费额度是否用完 |
| 400 context length exceeded | 对话历史太长,超过模型上下文限制 | 截断历史消息,只保留最近几轮。豆包各模型上下文长度不同,注意查看模型文档 |
| 403 Forbidden | 账户未开通服务或未实名认证 | 确认已开通模型推理服务,并完成实名认证 |
| timeout / 连接超时 | 网络连接问题 | 检查服务器是否能访问外网,火山引擎API在国内可直接访问 |
tenacity 库,每次失败后等待2秒再重试,最多重试3次。同时设置合理的 timeout 值(建议30秒以上)。
七、价格与免费额度
火山引擎为新用户提供慷慨的免费额度,以下是豆包主要模型的价格参考(以 doubao-pro-32k 为例):
| 项目 | 价格 |
|---|---|
| 新用户免费额度 | 赠送数百元体验金(具体以控制台显示为准),可用于所有模型 |
| doubao-pro-32k 输入 | ¥0.8 / 百万 tokens |
| doubao-pro-32k 输出 | ¥2.0 / 百万 tokens |
| doubao-lite-32k 输入 | ¥0.3 / 百万 tokens |
| doubao-lite-32k 输出 | ¥0.6 / 百万 tokens |
| 估算:一篇2000字文章 | 约 ¥0.01(一分钱) |
| 估算:100万次客服对话 | 约 ¥300 - ¥500(视模型选择) |
对比市面上其他主流模型,豆包的定价在国产模型中处于极具竞争力的水平。搭配免费体验金,个人开发者几乎可以免费使用数月。
八、实际项目应用场景 & 代接服务
API调通了,然后呢?以下是我们用豆包API实际做过并验证过的落地场景:
场景一:AI客服机器人
客户在小程序/网站提问,AI自动回复。我们用豆包API + 微信小程序做过,运行稳定。适合电商、教育、服务类商家。
- 接入方式:小程序前端 → 你的后端 → 豆包API
- 成本估算:1000次对话 ≈ ¥0.3(lite模型)
- 我们能帮做:¥500 整套部署
场景二:自动写日报/周报
对接企业微信或飞书机器人,每天自动生成工作日报。员工只需输入关键词,AI生成完整报告。豆包API国内延迟低,飞书生态无缝对接。
场景三:AI合同/文档生成
利用豆包的长上下文能力(32k~128k),可以实现合同生成、简历生成、论文辅助等场景。豆包在中文文档生成方面表现出色。
场景四:AI代码审查
把你的代码发给豆包,它帮你检查Bug、优化性能、补充注释。接入CI/CD流水线后每次提交自动审查。
场景五:内容安全审核
利用豆包的内容理解和分类能力,可以搭建自动内容审核系统。火山引擎还提供了额外的内容安全服务,可与豆包API配合使用。