> ## Documentation Index
> Fetch the complete documentation index at: https://docs.gregapi.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 通用对话接口

> 通过 GregAPI 兼容 OpenAI 的对话补全与工具调用接口。

`POST /v1/chat/completions` 是最常用的对话生成接口，支持流式输出、函数调用（tools/functions）以及 JSON mode。

## 请求示例

```bash theme={null}
curl -X POST "https://api.gregapi.com/v1/chat/completions" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-4o-mini",
    "messages": [
      {"role": "system", "content": "你是 GregAPI 的产品助理。"},
      {"role": "user", "content": "用三句话介绍 GregAPI。"}
    ],
    "temperature": 0.7
  }'
```

## 常见用法

* **流式输出**：在请求体中设置 `stream: true`。cURL 请添加 `-N` 选项，Python 端可组合 `requests.post(..., stream=True)` 逐行读取。
* **函数调用**：通过 `tools` 与 `tool_choice` 描述可调用的函数，后续在响应中解析 `tool_calls` 并执行业务逻辑。
* **JSON 约束**：配合 `response_format` 设置为 `{"type": "json_schema"}`，可让模型严格返回结构化数据。

GregAPI 会自动对齐常见兼容接口中的差异字段，减少模型切换带来的适配成本。

## GregAPI 扩展字段

以下字段是 GregAPI 在标准 OpenAI 响应体基础上的扩展，用于暴露上游模型的计费明细。

### `usage.prompt_tokens_details`

| 字段 | 含义 | 适用模型 |
| - | - | - |
| `cached_tokens` | 命中缓存的输入 token 数 | 所有支持缓存的模型 |
| `cached_write_tokens` | 缓存写入总量（= 5m + 1h） | Claude |
| `cached_write_5m_tokens` | 写入 5 分钟有效期缓存的 token 数 | Claude |
| `cached_write_1h_tokens` | 写入 1 小时有效期缓存的 token 数 | Claude |

其中 `prompt_tokens` 为输入 token 总量（含缓存命中与缓存写入）。缓存写入相关字段为 `omitempty`，GPT 等无缓存写入的模型不会输出。

```json theme={null}
{
  "usage": {
    "prompt_tokens": 58518,
    "prompt_tokens_details": {
      "cached_tokens": 11944,
      "cached_write_tokens": 46109,
      "cached_write_5m_tokens": 29762,
      "cached_write_1h_tokens": 16347
    }
  }
}
```

结合计费对账中的单价字段，可直接从响应体实时估算单次请求的缓存写入费用。


## OpenAPI

````yaml openapi/llm.yaml POST /v1/chat/completions
openapi: 3.0.3
info:
  title: GregAPI 大语言模型
  version: 1.0.0
  description: GregAPI 统一网关下的大语言模型（LLM）接口，覆盖通用对话补全、多模态响应，以及各家原生消息与生成协议。
servers:
  - url: https://api.gregapi.com
security:
  - bearerAuth: []
paths:
  /v1/chat/completions:
    post:
      summary: 通用对话接口
      description: >-
        通过 GregAPI 兼容 OpenAI 的对话补全与工具调用接口，支持流式输出、函数调用（tools/functions）以及 JSON
        mode。
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - model
                - messages
              properties:
                model:
                  type: string
                  description: 模型名称
                messages:
                  type: array
                  description: 对话消息数组
                  items:
                    type: object
                    properties:
                      role:
                        type: string
                        enum:
                          - system
                          - user
                          - assistant
                          - tool
                      content:
                        type: string
                temperature:
                  type: number
                  description: 采样温度，默认 1
                stream:
                  type: boolean
                  description: 是否流式输出
                tools:
                  type: array
                  description: 可调用函数描述
                tool_choice:
                  type: string
                response_format:
                  type: object
                  description: 输出格式，例如 JSON Schema（json_schema）
            example:
              model: gpt-4o-mini
              messages:
                - role: system
                  content: 你是 GregAPI 的产品助理。
                - role: user
                  content: 用三句话介绍 GregAPI。
              temperature: 0.7
      responses:
        '200':
          description: 成功返回对话补全结果
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.