# 可靠性 (/docs/zh-CN/reliability)

一个模型由多家供应商提供时，OhMyGPT 替你做好故障转移，你不用写任何代码。如果某家供应商在输出任何内容之前就失败了，同一个请求会转给另一家。你只调用一次，拿到一个答案，并且只为给出答案的那次尝试付费。

想知道是哪家供应商应答的，用 `X-Request-ID` [查询这个请求](/docs/zh-CN/costs#查询单个请求)。

## 流式输出 [#流式输出]

流式请求只在开始输出之前切换供应商。一旦开始输出，就会由同一家供应商输出到底。如果生成中途停止，流会以一个[错误事件](/docs/zh-CN/errors#流式输出中途出错)结束，SDK 会把它作为异常抛出；重新发送请求即可得到完整的回答。

## 超时 [#超时]

推理模型可能要思考好几分钟才输出第一个 token，模型工作时流也可能在两个分块之间停顿。请把 HTTP 客户端以及它前面的任何代理的读取超时设为几分钟，确保这类响应能完整送达：

```python tab="Python"
client = OpenAI(
    base_url="https://api.ohmygpt.com/v1",
    api_key=os.environ["OHMYGPT_API_KEY"],
    timeout=600,
)
```

```ts tab="TypeScript"
const client = new OpenAI({
  baseURL: 'https://api.ohmygpt.com/v1',
  apiKey: process.env.OHMYGPT_API_KEY,
  timeout: 600_000,
})
```

## 提前停止请求 [#提前停止请求]

想在中途停止生成，请使用流式请求并关闭连接：供应商那边的请求随之停止，你只为截至那时已生成的输出付费。非流式请求一旦发出就会运行到结束，即使客户端断开连接也一样。

## 模型持续不可用时 [#模型持续不可用时]

如果 OhMyGPT 已经尝试过模型的各家供应商，调用仍返回 5xx，请按[何时重试](/docs/zh-CN/errors#何时重试)中的说明退避重试，或者换一个模型。所有模型都用同一个 Key 和同一套 API，换模型只需改一行代码。
