跳转至

入门

完成本章后,你会得到一个可接收 OpenAI Chat Completions 请求的 Legate 开发环境,并理解 Console 中一次调用所需的最小配置链路。

最小配置链路

接入点组(仅用于 Console 整理)
  └─ 接入点(Base URL + Driver + 凭据 + 上游模型)
       └─ 模型组(对外协议 + Endpoint Model 映射)
            └─ API 密钥(模型组授权)
                 └─ 使用模型组名称发起请求

Endpoint Group 不参与路由。真正的调用解析顺序是:

API 密钥 → Workspace → 模型组 → 协议契约 → 映射 → Endpoint → Driver → 上游模型

准备环境

推荐先使用Docker Compose 本机部署。它直接拉取公开镜像,启动 PostgreSQL、Redis、Legate Central 和 Legate Console,并显式使用 --admin-auth-mode=disabled,只适合本机隔离开发。

创建第一个调用链路

1. 创建接入点组

打开 Console 的“接入点”页面,创建一个组,例如“OpenAI”。组名只用于整理页面中的 Endpoint。

2. 创建文本接入点

在组内创建接入点:

  1. 类型选择“文本”。
  2. 接入点类型选择“OpenAI Chat Completions”。
  3. Base URL 填 https://api.openai.com/v1 或兼容服务的 API Root。
  4. api_key credential slot 填写上游密钥。
  5. 点击“同步最新模型”或手动添加精确上游模型 ID。
  6. 保持“启用调度”,保存。

选择接入点类型后 Console 会固定对应的内置 Driver。自定义类型只列出 Workspace 中的文本 WASM Driver。

3. 创建模型组

进入“模型组”,创建 chat-default

  1. 类型选择“文本”,状态保持“正常”。
  2. 对外接口格式至少选择“OpenAI Chat Completions”。
  3. Sidecar 配置下发先选择 full
  4. 添加刚才的 Endpoint 与上游模型映射。
  5. 第一个映射使用主用池 tier = 0,权重可保持 100

模型组名称就是请求里的公开 model,不需要与上游模型 ID 相同。Contract 选择决定这个名称可以从哪些入口调用。

4. 创建 API 密钥

进入“API 密钥”,创建一个启用的密钥,并把 chat-default 加入授权模型组。

立即保存密钥

完整 sk-leg-... 只在创建结果中显示一次。Legate 之后只保存 SHA-256 散列和用于识别的前后缀。

5. 发起请求

curl http://127.0.0.1:8081/v1/chat/completions \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer <LEGATE_API_KEY>' \
  -d '{
    "model": "chat-default",
    "messages": [{"role": "user", "content": "用一句话介绍 Legate"}],
    "stream": false
  }'

模型代理当前只从 Authorization: Bearer 读取 Legate API 密钥,不接受 X-Api-KeyApi-Key 作为调用方认证头。那些头部可能由 Driver 用于上游认证,不能代替 Legate 密钥。

流式调用

stream 改为 true 即进入同一 Contract 的 SSE 生命周期:

curl -N http://127.0.0.1:8081/v1/chat/completions \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer <LEGATE_API_KEY>' \
  -d '{"model":"chat-default","messages":[{"role":"user","content":"Hello"}],"stream":true}'

文本 Driver 声明一个 Contract 时必须同时实现 buffered 与 SSE。图片入口只支持 buffered。

判断调用是否正常

成功响应至少证明 API 密钥、Workspace、模型组授权、入站 Contract、映射、Endpoint Binding 和上游连接都可用。打开“运行统计”查看:

  • origin request 的最终 Outcome、总耗时和 HTTP 状态;
  • 每个 Endpoint attempt 的 tier、weight、上游状态和故障转移原因;
  • buffered 或流式传输状态;
  • Usage、Token/s、已知成本与遥测完整度。

下一步