36b80bc0a8ebb55ac7252ae4382cb6af0ab290c0
1. Reduced repeat_penalty to 1.15 to avoid degrading normal generation. 2. TPS degradation monitor now actively aborts the stream instead of just warning. 3. Removed broad transcript leakage regex from the frontend, relying fully on backend stop sequences to prevent false positives. 4. Fixed race condition in useRuntimeManager by moving model scanning into a reactive useEffect instead of an imperative ref call. 5. Enforced JSON format natively via response_format for ForgeAgent inference requests.
ForgeLM
ForgeLM e um workspace Rust para inferencia local de LLMs com tres superficies principais:
- uma API HTTP local compativel com partes da API de chat da OpenAI
- uma CLI (
localllm) para operacao, diagnostico e automacao - um app desktop Tauri para runtime management e chat persistente
O projeto hoje e organizado para rodar localmente, com foco em modelos .gguf, operacao local-first e uma ponte entre backend Rust, CLI e interface desktop.
O que existe hoje
crates/inference-server: servidor HTTP comGET /health,GET /v1/modelsePOST /v1/chat/completionscrates/localllm-cli: CLI para status, modelos, auth, config, benchmark, logs e doctortauri-app: app desktop com runtime manager, chat UI, armazenamento local e integracao com o backendcrates/api-contracts: contratos de request/response compartilhadoscrates/inference-core: engine, perfis de runtime e pipeline de inferencia
Inicio rapido
1. Subir a API local
Defina pelo menos o caminho do modelo e execute o servidor:
set LOCALLLM_MODEL=D:\caminho\modelo.gguf
cargo run -p inference-server
Validacoes basicas:
curl http://127.0.0.1:8080/health
curl http://127.0.0.1:8080/v1/models
2. Usar a CLI
cargo run -p localllm-cli -- status
cargo run -p localllm-cli -- models list
3. Abrir o app desktop
cd tauri-app
npm install
npm run tauri dev
No app, abra o Runtime Manager, configure modo local ou remoto e depois use o chat.
Requisitos
- Rust toolchain atual para o workspace
- Node.js/NPM para o app Tauri
- um modelo
.gguflocal para o runtime - GPU NVIDIA e opcional; o projeto tambem possui perfil CPU fallback
Estrutura do repositorio
crates/api-contracts/- contratos HTTP e tipos compartilhadoscrates/inference-core/- engine, sessoes, sampler e perfis de runtimecrates/inference-server/- servidor HTTP localcrates/localllm-cli/- CLI de operacaocrates/metrics/- contadores e medicao de throughputcrates/llama-sys/- bindings/integracao de baixo niveltauri-app/- app desktop Tauri + frontend Reactdocs/- documentacao detalhada
Documentacao
docs/README.md- indice da documentacaodocs/api/overview.md- visao geral do backend e da APIdocs/api/endpoints.md- referencia HTTPdocs/api/configuration.md- variaveis de ambiente e configuracao do servidordocs/cli/overview.md- visao geral da CLIdocs/cli/commands.md- referencia de comandos e exemplosdocs/app/overview.md- visao geral do app desktopdocs/app/user-guide.md- guia de uso do appdocs/app/backend-commands.md- comandos Tauri expostos pelo backend do appdocs/developer/architecture.md- arquitetura do workspace e fluxos entre modulos
Estado atual e limitacoes
- A API atual expoe apenas tres endpoints publicos:
GET /health,GET /v1/modelsePOST /v1/chat/completions. - A compatibilidade com OpenAI e parcial: o projeto foca no fluxo de chat, nao em toda a superficie da plataforma.
- A CLI possui uma superficie ampla, mas a execucao ao vivo hoje esta mais consolidada em
status,models listebench throughput. - O app desktop controla o runtime local no modo
locale pode consumir uma API ja existente no modoremote. - O armazenamento do chat no frontend usa
sql.jscarregado por CDN e persistencia emlocalStorage.
Leitura recomendada
- Quer entender a API? Comece em
docs/api/overview.md. - Quer operar o sistema por terminal? Va para
docs/cli/overview.md. - Quer usar o app desktop? Leia
docs/app/user-guide.md. - Quer contribuir no codigo? Comece em
docs/developer/architecture.md.
Languages
TypeScript
43.3%
Rust
38%
CSS
11%
HTML
5.1%
Python
2%
Other
0.6%