> ## Documentation Index
> Fetch the complete documentation index at: https://phaseo.app/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# 从 LLM Gateway 迁移

> 通过替换兼容 OpenAI 的端点、验证模型 ID 并分阶段检查，从 LLMGateway 迁移到 Phaseo Gateway。

如果应用已经通过兼容 OpenAI 的客户端使用 LLM Gateway，通常可以保留请求负载，并先只替换 Gateway 边界。

## 变更内容

| 设置 | 之前 | 之后 |
| - | - | - |
| 基础 URL | `https://api.llmgateway.io/v1` | `https://api.phaseo.app/v1` |
| API 密钥 | `LLM_GATEWAY_API_KEY` | `PHASEO_API_KEY` |
| 模型别名 | 现有 Gateway 别名 | 使用 `GET /v1/models` 验证，或在单一边界处统一转换 |
| 请求负载 | 现有兼容 OpenAI 的请求 | 首次迁移时保持不变 |

## 开始前

* 当前的 LLM Gateway 端点和 API 密钥配置。
* 在本地、预发布和生产环境中配置 `PHASEO_API_KEY`。
* 用于比较输出质量、延迟和错误率的基准样本。

## 1) 梳理集成位置

找到创建和配置 LLM Gateway 客户端的具体文件。

* 查找所有使用 `LLM_GATEWAY_*` 环境变量的位置。
* 找出运行时配置中的所有基础 URL 引用。
* 记录当前启用的模型 ID 和回退链。
* 记录应迁移到 Gateway 预设中的共享提示词默认值、提供商允许或拒绝规则以及参数预设。

## 2) 切换端点和凭据

先保持请求负载不变。首先只替换端点和密钥，以降低风险。

<CodeGroup>
  ```typescript TypeScript theme={null}
  // Before
  import OpenAI from "openai";

  const before = new OpenAI({
    apiKey: process.env.LLM_GATEWAY_API_KEY,
    baseURL: "https://api.llmgateway.io/v1",
  });
  ```

  ```typescript TypeScript theme={null}
  // After
  import OpenAI from "openai";

  const after = new OpenAI({
    apiKey: process.env.PHASEO_API_KEY,
    baseURL: "https://api.phaseo.app/v1",
  });
  ```

  ```bash cURL theme={null}
  curl -s "https://api.phaseo.app/v1/chat/completions" \
    -H "Authorization: Bearer $PHASEO_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{
      "model": "openai/gpt-4.1-mini",
      "messages": [{"role":"user","content":"Hello"}]
    }'
  ```
</CodeGroup>

## 3) 验证模型兼容性

查询 Phaseo 模型目录，并验证每个生产环境正在使用的模型。

如果当前配置使用 `gpt-4o` 这类无前缀别名，请在单一边界处统一转换，而不是修改每个调用方。

如果原有 Gateway 层还集中管理请求默认值或提供商限制，请在迁移时将其映射到[预设](../guides/presets.mdx)和[路由和回退](../guides/routing-and-fallbacks.mdx)，不要为每个调用方分别重新实现。

```bash theme={null}
curl -s "https://api.phaseo.app/v1/models" \
  -H "Authorization: Bearer $PHASEO_API_KEY" | jq '.data | length'
```

## 4) LLMGateway 迁移检查清单

* 已映射或移除所有 `LLM_GATEWAY_*` 环境变量。
* 基础 URL 已更新为 `https://api.phaseo.app/v1`。
* 已在所有部署环境中配置 `PHASEO_API_KEY`。
* 已通过 `/v1/models` 验证生产模型 ID。
* 已在预发布环境中验证一条非流式请求和一条流式请求。
* 已重新检查无效密钥和无效模型的错误处理。
* 已将适用的共享提示词和路由默认值移至预设。
* 已通过 `GET /v1/generations?id=<request_id>` 重新检查生成记录查询；当 `replay_supported=true` 时，可使用已保存的 `replay_request` 负载重放失败请求。

## 5) 验证并逐步发布

1. 运行基准提示词套件，并与基准值比较质量、延迟和费用。
2. 确认可以通过 `GET /v1/generations` 返回的重放负载恢复预发布环境中的失败请求。
3. 使用金丝雀开关发布，稳定后再逐步增加流量比例。
4. 至少观察一个发布周期的生产指标，再移除旧配置。

## 验证命令

```bash theme={null}
curl -s "https://api.phaseo.app/v1/health"
curl -s "https://api.phaseo.app/v1/models" -H "Authorization: Bearer $PHASEO_API_KEY"
```

然后：

* 在预发布环境中分别运行一条非流式请求和一条流式请求。
* 重放基准提示词并与基准值比较。

## 后续步骤

* [从 OpenRouter 迁移](./from-openrouter.mdx)
* [从 Vercel AI Gateway 迁移](./from-vercel.mdx)
* [快速入门](../quickstart.mdx)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.