# 用 OpenAI SDK 调用

本页假定你的应用已经使用 OpenAI Python SDK。完成本页后，应用会通过 Genesis 的 Chat Completions 形态获得一条文本回复。

完整的接入方式和使用边界见 [Genesis SDK](../../sdk/genesis-compatible/index.md)。

(sdk-genesis-openai-flow)=
## 调用如何推进

将已有客户端指向 Genesis API Base URL 后，客户端使用当前凭据和模型 ID 提交对话请求。响应中的第一条消息内容是本次调用结果；请求已返回不表示其他请求形态、流式输出或工具调用也具有相同支持范围。

(sdk-genesis-openai-prepare)=
## 准备调用

准备以下内容：

| 需要的内容 | 如何取得 | 在本页中的作用 |
| --- | --- | --- |
| 已有的 OpenAI Python SDK | 使用应用当前依赖，不在本页安装或指定版本 | 创建调用客户端 |
| Genesis API Base URL | 从当前环境的 Genesis 接入信息中取得完整值 | 作为客户端的服务地址 |
| Genesis 访问凭据 | 从当前环境的 Genesis 接入信息中取得 | 作为客户端凭据 |
| 可调用的模型 ID | 从当前环境提供的模型信息或[查看模型列表](../../../reference/api/genesis/models.md)中选择 | 指定本次调用的模型 |

Base URL 的版本路径以当前环境提供的值为准；不要再手动追加路径，也不要混用其他产品的服务地址或凭据。

(sdk-genesis-openai-call)=
## 发送一次对话请求

以下示例创建客户端并提交一次文本对话。代码使用当前模型 ID；返回后从第一条消息中读取文本结果。

```python
import os

from openai import OpenAI

client = OpenAI(
    base_url=os.environ["GENESIS_BASE_URL"],
    api_key=os.environ["GENESIS_ACCESS_TOKEN"],
)

response = client.chat.completions.create(
    model=os.environ["GENESIS_MODEL_ID"],
    messages=[
        {"role": "user", "content": "用一句话解释数据血缘。"},
    ],
)

print(response.choices[0].message.content)
```

打印出文本表示本次 Chat Completions 调用已返回。空内容、请求错误和模型不可用都不应按成功结果处理；请检查对应错误，并确认模型支持该请求形态。

(sdk-genesis-openai-next)=
## 下一步

- 需要请求字段、流式输出或错误处理时，查看 [Chat Completions](../../../reference/api/genesis/text-generation/chat-completions.md)。
- 使用独立输入和输出对象时，改用 [Responses](../../../reference/api/genesis/text-generation/responses.md)。
- 查看[Genesis SDK 中的 OpenAI SDK 使用边界](../../sdk/genesis-compatible/openai-sdk.md)。
