中文 ▾
2026-10-30gptsemfiltro.comuncensored
Gptsemfiltro

无审查 LLM API,兼容 OpenAI

获取密钥

ChatGPT API 文档:快速参考与首次调用

大多数聊天 API 都采用 ChatGPT API 普及的请求格式。本页是该站点兼容接口的简短参考,附带可复制粘贴的示例。

展开的连接接口图块和服务器立方体,用于 API 文档的开放式参考书

总结

  1. 基础 URL https://api.gptsemfiltro.com/v1, Bearer 令牌认证,模型 ID 为 uncensored。
  2. 三种方法:聊天补全、响应和模型列表;余额有独立的接口。
  3. 支持流式输出、函数调用和 JSON 模式;上下文为 100,000 个 token。
  4. 429 错误会携带代码:rate_limited 或 concurrency。

本页涵盖内容

如果你搜索的是 chatgpt api documentation,你可能需要 OpenAI 为其自有模型提供的官方文档。本页内容不同:它是本站托管的 OpenAI 兼容 API 的工作参考。该接口运行一个开放权重模型 uncensored,针对合法成人用途进行了优化,能够不拒绝内容。它并非 OpenAI 或其他厂商的官方 API。

请求和响应的结构遵循熟悉的 OpenAI 格式,因此更改基础 URL 和密钥后,官方 SDK 和大多数工具均可使用。完整参考位于 API 文档;本页提供带有可运行示例的快速版本。

连接基础与首次调用

连接基础

项目说明
Base URLhttps://api.gptsemfiltro.com/v1
认证Authorization: Bearer YOUR_KEY
模型 IDuncensored
聊天接口POST /v1/chat/completions
响应接口POST /v1/responses
模型列表GET /v1/models
余额GET /v1/balance 或 GET /v1/dashboard/billing/credit_grants
最大请求体8 MB
上下文窗口100,000 个 token,提示词和补全总计

在 API 密钥页面 获取密钥。新用户可在此一键领取 $0.50 试用额度,有效期 7 天,无需付款。你可以随时重新生成密钥,已充值的账户最多可持有 5 个密钥,并可对其进行标记和撤销。

你的第一次调用

curl https://api.gptsemfiltro.com/v1/chat/completions \
  -H "Authorization: Bearer YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "uncensored",
    "messages": [
      {"role": "system", "content": "You answer in plain language."},
      {"role": "user", "content": "What is a context window?"}
    ],
    "temperature": 0.7
  }'
from openai import OpenAI

client = OpenAI(base_url="https://api.gptsemfiltro.com/v1", api_key="YOUR_KEY")

resp = client.chat.completions.create(
    model="uncensored",
    messages=[
        {"role": "system", "content": "You answer in plain language."},
        {"role": "user", "content": "What is a context window?"},
    ],
)
print(resp.choices[0].message.content)
print(resp.usage)

回复包含 choices[0].message.content 和带有提示词及补全 token 计数的 usage 对象。

请求参数

您将使用的主要参数:

不可用:图像、音频或视频生成、嵌入和微调。该服务仅处理文本。

角色用法与 OpenAI 格式一致。system 消息设置整个聊天的行为,user 消息携带用户输入,assistant 消息包含之前的回复,tool 消息返回函数结果。API 在调用之间不保留记忆,因此每次请求都必须包含你希望模型看到的对话历史。提示词和补全共享 100,000-token 窗口,这意味着长历史会减少回答的可用空间。

流式输出、工具调用和 JSON 模式

流式输出

设置 stream 为 true 并读取传入的事件。每个块包含文本增量,用量在末尾到达。

import OpenAI from "openai";

const client = new OpenAI({
  baseURL: "https://api.gptsemfiltro.com/v1",
  apiKey: process.env.API_KEY,
});

const stream = await client.chat.completions.create({
  model: "uncensored",
  messages: [{ role: "user", content: "List five uses of a context window." }],
  stream: true,
});

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

流式请求会维持其并发槽位,直到流结束,因此请关闭不再需要的流。

工具调用和 JSON 模式

使用 tools 声明函数。当模型想要调用某个函数时,回复将包含 tool_calls 而非文本。你执行该函数并将结果作为 role: "tool" 的消息发回。

import json
from openai import OpenAI

client = OpenAI(base_url="https://api.gptsemfiltro.com/v1", api_key="YOUR_KEY")

tools = [{
    "type": "function",
    "function": {
        "name": "get_weather",
        "description": "Get the weather for a city",
        "parameters": {
            "type": "object",
            "properties": {"city": {"type": "string"}},
            "required": ["city"],
        },
    },
}]

messages = [{"role": "user", "content": "What is the weather in Lisbon?"}]
first = client.chat.completions.create(model="uncensored", messages=messages, tools=tools)
call = first.choices[0].message.tool_calls[0]

messages.append(first.choices[0].message)
messages.append({
    "role": "tool",
    "tool_call_id": call.id,
    "content": json.dumps({"city": "Lisbon", "temp_c": 21}),
})
final = client.chat.completions.create(model="uncensored", messages=messages, tools=tools)
print(final.choices[0].message.content)

在生产环境中,请在读取前检查 tool_calls 是否存在,因为模型可能会以纯文本形式回答。对于不使用工具的结构化输出,添加 "response_format": {"type": "json_object"} 并在提示词中说明你需要 JSON。

限制、错误和标头

限制完整密钥试用密钥
并发请求82
每分钟请求数30060
正文大小8 MB8 MB

超出限制时,API 返回 HTTP 429。错误代码 rate_limited 表示每分钟请求过多;concurrency 表示同时请求过多。临时过载时也会收到 429,带有 Retry-After: 5 标头。失败或被拒绝的请求不收费。

有用的响应标头:X-Request-Id(联系 支持 时引用它)、X-Balance-USD、X-RateLimit-Limit-Requests 和 X-RateLimit-Limit-Concurrency。

Node 中的小型重试辅助函数,等待 Retry-After 中的时间,并在每次尝试时稍微增加退避时间:

async function chat(messages, tries = 4) {
  for (let n = 0; n < tries; n++) {
    const res = await fetch("https://api.gptsemfiltro.com/v1/chat/completions", {
      method: "POST",
      headers: {
        "Authorization": "Bearer " + process.env.API_KEY,
        "Content-Type": "application/json",
      },
      body: JSON.stringify({ model: "uncensored", messages: messages }),
    });
    if (res.status === 429) {
      const wait = Number(res.headers.get("Retry-After") || 5);
      await new Promise(function (r) { setTimeout(r, wait * 1000 * (n + 1)); });
      continue;
    }
    return res.json();
  }
  throw new Error("still rate limited");
}

迁移现有代码和检查余额

将现有代码迁移到此接口

如果您的代码已经调用 OpenAI 风格的聊天接口,迁移工作很小。更改这三个值,其余保持不变:

  1. 基础 URL 变为 https://api.gptsemfiltro.com/v1。
  2. 密钥变为来自 API 密钥页面 的密钥。
  3. 模型变为 uncensored。

然后检查你的代码依赖项。任何基于文本且适合聊天的内容都可以迁移:系统提示词、历史、流式输出、工具调用和 JSON 模式。其他功能在此不存在。没有图像生成、音频或视频、嵌入和微调,因此调用这些路由的代码需要其他提供商。

Responses 接口也可用,适合偏好该格式的客户:

curl https://api.gptsemfiltro.com/v1/responses \
  -H "Authorization: Bearer YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model": "uncensored", "input": "Summarise what a context window is in one sentence."}'

在发布前测试,因为不同的模型在同一提示词下表现不同。拒绝、语气和长度都可能发生变化,因此请重新运行您关心的提示词。

从代码中检查余额

余额有三种获取方式。每个响应都包含 X-Balance-USD 头信息。你也可以调用 GET /v1/balance,或者 OpenAI 风格的 GET /v1/dashboard/billing/credit_grants,部分仪表盘已经知道如何读取该格式。

curl https://api.gptsemfiltro.com/v1/balance \
  -H "Authorization: Bearer YOUR_KEY"

一个实用的模式是在每次调用后读取该头信息并存储,当余额低于你设定的阈值时发出警报。由于额度是预付的且不会过期,余额低只是提示你需要充值,而不是截止日期。

定价一览

输入成本为每 1M token $0.15,输出成本为每 1M token $0.50,从预付额度中扣除。示例:3,000 个输入 token 和 600 个输出 token 的成本为 3,000 x $0.15 / 1M + 600 x $0.50 / 1M = $0.00045 + $0.0003 = $0.00075。充值金额为 $20 至 $500 的整数倍,并享有额外奖励:$50 起 +5%,$100 起 +10%,$200 起 +15%,支持通过 USDT (TRC20) 或 USDC (Base) 支付。更多详情见 定价页面。提示词不用于训练。

首次集成故障排除清单

大多数首次调用失败都源于少数几个原因。在怀疑服务之前,请按顺序排查。

  1. 状态 401。 密钥缺失或拼写错误。打印你的客户端实际发送的头信息,并与 Authorization: Bearer YOUR_KEY 进行比较。如果密钥被粘贴到公共区域,请在 API 密钥页面 重新生成密钥;旧密钥将立即失效。
  2. 状态 404。 路径错误。基础 URL 以 /v1 结尾,SDK 会自动添加 /chat/completions。如果使用纯 HTTP 调用 API,请编写完整路径。
  3. 模型错误。 唯一的模型 ID 是 uncensored。从其他提供商文档复制的名称将不匹配。GET /v1/models 列出了该密钥可用的模型。
  4. 请求过大导致失败。 请求体限制为 8 MB。长历史记录最好在接近该大小之前进行修剪或摘要,而且 100,000-token 窗口由提示词和补全共享。
  5. 间歇性 429。 读取错误代码。concurrency 表示并发请求过多,请降低你的工作线程数。rate_limited 表示每分钟请求过多。Retry-After: 5 头信息表示临时过载,短暂等待即可解决。
  6. 回复被截断。 如果你设置了 max_tokens,回复将在此处停止,且 finish_reason 显示为 length。提高上限或移除该限制。

保留你无法解释的任何调用的 X-Request-Id 值。这是你在联系支持团队时定位特定请求的最快方式。

常见问题

这是官方的 ChatGPT API 吗?

不是。这是一个独立托管的开放权重模型,提供 OpenAI 兼容的接口。它不由 OpenAI 运营。

支持哪些接口?

POST /v1/chat/completions、POST /v1/responses 和 GET /v1/models,以及 /v1/balance 和 /v1/dashboard/billing/credit_grants 处的余额接口。

我需要不同的 SDK 吗?

不是。官方 OpenAI 的 Python 和 Node.js SDK 在更改基础 URL、密钥和模型名称后即可使用。

如何检查剩余额度?

读取任何响应中的 X-Balance-USD 头信息,或调用 GET /v1/balance。

获取 API 密钥

注册,复制密钥,并更新你的基础 URL。设置完成。

获取密钥