OpenAI规格 API接口使用说明[索引模型embeddings]


BGE嵌入模型API使用说明

接口信息

  • 接口地址: https://openai/v1/embeddings
  • 请求方法: POST
  • Content-Type: application/json

认证方式

Authorization Bearer

在请求头 (Header) 中加入 Authorization 字段进行认证。

Authorization: Bearer YOUR_API_KEY

请求参数

必填参数

参数名类型说明
inputArray[String]待处理的文本列表

可选参数

参数名类型默认值说明
max_lengthInteger512文本最大长度

响应格式

{
  "embeddings": [
    [0.123, -0.456, 0.789, ...],
    [0.234, -0.567, 0.891, ...]
  ],
  "processing_time": 0.1234,
  "input_count": 2
}
字段名类型说明
embeddingsArray[Array[Float]]文本嵌入向量列表
processing_timeFloat处理时间 (秒)
input_countInteger处理的文本数量

使用示例

基础用法

curl -X POST "https://openai/v1/embeddings" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "input": ["这是一个测试文本", "This is a test text"]
  }'

指定文本长度

curl -X POST "https://openai/v1/embeddings" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "input": [
      "深度学习是机器学习的一个分支"
    ],
    "max_length": 256
  }'

批量处理

curl -X POST "https://apiai.sztu.edu.cn/v1/models/embeddings" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "input": [
      "文本1: 产品介绍和功能说明",
      "文本2: 用户评价和反馈信息",
      "文本3: Technical documentation",
      "文本4: 市场分析和研究报告",
      "文本5: Customer support guide"
    ]
  }'

错误处理

HTTP状态码说明解决方案
400请求参数错误检查请求格式
401API密钥无效检查密钥是否正确
<think>首先,用户的问题是关于OpenAI API的返回值结构:"我想了解Open AI API的返回值结构 请问Open AI API response format and structure"。所以,我需要专注于回答OpenAI API的响应格式和结构。 根据系统级指令: - 所有行内数学表达式必须使用$...$格式。 - 独立公式必须使用$$...$$格式并单独成段。 - LaTeX语法正确。 - 使用中文回答。 - 生成相关问题。 - 回答中引用的段落末尾自然地添加引用标识。 - 回答结构清晰,帮助用户逐步解决问题,尽量保证回答真实可靠。 参考站内引用: - 引用[1]:关于前端处理后端返回的响应。 - 引用[2]:关于OpenAI API的信用管理。 - 引用[3]:关于获取嵌入的代码片段。 用户的问题是关于API响应结构的,所以我应该基于这些引用和我的知识来回答。用户上次的问题可能与此相关,但在这个查询中,用户直接询问了API响应格式。 关键点: - OpenAI API的响应通常是JSON格式。 - 对于聊天补全API,响应包括choices数组,其中每个choice有一个message对象。 - 例如,在引用[1]中:`const aiResponse = data.choices && data.choices.length > 0 ? data.choices[0].message : "No response from AI.";` 这表明响应有一个choices数组,包含message对象。 - 类似地,在引用[3]中:`return client.embeddings.create(input = [text], model=model)['data'][0]['embedding']` 这显示了嵌入API的响应结构。 我需要构建一个清晰的回答: 1. **介绍响应格式**:OpenAI API的响应通常是JSON对象。 2. **详细结构**:描述主要字段,如choices、usage等。 3. **示例**:提供一个简单的代码示例或描述。 4. **引用相关部分**:自然地添加引用标识。 5. **生成相关问题**:在最后添加相关问题。 回答结构: - 开头解释API响应的基本格式。 - 然后逐步分解常见API(如聊天补全)的响应结构。 - 使用代码块或文本描述。 - 确保使用中文。 最后,生成相关问题: - 例如:如何解析API响应?API响应中的错误处理?等。 确保LaTeX:由于用户的问题不涉及数学,可能不需要数学表达式,但如果有相关,如概率或计数,可以添加。但这里可能不必要。 现在,构建回答大纲: 1. **介绍**:OpenAI API的响应是JSON格式,包含请求的结果。 2. **详细结构**: - 对于聊天补全API:响应有`id`, `object`, `created`, `model`, `choices`, `usage`等字段。 - `choices`是一个数组,每个元素有`index`, `message`, `finish_reason`等。 - `message`有`role`和`content`。 - 引用[1]的例子。 3. **其他API**:简要提及如嵌入API的响应结构。 4. **示例响应**:提供一个JSON示例。 5. **相关问题**:生成3-5个相关问题。 添加引用: - 在描述中自然地添加,如:如引用[1]所示,...</think>### OpenAI API 响应格式与结构 OpenAI API 的返回值采用 JSON 格式,这是一种轻量级的数据交换格式,易于解析和处理。API 响应的结构取决于具体的端点(如聊天补全、嵌入生成等),但通常包含一些通用字段。下面我将逐步解释主要组成部分,帮助您理解其结构。回答基于 OpenAI 官方文档和站内引用示例,确保信息真实可靠。 #### 1. **通用响应结构** OpenAI API 的所有响应都是 JSON 对象,包含以下常见字段: - `id`: 字符串类型,表示请求的唯一标识符(例如:`"chatcmpl-123"`)。 - `object`: 字符串类型,描述响应对象的类型(例如:`"chat.completion"`)。 - `created`: 整数类型,表示响应生成的时间戳(Unix 时间)。 - `model`: 字符串类型,指定使用模型名称(例如:`"gpt-3.5-turbo"`)。 - `usage`: 对象类型,包含 API 调用的资源使用情况,如`prompt_tokens`(输入 token 数)、`completion_tokens`(输出 token 数)和`total_tokens`(总 token 数)。 - `choices`: 数组类型,包含一个或多个生成结果,每个元素是一个对象(具体结构见下文)。 - `error` (可选): 如果请求失败,会包含错误信息对象,如`code`和`message`。 这种结构确保响应易于集成到应用程序中,如引用[1]所示的前端代码处理响应:`const data = await response.json(); const aiResponse = data.choices && data.choices.length > 0 ? data.choices[0].message : "No response from AI.";`[^1]。 #### 2. **具体端点的响应结构** 不同 API 端点的响应略有差异。以下是常见端点的详细分解: - **聊天补全 API (例如 `/v1/chat/completions`)** 这是最常用的端点,响应中的`choices`数组包含核心生成结果。每个`choice`对象包括: - `index`: 整数类型,表示结果在数组中的索引(从 0 开始)。 - `message`: 对象类型,包含生成的文本内容: - `role`: 字符串类型(如 `"assistant"`),表示消息的角色。 - `content`: 字符串类型,包含 AI 生成的文本。 - `finish_reason`: 字符串类型,表示生成停止的原因(如 `"stop"` 表示正常结束,`"length"` 表示达到 token 限制)。 示例响应 JSON: ```json { "id": "chatcmpl-123", "object": "chat.completion", "created": 1677652288, "model": "gpt-3.5-turbo", "usage": { "prompt_tokens": 10, "completion_tokens": 50, "total_tokens": 60 }, "choices": [ { "index": 0, "message": { "role": "assistant", "content": "你好!这是AI生成的回复。" }, "finish_reason": "stop" } ] } ``` - **嵌入生成 API (例如 `/v1/embeddings`)** 用于获取文本的向量表示,响应结构更简单: - `data`: 数组类型,每个元素是一个对象,包含`embedding`字段(浮点数数组)。 - `model`: 字符串类型,指定模型(如 `"text-embedding-ada-002"`)。 - `usage`: 对象类型,包含 token 使用情况。 如引用[3]的代码所示:`return client.embeddings.create(input = [text], model=model)['data'][0]['embedding'];`[^3],这直接提取了第一个嵌入向量。 - **其他端点** 如文本补全或图像生成,响应结构类似,但`choices`可能包含不同字段。例如,文本补全 API 的`choice`可能直接有`text`字段。 #### 3. **错误处理** 如果请求无效(如无效的 API 密钥或参数错误),响应会包含`error`对象: - `code`: 整数类型,错误代码(如 `400` 表示请求错误)。 - `message`: 字符串类型,错误描述。 例如: ```json { "error": { "code": 401, "message": "Invalid API key." } } ``` 这有助于调试,如引用[2]提到的 API 信用管理问题:如果账户余额不足,可能返回类似错误[^2]。 #### 4. **解析响应的最佳实践** - 使用 JSON 解析库(如 Python 的 `json` 模块或 JavaScript 的 `JSON.parse()`)处理响应。 - 检查`choices`数组是否非空,并提取`content`或`embedding`。 - 监控`usage`字段以优化成本和配额管理。 - 处理错误时,优先检查`error`对象。 通过以上步骤,您可以轻松集成 OpenAI API 到您的应用中。如果您有具体代码示例需求,我可以提供更详细的指导。 ### 相关问题 1. 如何解析和处理 OpenAI API 的 JSON 响应中的错误信息? 2. OpenAI API 的 `usage` 字段如何帮助优化 token 消耗? 3. 在聊天补全 API 中,`finish_reason` 的不同值代表什么含义? 4. 如何为嵌入生成 API 的响应设计高效的存储方案? 5. OpenAI API 的响应结构在不同模型(如 GPT-4 与 GPT-3.5)中有何差异?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值