Community project: strata-router, a multi-node router for Strata / 社区项目:Strata 多节点路由入口
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 65/100
- Tipo di issue
- Documentazione
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Attiva
- Stack tecnologico
- python
- Ambito
- documentation
Direzione di ricerca
Leggi README.md (e tutte le pagine di docs/ che elencano progetti correlati o della community) per individuare dove vengono menzionate strumenti esterni; la modora consiste nell'aggiungere un link a github.com/konijiwa110/strata-router con una descrizione di una riga. Nota che l'issue invita anche un maintainer a decidere se la menzione sia opportuna o meno, quindi verifica che la sezione esista prima di modificare. È completato quando il link appare nella sezione appropriata di README/docs.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Hi, thanks for Strata! I run it on a couple of machines and wrote a small router in front of them. Sharing it in case it is useful to others:
https://github.com/konijiwa110/strata-router (MIT)
What it does
Clients point at one endpoint and requests are spread across several Strata nodes. The API is the same as Strata's (/v1/messages, /v1/chat/completions, /v1/responses, /v1/models, ...); requests are passed through to the nodes unchanged.
Routing
- Sticky sessions: a session is identified by its system prompt plus first user message, and goes back to the node that already has its KV cache.
- Moving when busy: if that node is busy, the router estimates how many tokens an idle node would have to re-read (not counting the system prompt and tools the idle node already cached). It moves the session only if that is under a threshold, otherwise it waits for the original node.
- Strategies: even, least load, random, weighted.
- Node modes: enable / drain / disable; a request that fails to connect is retried on another node.
Console
- Node hardware metrics and live progress, including prompt-read progress from
/metrics - Request log with the routing decision for each request
- Multiple access keys with usage stats
- Chinese / English UI; the backend uses only the Python standard library
If you think it is worth a mention in the README or docs, that would be great; feel free to close this otherwise.
中文
感谢 Strata!我在几台机器上跑 Strata,前面加了一个路由入口,开源出来,也许对别人有用:
**https://github.com/konijiwa110/strata-router**(MIT)
功能
客户端只连一个入口,请求会分到多台 Strata 节点。接口与 Strata 相同(/v1/messages、/v1/chat/completions、/v1/responses、/v1/models 等),请求原样转发给节点。
路由
- 会话粘性:以系统提示加第一条用户消息识别会话,同一会话回到已有其 KV 缓存的节点。
- 忙时换机:原节点忙时,估算换到空闲节点需要重读多少 token(不计该节点已缓存的系统提示与工具),低于阈值才换,否则等原节点。
- 分配策略:平均分配、最少负载、随机、按权重。
- 节点状态:启用 / 排空 / 停用;连接失败的请求自动换到其他节点重试。
控制台
- 节点硬件指标与实时进度(含从
/metrics读取的提示读取进度) - 请求记录,含每个请求的路由决策
- 多个访问密钥及用量统计
- 中文 / 英文界面;后端只用 Python 标准库
如果觉得值得在 README 或文档里提一下就太好了;不合适的话直接关闭即可。
- Lingua principale
- C++
- Stelle
- 11.6k
- Fork
- 1k
- Merge medio
- 7h 46m
- PR unite (30g)
- 30
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di Niko1221/Strata
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 86/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
Niko1221/Strata#974 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di Niko1221/Strata
Issue simili
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
gavinlouuu-kpt/mib-studio-qt#517 ·
I maintainer di solito rispondono entro 1 giorno
-
ws_bridge: stripping format=evr for matchmaker connections can concatenate the path and queryApertabug
Difficoltà 2/5 1-3 ore Idoneità per principianti 73/100
EchoTools/nevr-runtime#116 ·
I maintainer di solito rispondono entro 1 giorno
-
code-quality libc++
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 82/100
llvm/llvm-project#229284 ·
I maintainer di solito rispondono entro 1 giorno
-
test-issue
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
llvm/offload-test-suite#1557 ·
I maintainer di solito rispondono entro 1 giorno
-
[C++] GetSchema labels its null check on each schema field as "DictionaryEncoding.indexType"Forse già presa Una pull request collegata a questa issue è aperta o già unita. ApertaComponent: C++
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 88/100
I maintainer di solito rispondono entro 1 giorno