feat: add a Nebius Token Factory example provider profile
Maintainer thường phản hồi trong vòng 1 ngày
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 2/5
- Thời gian dự kiến
- 1-3 giờ
- Mức phù hợp với người mới
- 82/100
Hướng nghiên cứu
Đọc các hồ sơ mẫu hiện có trong providers/ và danh sách ID dự kiến trong list_provider_profiles_returns_built_in_profile_categories. Thêm providers/nebius-token-factory.yaml theo cùng định dạng, cho phép các tuyến suy luận được liệt kê và loại trừ các tuyến quản lý được nêu trong issue. Hoàn tất khi hồ sơ vượt qua kiểm tra lint và được nhập, đồng thời bài kiểm tra danh mục hồ sơ có ID của nó.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
User Story
I use OpenShell to run coding and research agents in sandboxes, and my models are served by Nebius Token Factory through its OpenAI-compatible API at https://api.tokenfactory.nebius.com/v1. Today I have to hand-write a provider profile for it, and the obvious copy of the openai profile with the host swapped would hand my agents a key that can also create dedicated endpoints and fine-tuning jobs on my account.
Problem Statement
providers/ has no example profile for Nebius Token Factory. Operators who use it have to write one from scratch and decide on their own which parts of the Token Factory API a sandboxed agent should reach.
Impact / Why This Matters
A Token Factory API key works on more than inference. On the same host it can list, upload, and delete files and datasets, start fine-tuning jobs and batch operations, and create, update, or delete dedicated endpoints, which are billable GPU deployments. A profile that grants the whole host, like the existing openai, nvidia, and deepinfra examples, lets a sandboxed agent use the injected key for all of that. Operators who don't read the API reference closely will not notice.
Proposed Design
Add providers/nebius-token-factory.yaml, following the format of the other example profiles:
id: nebius-token-factory
display_name: Nebius Token Factory
category: inference
inference_capable: true
credentials:
- name: api_key
env_vars: [NEBIUS_API_KEY]
auth_style: bearer
header_name: authorization
endpoints:
- host: api.tokenfactory.nebius.com
port: 443
protocol: rest
enforcement: enforce
rules:
- allow: { method: POST, path: "/v1/chat/completions" }
- allow: { method: POST, path: "/v1/completions" }
- allow: { method: POST, path: "/v1/embeddings" }
- allow: { method: POST, path: "/v1/rerank" }
- allow: { method: POST, path: "/v1/responses" }
- allow: { method: GET, path: "/v1/models" }
binaries: [/usr/bin/curl, /usr/local/bin/curl]
Workflow:
openshell provider profile import -f providers/nebius-token-factory.yaml --global
openshell provider create --name nebius --type nebius-token-factory --credential NEBIUS_API_KEY
openshell sandbox create --provider nebius -- curl -sS https://api.tokenfactory.nebius.com/v1/models
NEBIUS_API_KEY matches the variable name in the Token Factory documentation.
Acceptance Criteria
-
providers/nebius-token-factory.yamllints and imports, and has the same header block as the other examples (client binaries, reference layout, credential scope, endpoint access, smoke test). - A sandbox with the provider attached can call chat completions (streaming included), completions, embeddings, rerank, the Responses API, and the model list.
- In that sandbox, requests to the files, datasets, fine-tuning, operations, and dedicated-endpoint APIs are denied by the proxy.
- No telemetry or provider-table changes are needed, in line with #3906.
Alternatives Considered
- Leave it to operators to copy the
openaiprofile and change the host. That gives agents the whole Token Factory API, as described above. - Grant
/v1/**read-write. This is simpler, but it still allows file, dataset, fine-tuning, and operation calls, and it would allow new management routes added under/v1later. - An endpointless profile bound per sandbox from policy. That suits per-deployment hosts, but Token Factory has a single public host, so a fixed endpoint is simpler for operators.
Agent Investigation
- Profiles are import-only examples under
providers/. Adding one changes only the YAML and the expected-ID list inlist_provider_profiles_returns_built_in_profile_categories, as in #3904. - I listed the routes from Token Factory's published OpenAPI spec (
https://api.tokenfactory.nebius.com/openapi.json). Inference routes are the ones above. Management routes are under/v1/files,/v1/datasets,/v1/fine_tuning,/v1/operations, and/v0/dedicated_endpoints.
- Ngôn ngữ chính
- Rust
- Star
- 17.1k
- Fork
- 1.8k
- Merge trung bình
- 2 ngày 8 giờ
- Pull request đã merge (30 ngày)
- 370
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- Có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của NVIDIA/OpenShell
-
bug(install): install.sh prints gawk "escape sequence \. treated as plain ." warnings on RPM hostsCó thể đã có người làm @ericcurtin đã nhận hôm nay. Đang mởstate:triage-needed
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
Maintainer thường phản hồi trong vòng 1 ngày
-
bug(sdk/go): browser login callback binds 127.0.0.1 but redirect_uri uses localhostCó thể làm lại được Pull request cho issue này đã bị đóng mà không được merge. Đang mởstate:triage-needed
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 65/100
NVIDIA/OpenShell#4518 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
state:triage-needed
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 62/100
Maintainer thường phản hồi trong vòng 1 ngày
-
bug(sdk/go): edge (Cloudflare Access) token is cached for the client lifetime and never reloadedĐang mởstate:triage-needed
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
NVIDIA/OpenShell#4515 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
state:triage-needed
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của NVIDIA/OpenShell
Issue tương tự
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 66/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 62/100
foxglove/mcap#1907 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 66/100
Maintainer thường phản hồi trong vòng 1 ngày
-
good first issue help wanted r-feature
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
servo/rust-smallvec#792 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 88/100
Maintainer thường phản hồi trong vòng 1 ngày