gioser

tawasuyu/brahman

Rust 326TOML 123JSON 17Markdown 144606 Definiciones

⎇ 649ca02d4de90ce9f64fa7595b8ebf7edc8c13cc crates/modules/verbo/verbo-daemon/src/lib.rs Rust · 34 líneas · 1.5 KB Historia Quién tocó qué crudo

feat(verbo): verbo-daemon — embeddings compartidos entre procesos 649ca02d4 · sergio ·

1//! `verbo-daemon` — embeddings compartidos entre procesos.
2//!
3//! El problema: cada proceso que quiera embeddings cargaría su propia
4//! copia del modelo (cientos de MB de RAM, descargas duplicadas). La
5//! solución: un [`Daemon`] carga el modelo una vez y lo sirve sobre un
6//! socket Unix; cada proceso usa un [`DaemonClient`] que, por
7//! implementar `verbo_core::Provider`, es indistinguible de un backend
8//! local.
9//!
10//! ```text
11//!   ┌── proceso A ──┐   ┌── proceso B ──┐   ┌── proceso C ──┐
12//!   │ DaemonClient  │   │ DaemonClient  │   │ DaemonClient  │
13//!   └───────┬───────┘   └───────┬───────┘   └───────┬───────┘
14//!           └───────── socket Unix ─────────────────┘
15//!                            │
16//!                  ┌─────────┴─────────┐
17//!                  │   Daemon (Arc<P>) │  ← un modelo en RAM
18//!                  └───────────────────┘
19//! ```
20//!
21//! **Multi-instancia**: para servir varios modelos a la vez se levanta
22//! un daemon por modelo, cada uno en su socket — el daemon es agnóstico
23//! del backend (sirve cualquier `Provider`: `verbo-mock`, un backend
24//! Cohere, uno BGE local).
25
26#![forbid(unsafe_code)]
27
28mod client;
29mod server;
30mod wire;
31
32pub use client::DaemonClient;
33pub use server::Daemon;
34pub use wire::{Request, Response};