Skip to main content

基础对话

最简单的 API 调用,实现纯文本对话:
基础对话请求
curl -X POST https://huajune.duliday.com/api/v1/chat \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "anthropic/claude-3-7-sonnet-20250219",
    "messages": [
      {
        "role": "user",
        "content": "你好,请介绍一下你自己"
      }
    ],
    "stream": false
  }'
重要:必须显式设置 stream: false 以获得非流式响应,否则 API 默认返回流式输出。

多轮对话

通过传递完整的对话历史实现上下文连贯的多轮对话:
多轮对话示例
const messages = [
  { role: "user", content: "1+1等于几?" },
  { role: "assistant", content: "1+1等于2" },
  { role: "user", content: "那再加3呢?" },
];

const response = await fetch("https://huajune.duliday.com/api/v1/chat", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${apiKey}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    model: "anthropic/claude-3-7-sonnet-20250219",
    messages: messages,
    stream: false,
  }),
});
AI 会根据完整的对话历史理解上下文,生成连贯的回复(“等于5”)。

自定义系统提示词

通过 systemPrompt 自定义 AI 的角色和行为:
系统提示词配置
{
  "model": "anthropic/claude-3-7-sonnet-20250219",
  "systemPrompt": "你是一个专业的Python编程导师,擅长用简单易懂的语言解释复杂的编程概念。回复时请使用中文,并提供代码示例。",
  "messages": [
    {
      "role": "user",
      "content": "什么是装饰器?"
    }
  ],
  "stream": false
}

查看更多系统提示词配置

了解如何使用预定义的系统提示词类型和自定义配置

流式 vs 非流式

默认行为:如果省略 stream 参数,API 默认使用流式输出stream: true)。如需非流式响应,必须显式设置 stream: false

非流式输出

一次性返回完整响应,适合后台处理场景:
非流式配置
{
  "stream": false  // 必须显式设置为 false
}
响应格式:
非流式响应
{
  "success": true,
  "data": {
    "messages": [
      {
        "id": "msg_abc123",
        "role": "assistant",
        "parts": [
          {
            "type": "text",
            "text": "完整的回复内容...",
            "state": "done"
          }
        ]
      }
    ],
    "usage": {
      "inputTokens": 15,
      "outputTokens": 45,
      "totalTokens": 60,
      "reasoningTokens": 0,         // 可选:推理 token 数(某些模型支持)
      "cachedInputTokens": 0        // 可选:缓存的输入 token 数
    },
    "tools": {
      "used": [],                   // 已使用的工具列表
      "skipped": []                 // 跳过的工具列表
    }
  }
}
usage 字段
  • inputTokens: 输入 token 数量
  • outputTokens: 输出 token 数量
  • totalTokens: 总 token 数量
  • reasoningTokens(可选): 推理 token 数量(仅某些模型支持,如 o1 系列)
  • cachedInputTokens(可选): 缓存的输入 token 数量(某些提供商支持缓存优化)
tools 字段
  • used: 本次对话中实际使用的工具列表
  • skipped: 因配置问题被跳过的工具列表(见上下文策略

流式输出

实时返回生成的内容,提供更好的用户体验:
流式配置
{
  "stream": true  // API 默认值,可省略
}

查看完整流式输出指南

了解如何处理流式响应、SSE 事件格式和最佳实践

完整示例

async function chat(message) {
  const response = await fetch("https://huajune.duliday.com/api/v1/chat", {
    method: "POST",
    headers: {
      Authorization: `Bearer ${process.env.HUAJUNE_API_KEY}`,
      "Content-Type": "application/json",
    },
    body: JSON.stringify({
      model: "anthropic/claude-3-7-sonnet-20250219",
      systemPrompt: "你是一个友好的AI助手",
      messages: [{ role: "user", content: message }],
      stream: false,  // 显式设置非流式输出
    }),
  });

  const data = await response.json();

  // 提取回复文本
  return data.data.messages[0].parts[0].text;
}

// 使用示例
const reply = await chat("你好!");
console.log(reply);
最佳实践:在生产环境中添加错误处理,检查 response.okdata.success,并处理可能的异常情况。

下一步