Mock LLM API 指南

创建免费的 LLM 流式端点,模拟 OpenAI、Claude 和其他 AI 提供商。在不消耗数千美元 API 调用费用的情况下构建和测试 AI 功能。

快速开始

创建 Mock LLM 流式端点只需不到 30 秒。按照以下简单步骤操作:

  1. 1

    访问 LLM Mock 页面

    前往 mockapi.dog/llm-mock。系统会自动为你的端点生成唯一的 6 位字符代码。

  2. 2

    选择 LLM 提供商配置

    选择要模拟的提供商响应格式:

    • OpenAI - Chat Completions 或 Responses API 格式,根据 SDK 调用的路径自动选择
    • Anthropic Claude - Messages API 流式格式
    • 通用流式 - 与提供商无关的 token 流
    • 通用 JSON - 简单 JSON 响应(无流式)
  3. 3

    选择内容模式

    选择如何生成响应内容:

    • 生成式 - 自动生成类 LLM 文本(聊天、技术或 Markdown 风格)
    • 静态 - 原样使用你提供的文本
    • 混合 - 你的文本后接生成的延续内容
  4. 4

    配置 Token 生成(可选)

    对于生成式或混合模式,设置最小和最大 token(10-2000,默认 100-300)。生成的文本长度将在这些值之间随机变化。静态模式不需要此设置。

  5. 5

    完成验证并保存

    完成 Turnstile 验证,然后点击 "保存 Mock 端点"。你的端点 URL 会自动复制!

    https://abc123.mockapi.dog/v1/chat/completions

就这样!立即开始流式传输

你的端点已准备好使用。将你的 OpenAI/Claude baseURL 替换为你的 Mock 端点即可开始测试。无需身份验证或 API 密钥。

成本问题

真实的 LLM API 价格不菲。在开发、测试和原型设计期间,成本可能迅速失控。以下是使用真实提供商的费用:

OpenAI GPT-4

昂贵
输入$10 / 100 万 token
输出$30 / 100 万 token

示例: 测试聊天机器人 1000 次对话(每次平均 500 token)= $20+

Anthropic Claude

高昂
输入$8 / 100 万 token
输出$24 / 100 万 token

CI/CD 流水线: 每天运行 100 次测试 = $300+/月

使用 MockAPI Dog:$0

用于开发和测试的免费流式响应。在开发阶段节省数千美元。仅在准备投入生产时切换到真实 API。

为什么使用 LLM Mock API?

节省费用

避免在开发期间花费数千美元。在不消耗 API 额度的情况下测试你的 UI、流式逻辑和错误处理。

  • 无需 API 密钥或账单设置
  • 开发期间免费请求
  • 非常适合独立开发者和初创公司

即时测试

即时测试流式响应、UI 动画和错误状态,无需等待真实模型的延迟,也不受提供商速率限制。

  • 可配置的响应速度和 token
  • 测试边界情况和错误场景
  • 实时检查应用发送的请求

多种提供商

在不管理多个 API 密钥的情况下,使用不同的 LLM 提供商测试你的应用。轻松在 OpenAI、Claude 和通用格式之间切换。

  • OpenAI 兼容端点
  • 支持 Anthropic Claude 格式
  • 通用 SSE 流式格式

CI/CD 集成

在 CI/CD 流水线中运行自动化测试,无需担心 API 成本或速率限制。在每次提交时测试你的 AI 功能。

  • 无需身份验证
  • 一致、可预测的响应
  • 快速执行,快速反馈

支持的提供商

MockAPI Dog 支持流行 LLM 提供商的流式格式。只需将端点设置为你首选 SDK 中的 baseURL。

OpenAI 格式

GPT

兼容官方 OpenAI SDK。同一个端点同时响应 Chat Completions 和 Responses API,支持流式和非流式。响应中的模型为 gpt-5.4;使用 Chat Completions 时,stream_options.include_usage 会追加最后一个 usage 数据块。

兼容模型:
gpt-5.4gpt-5.4-minigpt-5.1gpt-4.1

Anthropic 格式

Claude

兼容官方 Anthropic SDK。模拟 Messages API,支持流式和非流式,事件顺序与 SDK 预期一致。响应中的模型为 claude-sonnet-5。

兼容模型:
claude-opus-5claude-sonnet-5claude-haiku-4-5claude-opus-4-8

通用 SSE 格式

通用

标准服务器发送事件(SSE)。每个事件携带 {"token": "..."},流以 {"done": true} 结束。可与任何流式客户端配合使用,或构建自己的自定义集成。

使用场景:
  • 自定义 LLM 集成
  • 测试 EventSource 实现
  • 学习流式协议

请求如何到达你的端点

SDK 会在 baseURL 后追加自己的路径。MockAPI Dog 在匹配前会移除这些后缀,因此请将 baseURL 设置为与你保存的 URL 完全一致。

OpenAI 配置会移除:
/v1/chat/completions/chat/completions/v1/responses/responses
Anthropic 配置会移除:
/v1/messages/messages
POST https://xyz789.mockapi.dog/llm/chat/completions → /llm
  • 通用配置会精确匹配保存的路径,因此请直接调用该 URL。
  • LLM 端点保存为 POST,即所有 SDK 使用的方法。

流式还是 JSON?

当请求体包含 "stream": true 时,响应会流式传输。如果请求体没有 stream 字段,则在 Accept 请求头包含 text/event-stream 时流式传输。否则返回单个 JSON 响应。

内容模式

选择 Mock LLM 端点如何生成响应内容。每种模式对流式文本提供不同程度的控制。

生成式

自动生成不同风格的类 LLM 文本。可选择聊天(对话语调)、技术(编程相关)或 Markdown(带列表和代码块的格式化文本)。

最适合: 无需编写自定义内容的真实测试、UI 动画、通用原型设计

静态

使用你提供的精确文本作为响应。文本完全按原样流式传输,不进行任何生成或修改。

最适合: 特定测试场景、精确的预期响应、边界情况测试

混合

将你提供的文本与自动生成的延续内容结合。你的文本先流式传输,然后是生成的类 LLM 内容。

最适合: 可控的开头加上真实的延续,测试部分响应

生成内容的文本风格

使用生成式或混合模式时,可以选择聊天(对话)、技术(编程相关)或 Markdown(包含格式化、列表、代码块)风格。

Token 生成设置

微调 Mock LLM 端点如何生成和流式传输 token,以满足你的测试需求。

Token 数量

设置要生成的 token 数量,按每个 token 约 4 个字符估算。适用于测试不同的响应长度。

短响应50-100 tokens
中等响应200-500 tokens
长响应1000-2000 tokens

流式速度

文本以每块 5-20 个字符的方式流式传输。设置块之间的最小和最大延迟(10-500ms),每次延迟在该范围内随机选取。留空时默认为 30-120ms。

快速30-60ms
默认30-120ms
慢速100-200ms

专业提示

使用不同速度进行测试,确保你的 UI 能优雅地处理快速和慢速流式传输。真实的 LLM API 响应时间可能差异很大。

代码示例

以下是如何在流行的 SDK 和库中使用你的 Mock LLM 端点。

OpenAI SDK

用你的 Mock 端点替换 baseURL。无需 API 密钥!

import OpenAI from 'openai';

const openai = new OpenAI({
  baseURL: 'https://xyz789.mockapi.dog/llm',
  apiKey: 'dummy-api-key', // Mock endpoint doesn't check API keys
});

async function main() {
  const stream = await openai.chat.completions.create({
    model: 'gpt-5.4',
    messages: [{ role: 'user', content: 'Hello!' }],
    stream: true,
  });

  for await (const chunk of stream) {
    const content = chunk.choices[0]?.delta?.content || '';
    process.stdout.write(content);
  }
}

main();

OpenAI SDK(Responses API)

同一个端点也响应 Responses API。从 response.output_text.delta 事件中读取文本。

import OpenAI from 'openai';

const openai = new OpenAI({
  baseURL: 'https://xyz789.mockapi.dog/llm',
  apiKey: 'dummy-api-key', // Mock endpoint doesn't check API keys
});

async function main() {
  const stream = await openai.responses.create({
    model: 'gpt-5.4',
    input: 'Hello!',
    stream: true,
  });

  for await (const event of stream) {
    if (event.type === 'response.output_text.delta') {
      process.stdout.write(event.delta);
    }
  }
}

main();

Anthropic SDK

通过设置自定义 baseURL 与 Anthropic SDK 一起使用。

import Anthropic from '@anthropic-ai/sdk';

const anthropic = new Anthropic({
  baseURL: 'https://xyz789.mockapi.dog/claude',
  apiKey: 'dummy-api-key', // Mock endpoint doesn't check API keys
});

async function main() {
  const stream = await anthropic.messages.stream({
    model: 'claude-sonnet-5',
    max_tokens: 1024,
    messages: [{ role: 'user', content: 'Hello!' }],
  });

  for await (const chunk of stream) {
    if (chunk.type === 'content_block_delta' && chunk.delta.type === 'text_delta') {
      process.stdout.write(chunk.delta.text);
    }
  }
}

main();

通用 Fetch(SSE)

与原生 JavaScript/TypeScript 一起使用,获得最大的灵活性。

async function streamResponse() {
  const response = await fetch('https://xyz789.mockapi.dog/llm/stream', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
    },
    body: JSON.stringify({
      prompt: 'Hello, world!',
      stream: true, // without this (or Accept: text/event-stream) you get plain JSON
    }),
  });

  const reader = response.body?.getReader();
  const decoder = new TextDecoder();

  while (true) {
    const { done, value } = await reader.read();
    if (done) break;

    const chunk = decoder.decode(value);
    const lines = chunk.split('\n');

    for (const line of lines) {
      if (line.startsWith('data: ')) {
        try {
          const json = JSON.parse(line.slice(6));
          if (json.done) return;
          console.log(json.token);
        } catch (e) {
          // Skip invalid JSON
        }
      }
    }
  }
}

streamResponse();

就这么简单!

只需替换 baseURL 即可使用。你现有的代码无需修改即可工作。

实际使用场景

聊天机器人开发

构建和测试聊天机器人 UI,无需在 API 调用上花费。测试消息线程、流式动画和错误处理。

  • 测试流式消息动画
  • 验证对话线程
  • 调试 UI 边界情况

测试与 QA

运行自动化测试和手动 QA,无 API 成本。一致地测试不同的响应场景和边界情况。

  • CI/CD 中的自动化 E2E 测试
  • 一致的测试数据
  • 快速测试执行

学习与教程

无需花钱即可学习 AI 集成。非常适合教程、课程和教育内容。

  • 学生无需设置 API 密钥
  • 免费练习
  • 安全的学习环境

MVP 和演示

无需前期成本即可构建概念验证和演示。在投资生产 API 之前向投资者和相关方展示你的愿景。

  • 快速原型设计
  • 投资者演示
  • 低成本验证想法

高级功能

Request Inspector

开启日志记录,实时查看应用发送的提示词、请求头和参数。Authorization 和 Cookie 请求头会被脱敏,但 x-api-key 等其他请求头会按原样存储,因此请使用虚拟的 API 密钥。

可配置延迟

在响应开始前添加固定延迟并调整流速,以测试加载状态和超时处理。

错误模拟

让一定比例的请求失败,或通过请求头按需触发错误,可使用 401、429 或 503 等状态码。错误会在流式传输开始前以 JSON 返回,因此 SDK 会将其作为 API 错误抛出。

无需身份验证

Mock 端点不需要 API 密钥或身份验证。非常适合 CI/CD 流水线和公开演示。

故障排除

流式传输不工作

仅当请求体设置了 "stream": true,或没有 stream 字段且 Accept 请求头包含 text/event-stream 时,响应才会流式传输。否则端点返回单个 JSON 响应。另请检查客户端是否以流的方式读取响应。

// Make sure to set stream: true const stream = await openai.chat.completions.create({ stream: true, // This is required! // ... });

响应过快/过慢

打开 "延迟、流速和错误模拟设置",在 "流速" 标签中修改最小和最大延迟。同时检查 "延迟" 标签中是否设置了响应前的固定延迟。

SDK 兼容性问题

确保端点的提供商配置与你的 SDK 匹配(OpenAI SDK 需要 OpenAI 配置,Anthropic SDK 需要 Anthropic 配置)。将 baseURL 设置为你保存的 URL,由 SDK 自行添加路径。

浏览器中的 CORS 错误

Mock 端点配置了宽松的 CORS 请求头。如果仍然出现 CORS 错误,请检查你的请求头,确保未发送受限请求头。

SDK 收到 404 未找到

LLM 端点仅响应发往已保存路径加上 SDK 自带后缀的 POST 请求。404 响应体会显示服务器收到的代码、资源和方法,请将其与你保存的端点进行比对。

请求返回 429 请求过多

每个端点都有每日调用上限。达到上限后,调用会返回 429,响应体中包含上限值和 resetAt 时间(服务器时间午夜)。此外,每个 IP 地址在整个服务中每分钟最多可发送 100 个请求。

提示和最佳实践

使用不同速度进行测试

真实的 LLM API 速度各异。使用快速和慢速流式传输测试你的 UI,确保所有条件下的流畅用户体验。

使用环境变量

将 baseURL 存储在环境变量中。通过更改单个变量在 Mock 和生产 API 之间切换。

// .env.development OPENAI_BASE_URL=https://xyz789.mockapi.dog/llm // .env.production OPENAI_BASE_URL=https://api.openai.com/v1

测试错误场景

不要只测试成功路径。使用错误模拟测试速率限制(429)、身份验证失败(401)和服务中断(503),并使用固定延迟测试超时。

LLM 开发工作流

遵循以下工作流以实现高效的 AI 开发:

  1. 使用 Mock 端点构建 UI 和流式逻辑
  2. 使用不同的内容模式和速度进行全面测试
  3. 在 CI/CD 中使用 Mock 端点运行自动化测试
  4. 仅在最终集成测试时切换到真实 API
  5. 使用生产 API 密钥部署

在生产前验证

在切换到生产 API 之前,在暂存环境中使用真实提供商的 API 验证你的实现,以发现行为上的任何差异。

术语表

LLM(大型语言模型)

像 GPT-4 和 Claude 这样的 AI 模型,可以生成类人的文本响应。示例:OpenAI 的 GPT 系列、Anthropic 的 Claude、Google 的 Gemini。

流式 API

以分块方式发送数据而不是等待完整响应的 API。允许在生成 AI 文本时实时显示。

Token

LLM 中文本的基本单位。大致相当于一个单词或单词片段。LLM 定价通常基于 token 数量。

SSE(服务器发送事件)

一种允许服务器实时向客户端推送数据的技术。LLM API 使用它来流式传输响应。

baseURL

API 请求的基础地址。将其替换为你的 Mock 端点 URL,以将请求重定向到 MockAPI Dog 而不是真实提供商。

提供商

提供 LLM API 的公司,例如 OpenAI(GPT)、Anthropic(Claude)、Google(Gemini)等。

准备好开始构建了吗?

几秒内创建你的第一个 Mock LLM 流式端点。无需注册,无需信用卡,毫无麻烦。在不消耗数千美元 API 调用费用的情况下开始构建 AI 功能。