Kimi K3 现已上线查看 Kimi K3
EvoLink Smart Router 使用教程:API 接入与生产验证
教程

EvoLink Smart Router 使用教程:API 接入与生产验证

Jessie
Jessie
COO
2026年3月11日
更新于 2026年7月16日
12 分钟阅读
使用 EvoLink Smart Router 最直接的方法,是向 https://direct.evolink.ai/v1/chat/completions 发送标准的 OpenAI 兼容请求,并将 model 设置为 evolink/auto
应用保持统一的请求格式,路由器则为支持的文本和 Agent 请求选择合适的模型。实际命中的模型会通过 response.model 返回,因此团队可以观察、记录和评估路由行为,而不是把它当成黑盒。
如果需要先理解模型路由的概念,可以阅读什么是 AI 模型路由;当前产品能力和路由配置请查看 EvoLink Smart Router

Smart Router 快速参考

配置作用
Endpointhttps://direct.evolink.ai/v1/chat/completions接收 OpenAI 兼容 Chat Completions 请求
认证Authorization: Bearer $EVOLINK_API_KEY使用 EvoLink API Key 认证
Model IDevolink/auto启用 Smart Router
请求格式OpenAI 兼容 messages 数组保持常见 SDK 接入方式
实际路由模型response.model返回真正处理请求的模型
当前适用范围文本和 Agent 工作流图像、视频生成应使用明确的模型 ID
Endpoint 和参数如有变化,应以 EvoLink Auto 官方 Quickstart为准。

1. 创建并保存 API Key

在 EvoLink 控制台创建 API Key,然后通过环境变量保存,不要硬编码在应用代码中:

export EVOLINK_API_KEY="your-api-key"

PowerShell:

$env:EVOLINK_API_KEY="your-api-key"

建议为本地开发、测试环境和生产环境使用不同的 Key,以便分别分析用量和执行密钥轮换。

2. 发送第一个 Smart Router 请求

curl --request POST \
  --url https://direct.evolink.ai/v1/chat/completions \
  --header "Authorization: Bearer $EVOLINK_API_KEY" \
  --header "Content-Type: application/json" \
  --data '{
    "model": "evolink/auto",
    "messages": [
      {
        "role": "user",
        "content": "将这条客服请求分类为账单、技术问题或账户访问:重置密码后我无法登录。"
      }
    ],
    "temperature": 0.2,
    "stream": false
  }'
返回结果仍然采用常见的 Chat Completions 格式。路由观测最重要的字段是 model
{
  "id": "chatcmpl-example",
  "object": "chat.completion",
  "model": "actual-routed-model",
  "choices": [
    {
      "message": {
        "role": "assistant",
        "content": "账户访问"
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 26,
    "completion_tokens": 4,
    "total_tokens": 30
  }
}
actual-routed-model 只是示意值。候选模型可能随可用性、价格、性能和路由策略变化,实际分析必须使用真实响应中的 model

3. 使用 Python 接入

import os
import time
from openai import OpenAI

client = OpenAI(
    api_key=os.environ["EVOLINK_API_KEY"],
    base_url="https://direct.evolink.ai/v1",
)

started_at = time.perf_counter()

response = client.chat.completions.create(
    model="evolink/auto",
    messages=[
        {
            "role": "user",
            "content": "总结这份故障报告,并列出接下来两项工程动作。",
        }
    ],
    temperature=0.2,
)

print("routed_model:", response.model)
print("latency_ms:", round((time.perf_counter() - started_at) * 1000))
print("usage:", response.usage)
print("output:", response.choices[0].message.content)
Node.js 的接入方式相同:将 baseURL 设置为 https://direct.evolink.ai/v1,将 model 设置为 evolink/auto

如果 Prompt 或返回内容可能包含密钥、个人信息或客户数据,不要直接写入日志。日志应遵循团队自己的隐私和数据保留要求。

Smart Router 如何完成路由

对于支持的文本请求,路由过程可以概括为五步:

  1. 应用发送使用 evolink/auto 的 OpenAI 兼容请求。
  2. 路由器分析任务类型和复杂度。
  3. 请求被映射到 Fast、Standard 或 Reasoning 等路由配置。
  4. 合适的候选模型处理请求。
  5. 实际选择的模型通过 response.model 返回。
路由配置典型用途示例任务
Fast简单、高频文本任务改写、分类、格式化
Standard通用文本处理摘要、结构化提取、客服分析
Reasoning更复杂的分析与规划多步骤分析、决策支持、Agent 规划
Coding / Agentic Coding支持的 Coding 工作流Code Review、调试、重构规划

这些配置代表任务类别,不是永久不变的公开模型列表。不要在业务代码中依赖某个固定候选池。

Smart Router 与固定模型怎么选

工作负载Smart Router固定模型
分类、提取和推理混合适合作为评估起点需要自行维护选模逻辑
产品早期阶段适合收集真实负载数据Baseline 明确后更有价值
严格模型 Benchmark模型会变化,不适合正确选择
确定性 QA 或受控审批流程需要谨慎控制通常更安全
依赖模型特有能力无法默认保证必须使用
图像或视频生成不属于当前范围使用明确的媒体模型 ID

实际生产架构通常同时保留两条路径:

  • 混合或仍在变化的文本工作负载使用 evolink/auto
  • 已完成评估、依赖模型能力或需要严格控制的功能使用固定模型 ID

每次路由请求应该记录什么

字段作用
功能或 Workflow 名称区分不同业务流量
Request ID关联应用日志与 API 排障
response.model确认实际路由模型
延迟判断是否符合业务响应时间目标
输入和输出 Token支持用量和成本分析
HTTP 状态与重试次数暴露可靠性问题
质量结果记录任务自己的 Eval 结果

质量结果可以是确定性校验、人工标签、测试用例结果或其他适合该任务的评估方式。不要用一个通用分数覆盖所有工作流。

生产部署前如何验证

第一步:准备有代表性的测试集

使用真实业务样本,覆盖常规请求、模糊输入、长 Prompt、错误格式,以及输出错误会造成明显风险的场景。

第二步:选择固定模型 Baseline

使用应用当前调用的固定模型作为对照。Prompt、参数和评估规则必须保持一致。

第三步:运行 Smart Router

将相同输入发送给 evolink/auto,逐条记录路由模型、延迟、Token、错误和质量结果。

第四步:按工作流而不是只看平均值

Router 的整体平均结果可能很好,但仍可能不适合某个高风险功能。应按任务类型、客户层级、延迟要求和失败影响拆分分析。

第五步:先灰度低风险流量

先选择可以复核或重试的工作流。严格 QA、敏感操作以及依赖特定模型能力的功能继续使用固定模型。

常见 API 错误及处理方式

状态码含义建议处理
400请求参数无效检查 JSON、Model ID、messages 和参数类型
401API Key 无效或过期检查 Bearer Token,必要时轮换密钥
402额度不足检查账户余额和账单
403无法访问该能力确认账户是否已开放 Smart Router
429Rate Limit使用有限次数的指数退避和 Jitter
500 / 502 / 503内部或上游服务错误退避后重试,并保留应用级 Fallback

客户端应设置明确的 Timeout。不要无限重试,否则会放大延迟、重复任务和成本。

常见接入误区

  • 认为 Smart Router 一定选择最便宜的模型
  • 认为同一个 Prompt 永远命中同一个模型
  • 将图像或视频生成请求发送给 evolink/auto
  • 没有记录 response.model
  • 对外发布一个固定不变的候选模型列表
查看 EvoLink Smart Router

FAQ

使用官方 Quickstart 中的 POST https://direct.evolink.ai/v1/chat/completions,并通过 Bearer API Key 认证。

启用 Smart Router 的 Model ID 是什么?

将请求中的 model 设置为 evolink/auto

如何知道请求最终使用了哪个模型?

查看 Chat Completions 返回结果中的 model 字段,并将它与延迟、Token、状态码和 Workflow 信息一起记录。

Smart Router 一定比固定模型便宜吗?

不一定。实际成本取决于请求内容、路由模型、输出长度、重试次数和质量要求。

同一个 Prompt 会一直使用同一个模型吗?

不要依赖这种行为。如果业务要求明确的模型身份或可复现测试,应使用固定模型 ID。

Smart Router 可以路由图像和视频生成吗?

当前产品范围是支持的文本和 Agent 请求。图像和视频生成应使用明确的模型 ID。

支持 Streaming 吗?

官方请求 Schema 包含 stream 参数。在将 Streaming 作为生产接口契约前,应先在自己的账户和客户端中验证行为。

什么时候应该改用固定模型?

当某个工作流已经有明确的最佳模型、依赖模型特有能力,或者需要严格的回归测试和审批流程时。

下一步

用同一套测试集分别运行 evolink/auto 和一个固定模型,对比质量、延迟、Token、错误以及实际返回的模型,再决定哪些生产流量继续使用路由。

准备好把 AI 成本降低 89% 吗?

现在就开始使用 EvoLink,体验智能 API 路由的强大能力。