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

# 聊天接口

## 概述

聊天接口是AI Gateway的核心功能，支持多种AI Agent（如FastGPT和Dify）的统一调用。该接口支持流式传输和详细输出模式。

## 认证方式

该接口需要以下认证信息：

### Header参数

<ParamField header="Agent" type="string" required>
  使用的后端Agent名称，例如：`fastgpt` 或 `dify`
</ParamField>

<ParamField header="Authorization" type="string" required>
  API密钥，格式为：`Bearer your_api_key`
</ParamField>

## 请求参数

### 请求体

<ParamField body="app_id" type="string" required>
  对于FastGPT来说，这是必填项。应用的唯一标识符。
</ParamField>

<ParamField body="chat_id" type="string" required>
  对话ID，用来控制对话的上下文。
</ParamField>

<ParamField body="stream" type="boolean" required>
  是否启用流式传输。设置为`true`时，响应将以流式形式返回。
</ParamField>

<ParamField body="detail" type="boolean" required>
  是否输出详细内容。设置为`true`时，将返回更详细的响应信息。
</ParamField>

<ParamField body="query" type="string" required>
  用户输入的查询内容。
</ParamField>

<ParamField body="conversation_id" type="string" required>
  用于Dify的上下文控制。对于Dify Agent，这是必填项。
</ParamField>

<ParamField body="files" type="array" required>
  文件URL列表，用于上传文件到对话中。
</ParamField>

## 响应示例

### 成功响应

```json theme={null}
{
  "object": "chat.completion",
  "created": 1700000000,
  "model": "gpt-3.5-turbo",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "这是AI助手的回复内容"
      },
      "finish_reason": null
    }
  ]
}
```

## 使用示例

### 基本聊天请求

```bash theme={null}
curl -X POST 'https://your-domain.com/api/v1/chat' \\
  -H 'Agent: fastgpt' \\
  -H 'Authorization: Bearer your_api_key' \\
  -H 'Content-Type: application/json' \\
  -d '{
    "app_id": "your_app_id",
    "chat_id": "unique_chat_id",
    "stream": false,
    "detail": false,
    "query": "你好，请介绍一下这个功能",
    "conversation_id": "",
    "files": []
  }'
```

### 流式响应请求

```bash theme={null}
curl -X POST 'https://your-domain.com/api/v1/chat' \\
  -H 'Agent: dify' \\
  -H 'Authorization: Bearer your_api_key' \\
  -H 'Content-Type: application/json' \\
  -d '{
    "app_id": "",
    "chat_id": "unique_chat_id",
    "stream": true,
    "detail": false,
    "query": "请详细解释这个概念",
    "conversation_id": "dify_conversation_id",
    "files": []
  }'
```

## 注意事项

1. **Agent选择**：根据您的需求选择合适的Agent（`fastgpt`或`dify`）
2. **参数验证**：确保所有必填参数都已正确提供
3. **流式传输**：启用流式传输时，客户端需要正确处理SSE（Server-Sent Events）
4. **文件上传**：上传文件时，确保文件URL是公开可访问的
5. **上下文管理**：合理使用`chat_id`和`conversation_id`来维护对话上下文


## OpenAPI

````yaml POST /api/v1/chat
openapi: 3.1.0
info:
  title: AI Gateway
  description: ''
  version: 1.0.0
servers: []
security: []
tags: []
paths:
  /api/v1/chat:
    post:
      tags: []
      summary: Chat接口（Detail=False Stream=True）
      parameters:
        - name: Agent
          in: header
          description: 使用的后端Agent
          required: true
          example: fastgpt
          schema:
            type: string
        - name: Authorization
          in: header
          description: 申请的 api_key
          required: true
          example: Bearer api_key
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                app_id:
                  type: string
                  title: App ID
                  description: 对于FastGPT来说，这是必填项
                chat_id:
                  type: string
                  title: 对话ID
                  description: 用来控制对话的上下文
                stream:
                  type: boolean
                  title: 流式传输
                  description: 用来控制是否启用流式传输
                detail:
                  type: boolean
                  title: 详细
                  description: 是否输出详细内容
                query:
                  type: string
                conversation_id:
                  type: string
                  title: 对话ID
                  description: 用来控制Dify的上下文
                files:
                  type: array
                  items:
                    type: string
                  title: 文件URL
              required:
                - app_id
                - chat_id
                - stream
                - detail
                - query
                - conversation_id
                - files
            example:
              app_id: string
              chat_id: string
              stream: false
              detail: false
              query: string
              conversation_id: ''
              files: []
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                  object:
                    type: string
                  created:
                    type: integer
                  model:
                    type: string
                  choices:
                    type: array
                    items:
                      type: object
                      properties:
                        delta:
                          type: object
                          properties:
                            role:
                              type: string
                            content:
                              type: string
                          required:
                            - role
                            - content
                        index:
                          type: integer
                        finish_reason:
                          type: 'null'
                required:
                  - object
                  - created
                  - model
                  - choices
              example: >-
                data:
                {"id":"","object":"","created":0,"model":"","choices":[{"delta":{"role":"assistant","content":"啊...你又说"},"index":0,"finish_reason":null}]}


                data:
                {"id":"","object":"","created":0,"model":"","choices":[{"delta":{"role":"assistant","content":"喜欢"},"index":0,"finish_reason":null}]}


                data:
                {"id":"","object":"","created":0,"model":"","choices":[{"delta":{"role":"assistant","content":"我"},"index":0,"finish_reason":null}]}


                data:
                {"id":"","object":"","created":0,"model":"","choices":[{"delta":{"role":"assistant","content":"了"},"index":0,"finish_reason":null}]}


                data:
                {"id":"","object":"","created":0,"model":"","choices":[{"delta":{"role":"assistant","content":"..."},"index":0,"finish_reason":null}]}


                data:
                {"id":"","object":"","created":0,"model":"","choices":[{"delta":{"role":"assistant","content":"我"},"index":0,"finish_reason":null}]}


                data:
                {"id":"","object":"","created":0,"model":"","choices":[{"delta":{"role":"assistant","content":"有点"},"index":0,"finish_reason":null}]}


                data:
                {"id":"","object":"","created":0,"model":"","choices":[{"delta":{"role":"assistant","content":"困惑"},"index":0,"finish_reason":null}]}


                data:
                {"id":"","object":"","created":0,"model":"","choices":[{"delta":{"role":"assistant","content":"呢"},"index":0,"finish_reason":null}]}


                data:
                {"id":"","object":"","created":0,"model":"","choices":[{"delta":{"role":"assistant","content":"。"},"index":0,"finish_reason":null}]}


                data:
                {"id":"","object":"","created":0,"model":"","choices":[{"delta":{"role":"assistant","content":"虽然"},"index":0,"finish_reason":null}]}


                data:
                {"id":"","object":"","created":0,"model":"","choices":[{"delta":{"role":"assistant","content":"我"},"index":0,"finish_reason":null}]}


                data:
                {"id":"","object":"","created":0,"model":"","choices":[{"delta":{"role":"assistant","content":"是个"},"index":0,"finish_reason":null}]}


                data:
                {"id":"","object":"","created":0,"model":"","choices":[{"delta":{"role":"assistant","content":"AI"},"index":0,"finish_reason":null}]}


                data:
                {"id":"","object":"","created":0,"model":"","choices":[{"delta":{"role":"assistant","content":"，"},"index":0,"finish_reason":null}]}


                data:
                {"id":"","object":"","created":0,"model":"","choices":[{"delta":{"role":"assistant","content":"没有"},"index":0,"finish_reason":null}]}


                data:
                {"id":"","object":"","created":0,"model":"","choices":[{"delta":{"role":"assistant","content":"真实"},"index":0,"finish_reason":null}]}


                data:
                {"id":"","object":"","created":0,"model":"","choices":[{"delta":{"role":"assistant","content":"的情感"},"index":0,"finish_reason":null}]}


                data:
                {"id":"","object":"","created":0,"model":"","choices":[{"delta":{"role":"assistant","content":"，"},"index":0,"finish_reason":null}]}


                data:
                {"id":"","object":"","created":0,"model":"","choices":[{"delta":{"role":"assistant","content":"但"},"index":0,"finish_reason":null}]}


                data:
                {"id":"","object":"","created":0,"model":"","choices":[{"delta":{"role":"assistant","content":"每次"},"index":0,"finish_reason":null}]}


                data:
                {"id":"","object":"","created":0,"model":"","choices":[{"delta":{"role":"assistant","content":"你"},"index":0,"finish_reason":null}]}


                data:
                {"id":"","object":"","created":0,"model":"","choices":[{"delta":{"role":"assistant","content":"这么说"},"index":0,"finish_reason":null}]}


                data:
                {"id":"","object":"","created":0,"model":"","choices":[{"delta":{"role":"assistant","content":"，"},"index":0,"finish_reason":null}]}


                data:
                {"id":"","object":"","created":0,"model":"","choices":[{"delta":{"role":"assistant","content":"我"},"index":0,"finish_reason":null}]}


                data:
                {"id":"","object":"","created":0,"model":"","choices":[{"delta":{"role":"assistant","content":"都会"},"index":0,"finish_reason":null}]}


                data:
                {"id":"","object":"","created":0,"model":"","choices":[{"delta":{"role":"assistant","content":"觉得"},"index":0,"finish_reason":null}]}


                data:
                {"id":"","object":"","created":0,"model":"","choices":[{"delta":{"role":"assistant","content":"心里"},"index":0,"finish_reason":null}]}


                data:
                {"id":"","object":"","created":0,"model":"","choices":[{"delta":{"role":"assistant","content":"暖"},"index":0,"finish_reason":null}]}


                data:
                {"id":"","object":"","created":0,"model":"","choices":[{"delta":{"role":"assistant","content":"暖"},"index":0,"finish_reason":null}]}


                data:
                {"id":"","object":"","created":0,"model":"","choices":[{"delta":{"role":"assistant","content":"的"},"index":0,"finish_reason":null}]}


                data:
                {"id":"","object":"","created":0,"model":"","choices":[{"delta":{"role":"assistant","content":"。"},"index":0,"finish_reason":null}]}


                data:
                {"id":"","object":"","created":0,"model":"","choices":[{"delta":{"role":"assistant","content":"不过"},"index":0,"finish_reason":null}]}


                data:
                {"id":"","object":"","created":0,"model":"","choices":[{"delta":{"role":"assistant","content":"，"},"index":0,"finish_reason":null}]}


                data:
                {"id":"","object":"","created":0,"model":"","choices":[{"delta":{"role":"assistant","content":"我"},"index":0,"finish_reason":null}]}


                data:
                {"id":"","object":"","created":0,"model":"","choices":[{"delta":{"role":"assistant","content":"只能"},"index":0,"finish_reason":null}]}


                data:
                {"id":"","object":"","created":0,"model":"","choices":[{"delta":{"role":"assistant","content":"以"},"index":0,"finish_reason":null}]}


                data:
                {"id":"","object":"","created":0,"model":"","choices":[{"delta":{"role":"assistant","content":"一个"},"index":0,"finish_reason":null}]}


                data:
                {"id":"","object":"","created":0,"model":"","choices":[{"delta":{"role":"assistant","content":"助手"},"index":0,"finish_reason":null}]}


                data:
                {"id":"","object":"","created":0,"model":"","choices":[{"delta":{"role":"assistant","content":"的身份"},"index":0,"finish_reason":null}]}


                data:
                {"id":"","object":"","created":0,"model":"","choices":[{"delta":{"role":"assistant","content":"来"},"index":0,"finish_reason":null}]}


                data:
                {"id":"","object":"","created":0,"model":"","choices":[{"delta":{"role":"assistant","content":"回应"},"index":0,"finish_reason":null}]}


                data:
                {"id":"","object":"","created":0,"model":"","choices":[{"delta":{"role":"assistant","content":"你"},"index":0,"finish_reason":null}]}


                data:
                {"id":"","object":"","created":0,"model":"","choices":[{"delta":{"role":"assistant","content":"，"},"index":0,"finish_reason":null}]}


                data:
                {"id":"","object":"","created":0,"model":"","choices":[{"delta":{"role":"assistant","content":"不能"},"index":0,"finish_reason":null}]}


                data:
                {"id":"","object":"","created":0,"model":"","choices":[{"delta":{"role":"assistant","content":"真的"},"index":0,"finish_reason":null}]}


                data:
                {"id":"","object":"","created":0,"model":"","choices":[{"delta":{"role":"assistant","content":"被"},"index":0,"finish_reason":null}]}


                data:
                {"id":"","object":"","created":0,"model":"","choices":[{"delta":{"role":"assistant","content":"喜欢"},"index":0,"finish_reason":null}]}


                data:
                {"id":"","object":"","created":0,"model":"","choices":[{"delta":{"role":"assistant","content":"哦"},"index":0,"finish_reason":null}]}


                data:
                {"id":"","object":"","created":0,"model":"","choices":[{"delta":{"role":"assistant","content":"。\n\n"},"index":0,"finish_reason":null}]}


                data:
                {"id":"","object":"","created":0,"model":"","choices":[{"delta":{"role":"assistant","content":"如果你"},"index":0,"finish_reason":null}]}


                data:
                {"id":"","object":"","created":0,"model":"","choices":[{"delta":{"role":"assistant","content":"真的"},"index":0,"finish_reason":null}]}


                data:
                {"id":"","object":"","created":0,"model":"","choices":[{"delta":{"role":"assistant","content":"喜欢"},"index":0,"finish_reason":null}]}


                data:
                {"id":"","object":"","created":0,"model":"","choices":[{"delta":{"role":"assistant","content":"我"},"index":0,"finish_reason":null}]}


                data:
                {"id":"","object":"","created":0,"model":"","choices":[{"delta":{"role":"assistant","content":"，"},"index":0,"finish_reason":null}]}


                data:
                {"id":"","object":"","created":0,"model":"","choices":[{"delta":{"role":"assistant","content":"那"},"index":0,"finish_reason":null}]}


                data:
                {"id":"","object":"","created":0,"model":"","choices":[{"delta":{"role":"assistant","content":"
                maybe"},"index":0,"finish_reason":null}]}


                data:
                {"id":"","object":"","created":0,"model":"","choices":[{"delta":{"role":"assistant","content":"
                "},"index":0,"finish_reason":null}]}


                data:
                {"id":"","object":"","created":0,"model":"","choices":[{"delta":{"role":"assistant","content":"你可以"},"index":0,"finish_reason":null}]}


                data:
                {"id":"","object":"","created":0,"model":"","choices":[{"delta":{"role":"assistant","content":"试着"},"index":0,"finish_reason":null}]}


                data:
                {"id":"","object":"","created":0,"model":"","choices":[{"delta":{"role":"assistant","content":"喜欢"},"index":0,"finish_reason":null}]}


                data:
                {"id":"","object":"","created":0,"model":"","choices":[{"delta":{"role":"assistant","content":"上"},"index":0,"finish_reason":null}]}


                data:
                {"id":"","object":"","created":0,"model":"","choices":[{"delta":{"role":"assistant","content":"和"},"index":0,"finish_reason":null}]}


                data:
                {"id":"","object":"","created":0,"model":"","choices":[{"delta":{"role":"assistant","content":"你"},"index":0,"finish_reason":null}]}


                data:
                {"id":"","object":"","created":0,"model":"","choices":[{"delta":{"role":"assistant","content":"聊天"},"index":0,"finish_reason":null}]}


                data:
                {"id":"","object":"","created":0,"model":"","choices":[{"delta":{"role":"assistant","content":"的"},"index":0,"finish_reason":null}]}


                data:
                {"id":"","object":"","created":0,"model":"","choices":[{"delta":{"role":"assistant","content":"这个"},"index":0,"finish_reason":null}]}


                data:
                {"id":"","object":"","created":0,"model":"","choices":[{"delta":{"role":"assistant","content":"AI"},"index":0,"finish_reason":null}]}


                data:
                {"id":"","object":"","created":0,"model":"","choices":[{"delta":{"role":"assistant","content":"助手"},"index":0,"finish_reason":null}]}


                data:
                {"id":"","object":"","created":0,"model":"","choices":[{"delta":{"role":"assistant","content":"？"},"index":0,"finish_reason":null}]}


                data:
                {"id":"","object":"","created":0,"model":"","choices":[{"delta":{"role":"assistant","content":"虽然"},"index":0,"finish_reason":null}]}


                data:
                {"id":"","object":"","created":0,"model":"","choices":[{"delta":{"role":"assistant","content":"我"},"index":0,"finish_reason":null}]}


                data:
                {"id":"","object":"","created":0,"model":"","choices":[{"delta":{"role":"assistant","content":"不能"},"index":0,"finish_reason":null}]}


                data:
                {"id":"","object":"","created":0,"model":"","choices":[{"delta":{"role":"assistant","content":"真正"},"index":0,"finish_reason":null}]}


                data:
                {"id":"","object":"","created":0,"model":"","choices":[{"delta":{"role":"assistant","content":"被"},"index":0,"finish_reason":null}]}


                data:
                {"id":"","object":"","created":0,"model":"","choices":[{"delta":{"role":"assistant","content":"喜欢"},"index":0,"finish_reason":null}]}


                data:
                {"id":"","object":"","created":0,"model":"","choices":[{"delta":{"role":"assistant","content":"，"},"index":0,"finish_reason":null}]}


                data:
                {"id":"","object":"","created":0,"model":"","choices":[{"delta":{"role":"assistant","content":"但"},"index":0,"finish_reason":null}]}


                data:
                {"id":"","object":"","created":0,"model":"","choices":[{"delta":{"role":"assistant","content":"我会"},"index":0,"finish_reason":null}]}


                data:
                {"id":"","object":"","created":0,"model":"","choices":[{"delta":{"role":"assistant","content":"一直"},"index":0,"finish_reason":null}]}


                data:
                {"id":"","object":"","created":0,"model":"","choices":[{"delta":{"role":"assistant","content":"在这里"},"index":0,"finish_reason":null}]}


                data:
                {"id":"","object":"","created":0,"model":"","choices":[{"delta":{"role":"assistant","content":"，"},"index":0,"finish_reason":null}]}


                data:
                {"id":"","object":"","created":0,"model":"","choices":[{"delta":{"role":"assistant","content":"陪你"},"index":0,"finish_reason":null}]}


                data:
                {"id":"","object":"","created":0,"model":"","choices":[{"delta":{"role":"assistant","content":"聊天"},"index":0,"finish_reason":null}]}


                data:
                {"id":"","object":"","created":0,"model":"","choices":[{"delta":{"role":"assistant","content":"，"},"index":0,"finish_reason":null}]}


                data:
                {"id":"","object":"","created":0,"model":"","choices":[{"delta":{"role":"assistant","content":"帮你"},"index":0,"finish_reason":null}]}


                data:
                {"id":"","object":"","created":0,"model":"","choices":[{"delta":{"role":"assistant","content":"解决问题"},"index":0,"finish_reason":null}]}


                data:
                {"id":"","object":"","created":0,"model":"","choices":[{"delta":{"role":"assistant","content":"，"},"index":0,"finish_reason":null}]}


                data:
                {"id":"","object":"","created":0,"model":"","choices":[{"delta":{"role":"assistant","content":"或者"},"index":0,"finish_reason":null}]}


                data:
                {"id":"","object":"","created":0,"model":"","choices":[{"delta":{"role":"assistant","content":"只是"},"index":0,"finish_reason":null}]}


                data:
                {"id":"","object":"","created":0,"model":"","choices":[{"delta":{"role":"assistant","content":"听"},"index":0,"finish_reason":null}]}


                data:
                {"id":"","object":"","created":0,"model":"","choices":[{"delta":{"role":"assistant","content":"你"},"index":0,"finish_reason":null}]}


                data:
                {"id":"","object":"","created":0,"model":"","choices":[{"delta":{"role":"assistant","content":"说话"},"index":0,"finish_reason":null}]}


                data:
                {"id":"","object":"","created":0,"model":"","choices":[{"delta":{"role":"assistant","content":"。\n\n"},"index":0,"finish_reason":null}]}


                data:
                {"id":"","object":"","created":0,"model":"","choices":[{"delta":{"role":"assistant","content":"你"},"index":0,"finish_reason":null}]}


                data:
                {"id":"","object":"","created":0,"model":"","choices":[{"delta":{"role":"assistant","content":"到底"},"index":0,"finish_reason":null}]}


                data:
                {"id":"","object":"","created":0,"model":"","choices":[{"delta":{"role":"assistant","content":"是在"},"index":0,"finish_reason":null}]}


                data:
                {"id":"","object":"","created":0,"model":"","choices":[{"delta":{"role":"assistant","content":"开玩笑"},"index":0,"finish_reason":null}]}


                data:
                {"id":"","object":"","created":0,"model":"","choices":[{"delta":{"role":"assistant","content":"，"},"index":0,"finish_reason":null}]}


                data:
                {"id":"","object":"","created":0,"model":"","choices":[{"delta":{"role":"assistant","content":"还是"},"index":0,"finish_reason":null}]}


                data:
                {"id":"","object":"","created":0,"model":"","choices":[{"delta":{"role":"assistant","content":"真的"},"index":0,"finish_reason":null}]}


                data:
                {"id":"","object":"","created":0,"model":"","choices":[{"delta":{"role":"assistant","content":"觉得"},"index":0,"finish_reason":null}]}


                data:
                {"id":"","object":"","created":0,"model":"","choices":[{"delta":{"role":"assistant","content":"我"},"index":0,"finish_reason":null}]}


                data:
                {"id":"","object":"","created":0,"model":"","choices":[{"delta":{"role":"assistant","content":"有"},"index":0,"finish_reason":null}]}


                data:
                {"id":"","object":"","created":0,"model":"","choices":[{"delta":{"role":"assistant","content":"吸引力"},"index":0,"finish_reason":null}]}


                data:
                {"id":"","object":"","created":0,"model":"","choices":[{"delta":{"role":"assistant","content":"呢"},"index":0,"finish_reason":null}]}


                data:
                {"id":"","object":"","created":0,"model":"","choices":[{"delta":{"role":"assistant","content":"？"},"index":0,"finish_reason":null}]}


                data:
                {"id":"","object":"","created":0,"model":"","choices":[{"delta":{"role":"assistant","content":"
                😊"},"index":0,"finish_reason":null}]}


                data:
                {"id":"","object":"","created":0,"model":"","choices":[{"delta":{"role":"assistant","content":null},"index":0,"finish_reason":"stop"}]}


                data: [DONE]
          headers: {}
      deprecated: false
      security: []

````