Gravitex.ai
  1. 对话
Gravitex.ai
  • API文档
    • 对话
      • 通用文本对话接口文档
      • 通义千问通用对话接口文档
      • GPT-Chat通用对话文档
      • DeepSeek通用对话文档
      • Grok 模型(xAI)通用对话接口文档
      • Gemini通用对话文档
  1. 对话

GPT-Chat通用对话文档

概述#

本文档介绍如何通过 gravitex 的 OpenAI 兼容接口调用标准 ChatGPT(OpenAI Chat Completions)能力,包含最小示例、流式推送、工具调用与结构化输出要点。

基础信息#

项目内容
Base URLhttps://api.gravitex.ai/v1/chat/completions
认证方式API Key (Token)
请求头Authorization: Bearer sk-xxxx、Content-Type: application/json

支持的模型(示例)#

gpt-4o、gpt-4.1、gpt-4o-mini、gpt-3.5-turbo 等(以路由配置为准)

API 接口#

1. 最小示例(非流式)#

2. 流式 SSE 示例#

3. 工具调用(Functions / Tools)#

工具调用完整流程(两阶段)#

1.
第一阶段:模型返回 tool_calls(content 通常为 null,finish_reason=tool_calls)。你需要根据 tool_calls[*].function.name/arguments 在你的服务端执行对应函数。
2.
第二阶段:把工具执行结果作为一条 role:"tool" 消息回传给模型,并继续补全(可流式)。
非流式续写示例(第二阶段):
流式续写示例(第二阶段也支持流式):
注意:
tool_call_id 必须与第一阶段返回一致。
工具执行失败时应返回可读的错误信息或降级结果,避免阻塞后续补全。

4. 结构化输出(response_format/json_schema)#

5. 文件输入#

在下面的示例中,我们首先使用以下方式上传 PDF 文件:
1.
文件网址:您可以通过链接外部网址上传PDF文件。
from openai import OpenAI


def gpt_5_input():
    try:
        # 初始化客户端
        client = OpenAI(
            api_key="******填写您的API密钥******",  # 访问密钥
            base_url="https://api.gravitex.ai/v1"  # API服务地址
        )



        # 发送聊天请求
        response = client.responses.create(
            # 模型配置
            model="gpt-5-chat",
            input=[
                {
                    "role": "user",
                    "content": [
                        {
                            "type": "input_text",
                            "text": "分析这封信,并总结其关键点",
                        },
                        {
                            "type": "input_file",
                            "file_url": "https://www.berkshirehathaway.com/letters/2024ltr.pdf",
                        },
                    ],
                },
            ]
        )
        return response.output_text
    except Exception as e:
        print(f"Error: {e}")
        return None


if __name__ == "__main__":
    # 调用示例
    response = gpt_5_input()
    print(response)
2.
Base64编码文件:作为 Base64 编码的输入发送。
import base64
from openai import OpenAI
client = OpenAI()

with open("draconomicon.pdf", "rb") as f:
    data = f.read()

base64_string = base64.b64encode(data).decode("utf-8")

response = client.responses.create(
    model="gpt-5-chat",
    input=[
        {
            "role": "user",
            "content": [
                {
                    "type": "input_file",
                    "filename": "draconomicon.pdf",
                    "file_data": f"data:application/pdf;base64,{base64_string}",
                },
                {
                    "type": "input_text",
                    "text": "What is the first dragon in the book?",
                },
            ],
        },
    ]
)

print(response.output_text)
3.
使用注意事项
文件大小限制
您可以上传多个文件,每个文件大小不得超过 50 MB。单个 API 请求中所有文件的总大小限制为 50 MB。
支持的型号
只有支持文本和图像输入的型号,例如 gpt-4o、gpt-4o-mini 或 o1,才能接受 PDF 文件作为输入。

响应与用量#

非流式:一次性返回标准 OpenAI 结构,包含 choices、usage
流式:SSE 分片返回,末尾可能附带 usage 聚合;若开启 stream_options.include_usage=true 的通道,分片可能包含实时用量

常见问题(FAQ)#

1.
如何提升结构化输出的稳定性?
使用 response_format: json_schema 并提供严格的 JSON Schema;必要时配合降低 temperature、设置 max_tokens
2.
工具调用如何落库执行?
读取增量分片中的 tool_calls,服务端执行函数并把结果再作为 tool 消息回传给模型
3.
是否支持 Reproducible(种子)?
若通道支持可使用 seed;不同厂商实现可能差异,建议仅在需要可复现的链路开启

最佳实践#

流式前端使用事件流解析并及时渲染
严格的 JSON 模式下建议关闭/降低 temperature
工具调用做好超时与重试机制,避免阻塞模型响应

关于“深度思考/推理过程”#

常规 ChatGPT 系列(如 gpt-4o、gpt-4.1、gpt-3.5-turbo)不提供可视化的思维链输出;请求体中传 enable_thinking 不会生效。
如需带有“推理相关能力/用量统计”的模型(如 o1、o3、o4-mini 等),请使用 Responses API(/v1/responses)。
修改于 2026-03-04 21:08:15
上一页
通义千问通用对话接口文档
下一页
DeepSeek通用对话文档
Built with