一、注册与获取API Key

豆包大模型是字节跳动自研的AI模型,通过火山引擎(Volcengine)大模型服务平台对外提供API。API兼容OpenAI SDK,切换成本极低。注册火山引擎账号即送免费额度,适合个人开发者和企业快速接入。

步骤1:注册火山引擎账号

访问 火山引擎控制台,点击右上角「注册」。支持手机号注册,完成实名认证即可使用大模型服务。如果已有字节跳动系账号(抖音、今日头条等)可直接登录。

步骤2:开通大模型服务

登录后,在控制台顶部搜索框中输入「模型推理」进入服务页面,或直接访问 模型推理控制台。首次使用需要开通服务,按提示确认即可,系统会自动赠送免费额度。

步骤3:创建推理接入点(Endpoint)

如果你做抖音小程序,豆包(字节跳动出品的AI)是最自然的搭配——同一个生态,接口兼容性好,部署也方便。本文将介绍如何把豆包API接进你的抖音小程序。

  • 选择模型:选择需要的豆包模型版本(如 doubao-pro-32kdoubao-lite-32k 等)
  • 确认后系统会生成一个格式为 ep-20250515123456-xxxxx 的接入点ID
  • 这个ID就是调用API时需要填的 model 参数
⚠️ 重要:豆包API的 model 参数不是模型名称(如"doubao-pro"),而是推理接入点ID(以 ep- 开头)。每个接入点对应一个固定的模型版本和配置。创建后请复制保存。

步骤4:获取API Key

在「模型推理」左侧菜单点击「API Key管理」→「创建API Key」。给Key起个名字,创建后Key会显示一次,务必立即复制保存

💡 提示:豆包API兼容OpenAI的SDK格式,只需修改 base_url 和 api_key 即可。base_url 固定为:https://ark.cn-beijing.volces.com/api/v3

二、用curl测试(最快验证方式)

不管你是用什么语言开发,先用curl跑通一遍,确认API Key有效、网络通畅。

bash
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。

如果返回类似下面的结果,说明调通了:

json
{
  "id": "abc123",
  "choices": [{
    "message": {
      "role": "assistant",
      "content": "API(应用程序编程接口)就像餐厅里的菜单——它告诉你你可以点什么(请求)以及你会得到什么(响应),而不需要你亲自去厨房(后台系统)操作。"
    }
  }]
}
⚠️ 注意:如果curl报401,先确认API Key是否正确复制(不要多空格)。如果报404,检查 base_url 末尾是否为 /api/v3 而不是 /v1(和OpenAI不同)。如果报模型不存在,确认推理接入点ID格式正确。

三、用Python调用

Python是调用AI API最常用的语言。豆包兼容OpenAI的SDK,所以可以直接用 openai 包,只需修改 base_url 和 api_key。

安装依赖

bash
pip install openai

基础对话

python
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一边生成一边显示,用户体验更好:

python
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调用

安装依赖

bash
npm install openai

基础对话

javascript
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();

流式输出

javascript
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自动写文章

python
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. 智能客服自动回复

python
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. 批量翻译

python
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. 内容摘要

python
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存到环境变量,避免硬编码:

python
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在国内可直接访问
💡 最佳实践:在生产环境中建议添加重试机制。Python可以用 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(视模型选择)

对比市面上其他主流模型,豆包的定价在国产模型中处于极具竞争力的水平。搭配免费体验金,个人开发者几乎可以免费使用数月。

💰 省钱技巧:对于简单任务(如分类、提取关键词)使用 doubao-lite 即可,只有 pro 版本的1/3价格。复杂推理任务(如代码生成、长文写作)再用 doubao-pro。

八、实际项目应用场景 & 代接服务

API调通了,然后呢?以下是我们用豆包API实际做过并验证过的落地场景:

场景一:AI客服机器人

客户在小程序/网站提问,AI自动回复。我们用豆包API + 微信小程序做过,运行稳定。适合电商、教育、服务类商家。

  • 接入方式:小程序前端 → 你的后端 → 豆包API
  • 成本估算:1000次对话 ≈ ¥0.3(lite模型)
  • 我们能帮做:¥500 整套部署

场景二:自动写日报/周报

对接企业微信或飞书机器人,每天自动生成工作日报。员工只需输入关键词,AI生成完整报告。豆包API国内延迟低,飞书生态无缝对接。

场景三:AI合同/文档生成

利用豆包的长上下文能力(32k~128k),可以实现合同生成、简历生成、论文辅助等场景。豆包在中文文档生成方面表现出色。

场景四:AI代码审查

把你的代码发给豆包,它帮你检查Bug、优化性能、补充注释。接入CI/CD流水线后每次提交自动审查。

场景五:内容安全审核

利用豆包的内容理解和分类能力,可以搭建自动内容审核系统。火山引擎还提供了额外的内容安全服务,可与豆包API配合使用。