Định tuyến nhà cung cấp
Khi sử dụng OpenRouter làm nhà cung cấp LLM của bạn, Đại lý Hermes hỗ trợ định tuyến nhà cung cấp — kiểm soát chi tiết về việc nhà cung cấp AI cơ bản nào xử lý các yêu cầu của bạn và cách ưu tiên chúng.
OpenRouter định tuyến các yêu cầu tới nhiều nhà cung cấp (ví dụ: Anthropic, Google, AWS Bedrock, Together AI). Định tuyến nhà cung cấp cho phép bạn tối ưu hóa chi phí, tốc độ, chất lượng hoặc thực thi các yêu cầu cụ thể của nhà cung cấp.
Cấu hình
Thêm phần
provider_routing vào
~/.Hermes/config.yaml ` của bạn:
provider_routing:
sort: "price" # How to rank providers
only: [] # Whitelist: only use these providers
ignore: [] # Blacklist: never use these providers
order: [] # Explicit provider priority order
require_parameters: false # Only use providers that support all parameters
data_collection: null # Control data collection ("allow" or "deny")
`
:::info
Định tuyến của nhà cung cấp chỉ áp dụng khi sử dụng OpenRouter. Nó không có tác dụng với các kết nối trực tiếp của nhà cung cấp (ví dụ: kết nối trực tiếp với API Anthropic).
:::
## Tùy chọn
###
`sort
``Kiểm soát cách OpenRouter xếp hạng các nhà cung cấp có sẵn cho yêu cầu của bạn.
| Giá trị | Mô tả |
|-------|-------------|
|
"price"
` | Nhà cung cấp rẻ nhất đầu tiên |
|
"throughput"
` | Token mỗi giây nhanh nhất đầu tiên |
|
"latency"
` | Mã thông báo đầu tiên có thời gian thấp nhất trước |
``` yaml
provider_routing:
sort: "price"
`
###
`only
``Danh sách trắng tên nhà cung cấp. Khi được đặt, **chỉ** những nhà cung cấp này sẽ được sử dụng. Tất cả những người khác đều bị loại trừ.
`YAML
provider_routing:
only:
- "Anthropic"
- "Google"
`
###
`ignore
``Danh sách đen tên nhà cung cấp. Những nhà cung cấp này sẽ **không bao giờ** được sử dụng, ngay cả khi họ cung cấp tùy chọn rẻ nhất hoặc nhanh nhất.
``` yaml
provider_routing:
ignore:
- "Together"
- "DeepInfra"
`
###
`order
``Thứ tự ưu tiên rõ ràng Ưu tiên các nhà cung cấp được liệt kê đầu tiên. Các nhà cung cấp chưa niêm yết được sử dụng làm dự phòng.
``` yaml
provider_routing:
order:
- "Anthropic"
- "Google"
- "AWS Bedrock"
`
###
`require_parameters
``Khi
`true
, OpenRouter sẽ chỉ định tuyến đến các nhà cung cấp hỗ trợ **tất cả** thông số trong yêu cầu của bạn (như
`temperature
,
`top_p
,
`tools
, v.v.). Điều này tránh việc giảm tham số im lặng.
``` yaml
provider_routing:
require_parameters: true
`
###
`data_collection
``Kiểm soát liệu nhà cung cấp có thể sử dụng lời nhắc của bạn để đào tạo hay không. Các tùy chọn là
"allow"
` hoặc
"deny"
.
`YAML
provider_routing:
data_collection: "deny"
`
## Ví dụ thực tế
### Tối ưu hóa chi phí
Hướng tới nhà cung cấp rẻ nhất hiện có. Tốt cho việc sử dụng và phát triển khối lượng lớn:
`YAML
provider_routing:
sort: "price"
`
### Tối ưu hóa tốc độ
Ưu tiên các nhà cung cấp có độ trễ thấp để sử dụng tương tác:
`YAML
provider_routing:
sort: "latency"
`
### Tối ưu hóa thông lượng
Tốt nhất cho việc tạo dạng dài trong đó số lượng mã thông báo mỗi giây rất quan trọng:
`YAML
provider_routing:
sort: "throughput"
`
### Khóa các nhà cung cấp cụ thể
Đảm bảo tất cả các yêu cầu đều thông qua một nhà cung cấp cụ thể để đảm bảo tính nhất quán:
`YAML
provider_routing:
only:
- "Anthropic"
`
### Tránh các nhà cung cấp cụ thể
Loại trừ các nhà cung cấp mà bạn không muốn sử dụng (ví dụ: để bảo mật dữ liệu):
``` yaml
provider_routing:
ignore:
- "Together"
- "Lepton"
data_collection: "deny"
`
### Thứ tự ưu tiên có dự phòng
Trước tiên hãy thử các nhà cung cấp ưa thích của bạn, quay lại với những nhà cung cấp khác nếu không có sẵn:
``` yaml
provider_routing:
order:
- "Anthropic"
- "Google"
require_parameters: true
`
## Nó hoạt động như thế nào
Tùy chọn định tuyến của nhà cung cấp được chuyển tới API OpenRouter thông qua trường
`extra_body.provider
` trên mỗi lệnh gọi API. Điều này áp dụng cho cả hai:
- **Chế độ CLI** — được định cấu hình trong
~/.Hermes/config.yaml
, được tải khi khởi động
- **Chế độ cổng** — cùng một tệp cấu hình, được tải khi cổng khởi động
Cấu hình định tuyến được đọc từ
`config.yaml
` và được chuyển dưới dạng tham số khi tạo
`AIAgent
:
`
providers_allowed ← from provider_routing.only
providers_ignored ← from provider_routing.ignore
providers_order ← from provider_routing.order
provider_sort ← from provider_routing.sort
provider_require_parameters ← from provider_routing.require_parameters
provider_data_collection ← from provider_routing.data_collection
`
:::tip
Bạn có thể kết hợp nhiều lựa chọn. Ví dụ: sắp xếp theo giá nhưng loại trừ một số nhà cung cấp nhất định và yêu cầu hỗ trợ tham số:
``` yaml
provider_routing:
sort: "price"
ignore: ["Together"]
require_parameters: true
data_collection: "deny"
`
`
:::
## Hành vi mặc định
Khi không có phần
`provider_routing
` nào được định cấu hình (mặc định), OpenRouter sử dụng logic định tuyến mặc định của riêng nó, logic này thường tự động cân bằng chi phí và tính khả dụng.
:::tip[Provider Routing vs. Fallback Models]
Các biện pháp kiểm soát định tuyến của nhà cung cấp **các nhà cung cấp phụ trong OpenRouter** xử lý các yêu cầu của bạn. Để tự động chuyển đổi dự phòng sang một nhà cung cấp hoàn toàn khác khi mô hình chính của bạn bị lỗi, hãy xem [Fallback Providers](/docs/user-guide/features/fallback-providers).
:::