第一章 产品介绍

OmniT 是一个大模型调用平台(Model API Gateway),通过统一的接口,为开发者、团队和企业提供对 DeepSeek、通义千问(Qwen)、智谱(GLM)、GPT 系列等主流大模型的稳定访问能力。

无论您是个人开发者还是企业用户,只需申请一个 OmniT API Key,即可:

  • 用同一套代码、同一个地址访问所有支持的模型,随时切换无需改动项目结构
  • 统一账户余额管理,无需在多个 AI 厂商平台分别充值和维护账号
  • 通过国内优化线路访问 OpenAI 等海外模型,无需自行解决网络问题
  • 按实际消耗的 Token 付费,按需充值,适合从小型项目到高并发企业应用

1.1 核心优势

能力

说明

OpenAI 兼容

完全兼容 OpenAI Chat Completions 接口格式,现有代码只需修改 base_url 和 api_key 即可迁移

多模型聚合

DeepSeek / Qwen / GLM / GPT 等 20+ 模型统一接入,一套代码全部覆盖

国内优化线路

自建国内转发节点,DeepSeek / 国内模型平均首 Token 延迟 < 1 秒

弹性计费

按 Token 用量实时扣费,预付费余额制,无月费、无最低消费

稳定高可用

多节点冗余架构,核心模型可用率 ≥ 99.5%,故障自动切换

安全管控

Key 权限精细化设置,可限制可访问模型范围、设置月度用量上限

1.2 适用场景

  • 个人开发者:快速接入多款模型做 Demo、测试,节省注册多账号的麻烦
  • 产品团队:统一 API 出口,方便按项目或按成员统计模型调用成本
  • 企业应用:高并发生产环境,需要负载均衡、故障切换、访问审计
  • AI 工具开发者:构建 Chatbot、Agent、RAG 系统时,一个 Key 管理所有模型依赖

第二章 快速开始

本章帮助您在 5 分钟内完成注册、获取 Key 并发出第一个请求。

2.1 注册与登录

  1. 访问 OmniT 官网 ,点击右上角「注册/登录」
  2. 填写邮箱和密码,或使用手机号快速注册
  3. 完成验证后,自动跳转至控制台首页

2.2 申请 API Key

API Key 是调用 OmniT 接口的唯一凭证,请妥善保管。

  1. 登录控制台,点击左侧菜单「API 密钥管理」
  2. 点击右上角「新建密钥」按钮
  3. 填写密钥备注名称(如「测试项目」「生产环境」),便于区分多个 Key
  4. 选择该 Key 可访问的模型范围(默认全部可用)
  5. 可选:设置月度 Token 用量上限,防止超支
  6. 点击「立即创建」,在弹出框中复制完整 Key

❌ API Key 仅在创建时展示一次,请立即复制保存。若遗失,需删除旧 Key 并重新创建。切勿将 Key 提交到 GitHub 等公开代码仓库。

2.3 账户充值

OmniT 采用预付费余额制,余额不足时调用将返回 402 错误。

  • 进入控制台「费用中心」→「账户充值」
  • 支持支付宝、微信支付
  • 最低单次充值 10 元,余额实时到账
  • 建议开启「低余额提醒」,当余额低于设定阈值时自动发送邮件通知(费用中心 → 消费提醒设置)

2.4 接口地址与认证

OmniT 提供统一的 Base URL,所有模型均通过此地址访问:

# Base URL(固定)

# 认证方式:HTTP Header

Authorization: Bearer sk-omni-xxxxxxxxxxxxxxxx

OmniT Key 格式为 sk-omni- 开头,请勿与原厂 OpenAI Key(sk- 开头)混淆。两者格式相近但不可互换。

2.5 发出第一个请求

以下是最简单的文本对话请求,将 YOUR_KEY 替换为您的真实 Key 后直接运行:

cURL

curl -X POST \

-H "Authorization: Bearer YOUR_KEY" \

-H "Content-Type: application/json" \

-d '{

"model": "deepseek-chat",

"messages": [{"role": "user", "content": "你好,请介绍一下你自己"}]

}'

Python

from openai import OpenAI

client = OpenAI(

api_key="YOUR_KEY",

base_url=" "

)

response = client.chat.completions.create(

model="deepseek-chat",

messages=[{"role": "user", "content": "你好,请介绍一下你自己"}]

)

print(response.choices[0].message.content)

成功响应示例:

{

"id": "chatcmpl-abc123",

"object": "chat.completion",

"model": "deepseek-chat",

"choices": [{

"index": 0,

"message": {

"role": "assistant",

"content": "你好!我是 DeepSeek,一个由深度求索公司开发的 AI 助手..."

},

"finish_reason": "stop"

}],

"usage": {

"prompt_tokens": 12,

"completion_tokens": 38,

"total_tokens": 50

}

}

第三章 模型列表与价格

OmniT 当前支持以下模型系列。所有价格单位为「元 / 百万 Tokens(M Tokens)」,输入与输出分开计费。

📌 总费用计算公式:总费用 = (输入 Tokens × 输入单价) + (输出 Tokens × 输出单价)

3.1 DeepSeek 系列

DeepSeek 由深度求索公司开发,以极高的性价比著称,V3 和 R1 系列在多项基准测试中达到国际顶级水平。

模型 ID

类型

上下文长度

RPM 限制

输入价格

输出价格

deepseek-chat

通用对话

64K

3,000

¥2 / M

¥8 / M

deepseek-reasoner

深度推理

64K

500

¥4 / M

¥16 / M

deepseek-r1-distill-qwen-32b

推理蒸馏

32K

1,000

¥1.5 / M

¥6 / M

deepseek-r1-distill-qwen-14b

推理蒸馏

32K

2,000

¥1 / M

¥3 / M

deepseek-r1-distill-llama-8b

推理蒸馏

32K

3,000

¥0.6 / M

¥2.4 / M

deepseek-r1-distill-qwen-7b

推理蒸馏

32K

5,000

限时免费

限时免费

deepseek-chat 对应 DeepSeek-V3 正式版;deepseek-reasoner 对应 DeepSeek-R1 正式版,适合数学推理、代码分析等需要深度思考的任务。

3.2 Qwen(通义千问)系列

Qwen3 由阿里巴巴开发,在中文理解、代码生成、多语言处理方面表现突出,235B 旗舰版支持独特的「思考模式」。

模型 ID

类型

上下文长度

QPM 限制

输入价格

输出价格

qwen3-235b-a22b

旗舰推理

128K

600

¥4 / M

¥40 / M

qwen3-32b

高性能

128K

600

¥2 / M

¥20 / M

qwq-32b

深度推理

32K

600

¥1.5 / M

¥6 / M

qwen-plus

综合能力

128K

3,000

¥0.8 / M

¥2 / M

qwen-turbo

超长上下文

1M

3,000

¥0.3 / M

¥0.6 / M

qwen-long

长文档

10M

1,000

¥0.5 / M

¥1.5 / M

qwen3-235b-a22b 和 qwen3-32b 支持 enable_thinking 思考模式,开启后模型会先输出推理过程再给出最终答案,详见第四章调用示例。

3.3 GLM(智谱)系列

GLM-4 系列由清华大学智谱 AI 开发,中文能力强,GLM-4-Flash 和 GLM-Z1-Flash 完全免费,适合高频轻量场景。

模型 ID

系列

上下文长度

并发数

输入价格

输出价格

glm-4-flash

GLM-4

128K

1,000

免费

免费

glm-4-flashx

GLM-4

128K

100

¥0.1 / M

¥0.1 / M

glm-4-air

GLM-4

128K

30

¥0.5 / M

¥0.5 / M

glm-4-plus

GLM-4

128K

100

¥5 / M

¥5 / M

glm-4-long

GLM-4

1M

30

¥1 / M

¥1 / M

glm-z1-flash

GLM-Z1

32K

40

免费

免费

glm-z1-air

GLM-Z1

32K

40

¥0.5 / M

¥0.5 / M

glm-z1-airx

GLM-Z1

32K

40

¥5 / M

¥5 / M

✅ glm-4-flash 和 glm-z1-flash 完全免费且并发较高,非常适合用于原型验证、日志分类、批量摘要等对成本敏感的场景。

3.4 OpenAI 系列

OmniT 通过优化海外线路转发 OpenAI 请求,提供比直连更稳定的国内访问体验。价格按实时汇率折算人民币,以控制台显示为准。

模型 ID

类型

上下文长度

输入价格(约)

输出价格(约)

备注

gpt-4o

旗舰多模态

128K

¥17 / M

¥68 / M

支持图片输入

gpt-4o-mini

高性价比

128K

¥1 / M

¥4 / M

推荐日常使用

o3-mini

推理增强

200K

¥8 / M

¥32 / M

适合复杂逻辑

gpt-4-turbo

上一代旗舰

128K

¥70 / M

¥210 / M

gpt-3.5-turbo

经典快速

16K

¥2.5 / M

¥5 / M

低成本首选

⚠️ OpenAI 系列价格受汇率波动影响,上表为参考值。实际计费以控制台账单为准,建议调用前在控制台查看最新价格。

第四章 API 调用详解

4.1 接口规格

属性

接口地址

请求方法

POST

Content-Type

application/json

认证方式

Bearer Token(Header: Authorization: Bearer YOUR_KEY)

响应格式

application/json 或 text/event-stream(流式)

超时建议

非流式请求 60 秒,流式请求 120 秒

4.2 请求参数说明

参数名

类型

必填

默认值

说明

model

string

模型 ID,见第三章模型列表

messages

array

对话消息数组,每项包含 role 和 content

stream

boolean

false

是否启用流式输出(SSE)

max_tokens

integer

模型默认

最大输出 Token 数

temperature

float

1.0

采样温度 0~2,越高越随机,0 表示确定性输出

top_p

float

1.0

核采样概率,与 temperature 建议只调一个

stop

string/array

停止词,遇到后立即停止生成

frequency_penalty

float

0

-2~2,正值抑制重复词频

presence_penalty

float

0

-2~2,正值鼓励引入新话题

n

integer

1

同时生成的候选数量,建议保持 1

user

string

终端用户标识,用于审计和频控

messages 数组中,role 可取值为 system(系统提示词)、user(用户)、assistant(模型),多轮对话时按顺序传入完整历史即可。

4.3 多语言代码示例

Python

安装依赖:pip install openai

from openai import OpenAI

client = OpenAI(

api_key="sk-omni-xxxxxxxxxxxxxxxx",

base_url=" "

)

# 基础对话

response = client.chat.completions.create(

model="deepseek-chat",

messages=[

{"role": "system", "content": "你是一个专业的代码审查专家"},

{"role": "user", "content": "帮我审查以下 Python 代码的性能问题:\ndef fib(n):\n if n<=1: return n\n return fib(n-1)+fib(n-2)"}

],

max_tokens=2048,

temperature=0.3

)

print(response.choices[0].message.content)

print(f'消耗 Tokens: {response.usage.total_tokens}')

Node.js

安装依赖:npm install openai

import OpenAI from 'openai';

const client = new OpenAI({

apiKey: 'sk-omni-xxxxxxxxxxxxxxxx',

baseURL: ' '

});

async function chat() {

const response = await client.chat.completions.create({

model: 'deepseek-chat',

messages: [

{ role: 'system', content: '你是一个专业的代码审查专家' },

{ role: 'user', content: '帮我优化这段 SQL:SELECT * FROM orders WHERE user_id = 1' }

],

max_tokens: 1024

});

console.log(response.choices[0].message.content);

console.log('Token 用量:', response.usage);

}

chat();

Go

package main

import (

"bytes"

"encoding/json"

"fmt"

"io"

"net/http"

)

type Message struct {

Role string `json:"role"`

Content string `json:"content"`

}

type ChatRequest struct {

Model string `json:"model"`

Messages []Message `json:"messages"`

MaxTokens int `json:"max_tokens"`

}

func main() {

payload, _ := json.Marshal(ChatRequest{

Model: "deepseek-chat",

Messages: []Message{

{Role: "system", Content: "你是一个专业助手"},

{Role: "user", Content: "Go 语言中如何实现并发安全的计数器?"},

},

MaxTokens: 1024,

})

req, _ := http.NewRequest("POST", " ", bytes.NewBuffer(payload))

req.Header.Set("Authorization", "Bearer sk-omni-xxxxxxxxxxxxxxxx")

req.Header.Set("Content-Type", "application/json")

resp, err := http.DefaultClient.Do(req)

if err != nil { panic(err) }

defer resp.Body.Close()

body, _ := io.ReadAll(resp.Body)

fmt.Println(string(body))

}

Java

使用 OkHttp 库,添加依赖:implementation 'com.squareup.okhttp3:okhttp:4.12.0'

import okhttp3.*;

import org.json.*;

public class OmniTClient {

public static void main(String[] args) throws Exception {

OkHttpClient client = new OkHttpClient();

JSONObject body = new JSONObject()

.put("model", "deepseek-chat")

.put("messages", new JSONArray()

.put(new JSONObject().put("role","system").put("content","你是一个专业助手"))

.put(new JSONObject().put("role","user").put("content","Java 中 HashMap 线程不安全的原因是什么?")))

.put("max_tokens", 1024);

Request request = new Request.Builder()

.url(" ")

.addHeader("Authorization", "Bearer sk-omni-xxxxxxxxxxxxxxxx")

.addHeader("Content-Type", "application/json")

.post(RequestBody.create(body.toString(), MediaType.get("application/json")))

.build();

try (Response response = client.newCall(request).execute()) {

JSONObject result = new JSONObject(response.body().string());

System.out.println(result.getJSONArray("choices")

.getJSONObject(0).getJSONObject("message").getString("content"));

}

}

}

cURL

# 基础请求

curl -X POST \

-H "Authorization: Bearer sk-omni-xxxxxxxxxxxxxxxx" \

-H "Content-Type: application/json" \

-d '{

"model": "deepseek-chat",

"messages": [

{"role": "system", "content": "你是一个专业助手"},

{"role": "user", "content": "什么是向量数据库?"}

],

"max_tokens": 512

}'

4.4 流式输出(Stream)

将 stream 设置为 true 后,接口以 SSE(Server-Sent Events)格式逐 Token 返回,适合实现打字机效果的聊天界面。每个事件以 data: 开头,最后一条为 data: [DONE]。

Python 流式示例

from openai import OpenAI

client = OpenAI(

api_key="sk-omni-xxxxxxxxxxxxxxxx",

base_url=" "

)

stream = client.chat.completions.create(

model="deepseek-chat",

messages=[

{"role": "user", "content": "请写一首关于秋天的五言绝句"}

],

stream=True

)

# 逐 Token 打印,实现打字机效果

for chunk in stream:

delta = chunk.choices[0].delta

if delta.content:

print(delta.content, end='', flush=True)

print() # 换行

4.5 多轮对话

多轮对话需要将完整的历史消息数组传入 messages,模型无状态,每次请求都需携带完整上下文。

from openai import OpenAI

client = OpenAI(

api_key="sk-omni-xxxxxxxxxxxxxxxx",

base_url=" "

)

# 维护对话历史

history = [

{"role": "system", "content": "你是一个友善的中文助手,请用简洁的语言回答"}

]

def chat(user_message):

history.append({"role": "user", "content": user_message})

response = client.chat.completions.create(

model="deepseek-chat",

messages=history,

max_tokens=1024

)

assistant_message = response.choices[0].message.content

history.append({"role": "assistant", "content": assistant_message})

return assistant_message

# 连续对话

print(chat("我叫小明,我是一名 Python 开发者"))

print(chat("你还记得我叫什么吗?我是做什么的?"))

⚠️ 多轮对话时,历史消息越长,每次请求的输入 Token 消耗越多。建议根据业务需要对历史消息进行截断或摘要处理,控制上下文长度。

4.6 Qwen3 思考模式(Thinking Mode)

Qwen3-235B 和 Qwen3-32B 支持「思考模式」,通过额外参数 enable_thinking 开启。开启后,模型会先在 reasoning_content 字段输出完整的推理链,再在 content 字段给出最终答案,适合数学、逻辑推理等复杂任务。

思考模式目前仅支持流式输出(stream=True),请勿在非流式请求中使用 enable_thinking 参数。

from openai import OpenAI

client = OpenAI(

api_key="sk-omni-xxxxxxxxxxxxxxxx",

base_url=" "

)

stream = client.chat.completions.create(

model="qwen3-235b-a22b",

messages=[

{"role": "user", "content": "一个袋子里有 3 个红球、5 个蓝球,随机取 2 个球,恰好都是蓝球的概率是多少?"}

],

stream=True,

extra_body={

"enable_thinking": True # 开启思考模式

}

)

reasoning = ''

answer = ''

is_answering = False

for chunk in stream:

if not chunk.choices: continue

delta = chunk.choices[0].delta

# 推理过程(思维链)

if hasattr(delta, 'reasoning_content') and delta.reasoning_content:

if not is_answering:

print(delta.reasoning_content, end='', flush=True)

reasoning += delta.reasoning_content

# 最终答案

if delta.content:

if not is_answering:

print('\n\n【最终答案】')

is_answering = True

print(delta.content, end='', flush=True)

answer += delta.content

第五章 本地客户端接入

除代码接入外,OmniT 还支持通过本地 AI 客户端工具接入,无需编写代码即可与模型对话,适合非开发人员或快速验证场景。

5.1 接入信息汇总

无论使用哪款客户端,配置信息均相同:

配置项

API URL / Base URL

API Key

您的 OmniT Key(sk-omni-xxxxxxxxxxxxxxxx)

模型名称

填写第三章中的模型 ID,如 deepseek-chat

5.2 Chatbox

  1. 下载并安装 Chatbox:https://chatboxai.app
  2. 首次启动时,选择「使用自己的 API Key」→「OpenAI API」
  3. 在「API Key」栏填入 OmniT Key
  4. 在「API Host」栏填入
  5. 在「模型」栏填入模型 ID(如 deepseek-chat)
  6. 点击「保存」,即可开始对话

若首次进入 Chatbox 时错过了设置界面,可在对话窗口左下角「设置」→「模型」中修改。

5.3 Cherry Studio

  1. 下载并安装 Cherry Studio:https://cherry-ai.com
  2. 进入「设置」→「模型服务」,点击「+」新增服务商
  3. 服务商类型选择「OpenAI」
  4. API Key 填入 OmniT Key,API 地址填入
  5. 保存后,在新建对话界面的顶部下拉框中选择模型

5.4 AnythingLLM

  1. 下载并安装 AnythingLLM:https://anythingllm.com
  2. 首次设置时,LLM 提供商选择「Generic OpenAI」
  3. Base URL 填入 ,Token Context Window 建议填 32768
  4. API Key 填入 OmniT Key,Chat Model Name 填入模型 ID
  5. 完成设置后可使用知识库(RAG)、多轮对话等高级功能

第六章 计费说明

6.1 Token 基本概念

Token 是模型服务的计量单位。模型在处理文本时,先将输入内容分词(Tokenize)转化为 Token,处理后再将输出 Token 转化为文本。输入和输出的 Token 总量即为本次调用的计量用量。

文本类型

估算规则

示例

中文

约 1.5~2 Token / 汉字

「你好世界」≈ 8 Tokens

英文

约 1~1.5 Token / 单词

「Hello World」≈ 3 Tokens

代码

约 1~2 Token / 字符

100 行代码 ≈ 500~1,000 Tokens

混合文本

按比例混合计算

由于不同模型采用不同的分词策略,同一段文本在不同模型下的 Token 数量可能略有差异。每次 API 响应的 usage 字段会返回本次精确消耗量。

6.2 计费规则

  • 按实际消耗 Token 数量计费,输入和输出分开计算
  • System Prompt 计入输入 Token
  • 流式与非流式调用价格完全相同
  • 每次 API 调用结束后实时从余额扣除
  • 若请求因错误中途失败,已消耗的 Token 仍会计费

6.3 出账周期

OmniT 采用实时计费,每次调用结束后立即结算扣费。账单明细在控制台「费用中心」→「账单明细」中查看,支持按日期、模型、API Key 多维度筛选。

6.4 费用估算示例

以下为常见使用场景的费用参考(使用 deepseek-chat,输入 ¥2/M,输出 ¥8/M):

场景

输入 Tokens

输出 Tokens

单次费用

每日 1,000 次

简单问答

300

200

≈ ¥0.0022

≈ ¥2.2

文档摘要(长)

5,000

500

≈ ¥0.014

≈ ¥14

代码生成

1,000

2,000

≈ ¥0.018

≈ ¥18

多轮对话(10轮)

8,000

5,000

≈ ¥0.056

≈ ¥56

6.5 欠费与停服说明

账户余额(含充值余额与赠送额度)耗尽后:

  • 调用付费模型将立即返回 402 错误(余额不足)
  • 免费模型(glm-4-flash、glm-z1-flash、deepseek-r1-distill-qwen-7b)不受余额限制,仍可正常使用
  • 已创建的 API Key 不会失效,充值后可立即恢复调用

建议在控制台开启「低余额提醒」,当余额低于 10 元时发送邮件提醒,避免因余额耗尽导致业务中断。

第七章 错误码说明

所有错误响应均采用统一结构,error.message 字段包含具体原因描述,便于排查问题:

{

"error": {

"message": "Insufficient balance. Please recharge your account.",

"type": "insufficient_balance",

"code": 402

}

}

7.1 HTTP 状态码

状态码

错误类型

触发原因

处理建议

200

OK

请求成功

正常处理响应内容

400

Bad Request

请求参数格式错误或缺少必填字段

检查 JSON 格式和必填参数是否正确

401

Unauthorized

API Key 无效、格式错误或已删除

确认 Key 以 sk-omni- 开头且未被删除

402

Insufficient Balance

账户余额为零或已欠费

前往控制台充值后重试

403

Permission Denied

Key 无权限访问该模型

在控制台编辑 Key 权限,添加对应模型

404

Model Not Found

模型 ID 不存在或已下线

检查模型 ID 拼写,参考第三章模型列表

429

Rate Limit Exceeded

请求频率超过 RPM 或 TPM 限制

降低调用频率,或联系申请提升配额

500

Internal Server Error

平台内部错误

稍后重试,或联系技术支持

502

Bad Gateway

上游模型服务异常

切换同系列其他模型,或等待恢复

503

Service Unavailable

模型服务临时不可用

等待 1~5 分钟后重试

7.2 常见报错排查

错误:401 - API Key 无效

  • 确认 Header 格式:Authorization: Bearer sk-omni-xxxxxxxxxxxxxxxx(注意 Bearer 后有一个空格)
  • 确认 Key 未被删除:登录控制台「API 密钥管理」页面查看状态
  • 注意区分 OmniT Key(sk-omni-开头)和 OpenAI 原厂 Key(sk-开头)

错误:402 - 余额不足

  • 前往控制台「费用中心」→「账户充值」进行充值
  • 若账户有余额但仍报 402,可能是 Key 级别的月度用量上限已达到,进入控制台编辑 Key 设置

错误:404 - 模型未找到

  • 检查 model 字段的值与第三章模型列表中的 ID 完全一致(区分大小写)
  • 部分模型 ID 包含版本号,如 qwen3-235b-a22b,不可省略后缀

错误:429 - 请求频率超限

  • 每个模型均有 RPM(每分钟请求数)和 TPM(每分钟 Token 数)双重限制,见第三章表格
  • 建议在代码中加入指数退避重试逻辑(Exponential Backoff)
  • 高并发场景请提前联系技术支持申请提升限额

错误:请求超时(Timeout)

  • 非流式请求建议设置 60 秒超时;流式请求建议设置 120 秒超时
  • 若频繁超时,可尝试换用同系列参数量更小的模型(如从 235B 换用 32B)
  • 网络层超时可尝试更换网络环境,或联系技术支持排查线路问题

第八章 常见问题 FAQ

Q1:现有使用 OpenAI 的代码,如何迁移到 OmniT?

只需修改两处,其余代码无需改动:

# 修改前(OpenAI 官方)

client = OpenAI(api_key="sk-xxxxxx")

# 修改后(OmniT)

client = OpenAI(

api_key="sk-omni-xxxxxxxxxxxxxxxx", # 替换为 OmniT Key

base_url=" " # 新增 base_url

)

✅ OmniT 完全兼容 OpenAI SDK 的所有参数,包括 functions/tools、response_format 等高级特性(部分模型可能不支持)。

Q2:如何判断用哪个模型?

场景

推荐模型

理由

日常问答、写作助手

deepseek-chat / qwen-plus

均衡的能力和成本

复杂推理、数学问题

deepseek-reasoner / qwen3-235b

专为深度推理设计

大批量文本处理

glm-4-flash / deepseek-r1-7b

免费,高并发

长文档摘要(>10万字)

qwen-long / qwen-turbo

超长上下文支持

代码生成与审查

deepseek-chat / qwen3-32b

代码能力突出

图片理解

gpt-4o / qwen2.5-vl-72b

多模态视觉能力

对成本极度敏感

glm-4-flash(免费)

完全免费

Q3:OmniT 支持 Function Calling(工具调用)吗?

支持。OpenAI 系列及 DeepSeek-V3、部分 Qwen 模型均支持 Function Calling,传参方式与 OpenAI 官方接口完全相同。示例:

response = client.chat.completions.create(

model="deepseek-chat",

messages=[{'role': 'user', 'content': '北京今天天气怎么样?'}],

tools=[{

"type": "function",

"function": {

"name": "get_weather",

"description": "获取指定城市的天气信息",

"parameters": {

"type": "object",

"properties": {

"city": {"type": "string", "description": "城市名称"}

},

"required": ["city"]

}

}

}],

tool_choice="auto"

)

Q4:支持 Embedding(向量嵌入)接口吗?

支持。调用地址为 POST ,支持 text-embedding-3-small、text-embedding-3-large 等 OpenAI Embedding 模型,以及部分国内 Embedding 模型,可用于构建 RAG 知识库系统。

Q5:如何控制多个项目或用户的费用分配?

可以为不同项目或用户创建独立的 API Key:

  • 在控制台为每个项目新建一个 Key,备注项目名称
  • 可为每个 Key 设置单独的月度 Token 用量上限,防止单个项目超支
  • 在账单明细中按 Key 筛选,即可查看各项目的独立费用明细

Q6:API 响应中的 finish_reason 有哪些取值?

取值

含义

处理建议

stop

模型正常完成输出,遇到停止符或自然结束

正常处理

length

已达到 max_tokens 上限而截断

适当增大 max_tokens 或分段处理

tool_calls

模型请求调用工具

处理工具调用后继续对话

content_filter

内容被安全策略过滤

修改提示词,避免违规内容

null

流式响应中间的 chunk

继续接收后续 chunk

第九章 最佳实践

9.1 Prompt 工程建议

  • 使用 System 角色明确模型的任务范围和输出格式,可大幅提升回答质量
  • 要求模型以 JSON 格式输出时,配合 response_format: {type: 'json_object'} 参数(部分模型支持)
  • 复杂任务拆解为多步骤提示,比一次性长提示效果更稳定
  • 温度(temperature)建议:代码/数学任务设置 0~0.3;创意写作设置 0.7~1.2

9.2 成本控制建议

  • 在开发/测试阶段优先使用免费模型(glm-4-flash)验证逻辑,确认无误后再切换付费模型
  • 对 System Prompt 进行压缩和复用,避免每次请求携带过长的系统提示词
  • 合理设置 max_tokens,避免模型无限生成造成不必要的费用
  • 批量文本处理任务优先选择低价的 qwen-turbo 或 glm-4-flashx

9.3 稳定性与重试策略

生产环境建议实现以下重试逻辑:

import time

import openai

def chat_with_retry(client, max_retries=3, **kwargs):

for attempt in range(max_retries):

try:

return client.chat.completions.create(**kwargs)

except openai.RateLimitError:

wait = 2 ** attempt # 指数退避:1s, 2s, 4s

print(f'频率限制,{wait}秒后重试...')

time.sleep(wait)

except openai.APIStatusError as e:

if e.status_code in [500, 502, 503]:

wait = 2 ** attempt

print(f'服务暂时不可用,{wait}秒后重试...')

time.sleep(wait)

else:

raise # 其他错误直接抛出

raise Exception('已达最大重试次数')

9.4 安全建议

  • API Key 应存储在环境变量或密钥管理系统(如 AWS Secrets Manager)中,禁止硬编码在代码里
  • 前端应用不应直接调用 OmniT 接口,建议通过后端代理转发,防止 Key 泄露
  • 定期检查控制台的调用日志,若发现异常调用量,应立即禁用对应 Key
  • 为不同环境(开发/测试/生产)使用不同的 API Key,并设置独立的用量上限

第十章 技术支持与联系方式

如果您在使用过程中遇到任何问题,可通过以下渠道获取支持:

渠道

说明

响应时间

技术支持邮箱

工作日 24 小时内回复

控制台工单

console.omnit.ai → 帮助 → 提交工单

工作日 4 小时内响应

开发者社区

community.omnit.ai(问题讨论、经验分享)

社区实时互助

微信技术群

扫码加入(见控制台帮助中心)

工作日在线答疑

商务合作

工作日 2 小时内回复

感谢您选择 OmniT,祝开发愉快

© 2026 OmniT · All Rights Reserved