# see2ai_llm_gemini_3_1_v1

> SEE2AI SEE2AI 官方大模型 多模态 AI 对话服务，支持文本、图片、视频、文档输入，联网搜索及深度思考模式配置

## 📖 接入指引

**Endpoint**: `POST /api/v1/actions/see2ai_llm_gemini_3_1_v1`

**认证方式**: Bearer Token (租户 API Key)

> **⚠️ 重要提示**
> 
> 本 API 是 SEE2AI 平台封装后的接口，**参数格式与上游官方（如火山引擎、OpenAI等）API 不同**。
> 请直接使用下方 Schema 中定义的参数，无需参考官方文档。
> 
> *例如：*
> *- 文本模型参数可能是 `query` 而不是 `messages` 数组*
> *- 视频模型参数可能是 `brief` (创意简报) 而不是复杂的配置项*

## 📥 输入参数 (Input Schema)

```json
{
  "description": "SEE2AI 官方大模型 对话输入模型",
  "properties": {
    "query": {
      "description": "用户问题内容",
      "title": "Query",
      "type": "string"
    },
    "image_urls": {
      "anyOf": [
        {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": [],
      "description": "图片 URL 列表（可选），支持多张图片。注意：只接受公网 URL。如果你当前只有本地图片文件，请务必先调用 `see2ai_storage_upload_v1` 将图片上传并获取 URL 后，再将 URL 填入此处。",
      "title": "Image Urls"
    },
    "document_urls": {
      "anyOf": [
        {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": [],
      "description": "文档 URL 列表（可选）。**仅支持 PDF 或 TXT**；docx/xlsx/pptx 等 Office 格式必须先转换为 PDF 再传（传入会被直接 415 拒绝，不会走上游）。只接受公网 URL，本地文件请先调用 `see2ai_storage_upload_v1` 上传获取 URL。",
      "title": "Document Urls"
    },
    "enable_search": {
      "default": false,
      "description": "是否启用 Google 搜索获取实时信息",
      "title": "Enable Search",
      "type": "boolean"
    },
    "enable_thinking": {
      "default": false,
      "description": "是否启用深度思考模式 (HIGH/LOW)",
      "title": "Enable Thinking",
      "type": "boolean"
    },
    "stream": {
      "default": false,
      "description": "是否启用流式返回",
      "title": "Stream",
      "type": "boolean"
    }
  },
  "required": [
    "query"
  ],
  "title": "GeminiChatInput",
  "type": "object"
}
```

### 参数说明

| 参数名 | 类型 | 必填 | 默认值 | 说明 |
|--------|------|------|--------|------|
| `query` | string | ✅ 是 | `-` | 用户问题内容 |
| `image_urls` | string | ❌ 否 | `[]` | 图片 URL 列表（可选），支持多张图片。注意：只接受公网 URL。如果你当前只有本地图片文件，请务必先调用 `see2ai_storage_upload_v1` 将图片上传并获取 URL 后，再将 URL 填入此处。 |
| `document_urls` | string | ❌ 否 | `[]` | 文档 URL 列表（可选）。**仅支持 PDF 或 TXT**；docx/xlsx/pptx 等 Office 格式必须先转换为 PDF 再传（传入会被直接 415 拒绝，不会走上游）。只接受公网 URL，本地文件请先调用 `see2ai_storage_upload_v1` 上传获取 URL。 |
| `enable_search` | boolean | ❌ 否 | `False` | 是否启用 Google 搜索获取实时信息 |
| `enable_thinking` | boolean | ❌ 否 | `False` | 是否启用深度思考模式 (HIGH/LOW) |
| `stream` | boolean | ❌ 否 | `False` | 是否启用流式返回 |

## 📤 输出结果 (Output Schema)

```json
{
  "$defs": {
    "GeminiUsageMetadata": {
      "description": "词元使用统计",
      "properties": {
        "input_tokens": {
          "default": 0,
          "title": "Input Tokens",
          "type": "integer"
        },
        "output_tokens": {
          "default": 0,
          "title": "Output Tokens",
          "type": "integer"
        },
        "total_tokens": {
          "default": 0,
          "title": "Total Tokens",
          "type": "integer"
        }
      },
      "title": "GeminiUsageMetadata",
      "type": "object"
    }
  },
  "description": "SEE2AI 官方大模型 对话输出模型",
  "properties": {
    "input_tokens": {
      "default": 0,
      "description": "输入消耗的词元数量",
      "title": "Input Tokens",
      "type": "integer"
    },
    "output_tokens": {
      "default": 0,
      "description": "输出消耗的词元数量",
      "title": "Output Tokens",
      "type": "integer"
    },
    "total_tokens": {
      "default": 0,
      "description": "总消耗的词元数量",
      "title": "Total Tokens",
      "type": "integer"
    },
    "model": {
      "default": "",
      "description": "实际使用的模型名称（由各 action 显式填写）",
      "title": "Model",
      "type": "string"
    },
    "source": {
      "default": "gemini-3.1-pro-preview",
      "description": "模型来源",
      "title": "Source",
      "type": "string"
    },
    "cost_points": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "预先计算的扣费词元（如果插件内部已经计算好费用，则直接使用此值，忽略基于词元的计算）",
      "title": "Cost Points"
    },
    "response": {
      "description": "SEE2AI 官方大模型 的回答",
      "title": "Response",
      "type": "string"
    },
    "usage": {
      "anyOf": [
        {
          "$ref": "#/$defs/GeminiUsageMetadata"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "API 使用量统计"
    },
    "provider_config_id": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "供应商配置 ID（用于追溯）",
      "title": "Provider Config Id"
    }
  },
  "required": [
    "response"
  ],
  "title": "GeminiChatOutput",
  "type": "object"
}
```

### 输出字段说明

| 字段名 | 类型 | 说明 |
|--------|------|------|
| `input_tokens` | integer | 输入消耗的词元数量 |
| `output_tokens` | integer | 输出消耗的词元数量 |
| `total_tokens` | integer | 总消耗的词元数量 |
| `model` | string | 实际使用的模型名称（由各 action 显式填写） |
| `source` | string | 模型来源 |
| `cost_points` | string | 预先计算的扣费词元（如果插件内部已经计算好费用，则直接使用此值，忽略基于词元的计算） |
| `response` | string | SEE2AI 官方大模型 的回答 |
| `usage` | string | API 使用量统计 |
| `provider_config_id` | string | 供应商配置 ID（用于追溯） |

## 💡 调用示例

### cURL 示例

```bash
curl -X POST "https://see2ai.com/api/v1/actions/see2ai_llm_gemini_3_1_v1" \
     -H "Content-Type: application/json" \
     -H "Authorization: Bearer sk-your-tenant-api-key" \
     -d '{
  "query": "请解释量子纠缠的原理",
  "image_urls": "https://example.com/image.jpg",
  "document_urls": "https://example.com/image.jpg",
  "enable_search": true,
  "enable_thinking": true,
  "stream": false
}'
```

### Python 示例

```python
import requests

API_KEY = "sk-your-tenant-api-key"
ENDPOINT = "https://see2ai.com/api/v1/actions/see2ai_llm_gemini_3_1_v1"

headers = {
    "Content-Type": "application/json",
    "Authorization": f"Bearer {API_KEY}"
}

payload = {
  "query": "\u8bf7\u89e3\u91ca\u91cf\u5b50\u7ea0\u7f20\u7684\u539f\u7406",
  "image_urls": "https://example.com/image.jpg",
  "document_urls": "https://example.com/image.jpg",
  "enable_search": true,
  "enable_thinking": true,
  "stream": false
}

response = requests.post(ENDPOINT, json=payload, headers=headers)
result = response.json()

print(f"结果：{result}")
```

## 💰 计费说明

> 按输入/输出词元计费，多模态文件将根据官方规则转换为相应的词元，深度思考模式产生的思考词元也会计入总消耗。

**注意**: 所有费用都以词元为单位，系统会自动从租户余额中扣除。

## ⚠️ 常见错误码

| HTTP 状态码 | 错误原因 | 解决方案 |
| --- | --- | --- |
| `401` | API Key 无效或租户余额不足 | 检查 API Key 是否正确，或联系管理员充值 |
| `422` | 输入参数格式错误（如非法的 URL） | 检查请求参数是否符合 Schema 要求 |
| `429` | 调用频率超限 (Rate Limit Exceeded) | 降低请求频率，或联系管理员调整限流配置 |
| `500` | SEE2AI 官方大模型 上游响应超时或内部错误 | 稍后重试，如持续失败请联系技术支持 |

## 📞 技术支持

- **文档问题**: 查看 [SEE2AI 官方文档](https://see2ai.com/docs)
- **API 状态**: 访问 [服务状态页面](https://see2ai.com/status)
- **问题反馈**: 联系技术支持团队

---

**API 版本**: see2ai_llm_gemini_3_1_v1
**最后更新**: 2026-03-23
