Community project: strata-router, a multi-node router for Strata / 社区项目:Strata 多节点路由入口
Los mantenedores suelen responder en 3 días
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 65/100
- Tipo de issue
- Documentación
- Claridad
- Bastante claro
- Estado de actividad
- Activo
- Stack tecnológico
- python
- Área
- documentation
Línea de trabajo
Lee README.md (y todas las páginas de docs/ que enumeren proyectos relacionados o de la comunidad) para encontrar dónde se mencionan herramientas externas; el cambio consiste en añadir un enlace a github.com/konijiwa110/strata-router con una descripción de una línea. Ten en cuenta que la issue también invita a que un maintainer decida si la mención es deseada en absoluto, así que confirma que la sección existe antes de editar. Se considera terminado cuando el enlace aparece en la sección correspondiente de README/docs.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
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 或文档里提一下就太好了;不合适的话直接关闭即可。
- Lenguaje dominante
- C++
- Estrellas
- 11.6k
- Forks
- 1k
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de Niko1221/Strata
-
Dificultad 1/5 1-3 horas Aptitud para principiantes 76/100
Los mantenedores suelen responder en 3 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
Los mantenedores suelen responder en 3 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 3 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
Los mantenedores suelen responder en 3 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 3 días
Todos los issues de Niko1221/Strata
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 3 días
-
status:needs-triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
PX4/PX4-Autopilot#29496 ·
Los mantenedores suelen responder en 1 día
-
Missing icon for .cpp2 filesAbierto
Dificultad 1/5 Menos de una hora Aptitud para principiantes 66/100
madskristensen/FileIcons#385 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
microsoft/SysmonCommon#26 ·
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 90/100
espressif/esp-matter#1913 ·