最后更新时间
Dolphin AI 故障排除:常见的 API 集成错误
Dolphin AI 集成失败通常源于模型 ID 不正确或误解无审查模型如何处理上下文和流式传输。本指南澄清了我们 OpenAI 兼容 API 的具体技术限制,以防止信用额度的浪费和异步工作流的损坏。
关键要点
- 模型 ID 严格为 "uncensored",而非通用厂商名称。
- 输入令牌消耗 100k 上下文,但输出限制为每次请求 16k 令牌。
- SSE 流式传输对于大多数 UI 中的实时令牌显示是必需的。
- JSON 模式需要在请求正文中显式配置 response_format。
假设“无审查”意味着“完全没有过滤器”
无审查并不意味着模型没有限制。它特指模型不会拒绝标准模型可能会阻止的合法成人、争议性或创意主题。我们的无审查 LLM 接受任何提示而不进行道德说教,但它仍然强制执行关于未成年人的硬性内容限制。
例如,如果您请求涉及未成年人的性内容,无论无审查设置如何,API 都会返回拒绝。这是在推理层应用的硬性规则。所有其他合法的成人内容,包括露骨的小说或细致的辩论,都会通过而无需软性过滤。
将上下文窗口与最大输出令牌混淆
上下文窗口为 100,000 个 token,但每次请求的最大输出为 16,000 个 token。对于长文档生成,这一区别至关重要。如果您发送 90k token 的提示词并要求 30k token 的输出,请求将失败或意外截断。
- 最大上下文:100,000 个 Token(输入 + 输出合计)。
- 最大输出:每次请求 16,000 个 token。
- 如果未设置 max_tokens,默认输出:2,048 个令牌。
始终在 API 调用中显式设置 max_tokens。这可以防止令牌使用失控并确保可预测的计费。超出这些限制的错误不会消耗信用,但会破坏您的解析逻辑。
在异步环境中忽略流式响应
我们的 API 支持通过服务器发送事件 (SSE) 进行流式传输。如果您为长生成使用同步客户端,将会遇到超时限制。异步环境期望的是部分 chunk 的流,而不是单个巨大的负载。
每个块的最终负载包含 token 用量数据。这使您可以跟踪实时成本。如果没有流式传输,在大量生成期间,您的 UI 可能会冻结几秒钟。使用
stream = client.chat.completions.create(
model="uncensored",
messages=[{"role": "user", "content": "Tell the story in second person."}],
stream=True,
)
for chunk in stream:
if chunk.choices and chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="", flush=True) 查看正确的客户端处理方式。
请求正文中设置了错误的模型 ID
许多开发者默认使用 "gpt-3.5-turbo" 或 "gpt-4"。我们的 API 要求模型 ID 必须精确为 "uncensored"。发送任何其他 ID 会导致 404 或模型未找到错误。这不是像 GPT 或 Claude 那样的厂商特定模型。
这是一个运行在我们基础设施上的开放权重模型。确保你的 SDK 配置指向 HTTPS://api.dolphinmodelai.com/v1 并使用 "uncensored" 作为模型名称。这是我们提供的唯一模型。
忘记处理 tool_choice 和函数调用格式
支持函数调用,但格式必须符合 OpenAI 标准。如果您希望强制使用工具,必须明确指定 tool_choice。API 接受 tools、tool_choice 以及标准消息格式。
格式错误的工具定义会导致客户端解析错误。确保您的 JSON 模式有效。模型返回结构化 JSON,您的代码必须对其进行解析。使用
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.dolphinmodelai.com/v1", apiKey: process.env.API_KEY });
const resp = await client.chat.completions.create({
model: "uncensored",
messages: [{ role: "user", content: "Draft a villain monologue for my game." }],
});
console.log(resp.choices[0].message.content); 示例的工具定义块。
误解输入和输出定价之间的区别
输入令牌每 1M 个收费 $0.15。输出令牌每 1M 个收费 $0.50。输出令牌的费用是输入令牌的四倍。此比例在大多数 LLM API 中很常见,但会对您的预算产生显著影响。
预充值额度按实际 Token 用量计费。错误和拒绝免费。如果您发送 10k Token 的提示并得到 10k Token 的响应,您需要为两者付费。必须使用加密货币充值。您可以使用 TRC20 上的 USDT 或 Base 上的 USDC 充值。最低充值额为 $20。$50 充值享 +5% 奖励,$100 享 +10%,$200 享 +15%。
未检查 JSON 模式错误的响应格式
JSON 模式要求你将 response_format 设置为 {"type": "json_object"}。如果不这样做,模型可能会返回 Markdown 或文本,从而破坏你的解析器。这是集成失败的常见原因。
确保您的模式严格。如果模式不明确,模型不能保证生成完美的 JSON。使用
from openai import OpenAI
client = OpenAI(base_url="https://api.dolphinmodelai.com/v1", api_key="YOUR_KEY")
resp = client.chat.completions.create(
model="uncensored",
messages=[{"role": "user", "content": "Summarise this thread without softening it."}],
)
print(resp.choices[0].message.content) 查看如何强制 JSON 输出。这可以减少后处理开销。
假设所有 OpenAI SDK 参数完全相同
温度、top_p、stop、seed、presence_penalty 和 frequency_penalty 的工作方式类似于 OpenAI。但是,并非所有边缘情况参数都受支持。我们支持大多数用例所需的核心参数集。
流式传输、函数调用和 JSON 模式完全支持。请查看
curl https://api.dolphinmodelai.com/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [{"role": "user", "content": "Run unit tests for the payment module"}]
}' 基本请求的块。不要假设不支持的参数会被优雅地忽略,它们可能会导致错误。
忽略 8MB 请求体限制
最大请求体大小为 8 MB。如果您发送大文件或大量上下文,可能会超过此限制。这是 API 网关的硬性约束。超过此大小的请求将被立即拒绝。
确保您的负载已压缩或截断。使用
stream = client.chat.completions.create(
model="uncensored",
messages=[{"role": "user", "content": "Tell the story in second person."}],
stream=True,
)
for chunk in stream:
if chunk.choices and chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="", flush=True) 示例以查看如何高效处理长上下文。此限制适用于整个请求,包括标头和正文。常见问题
Dolphin 模型 AI 与官方 GPT API 相同吗?
否。我们是一项独立服务。我们的 API 与 OpenAI 兼容,这意味着它使用相同的端点结构和 SDK,但它提供不同的无限制模型。它不是 GPT、Claude 或其他厂商的模型。您必须更改基础 URL 和模型 ID 才能使用它。
如何充值额度?
我们仅接受加密货币:TRC20 上的 USDT 或 Base 上的 USDC。最低充值为 $20。奖金为:$50 起 +5%,$100 起 +10%,$200 起 +15%。使用 Google 或电子邮件注册即可获取您的密钥。
无限制模型会过滤掉所有内容吗?
否。它仅过滤一个硬性限制:涉及未成年人的性内容。所有其他合法的成人、争议性或创意内容均允许且不会拒绝。这使其成为 NSFW 内容创作和无限制小说的理想选择。
试用信用额度是什么?
新账户可获得 0.50 美元试用额度,有效期为 7 天。每人仅限一次。试用期间的错误和拒绝不会消耗信用额度。
获取您的 API 密钥
注册,复制密钥,更新您的基础 URL。完成。