Evandro Fonseca Junior 88f4319c3f fix: stop transcript leakage and repetition loops in Generic chat template
Backend (inference-server/compat.rs):
- PreparedPrompt now carries extra_stop_sequences injected by template
- Generic template injects User:/System:/Assistant:/Human: stop sequences
  to prevent the model from continuing the transcript after its reply
- Increased repeat_penalty 1.15→1.3 and repeat_last_n 256→512 to
  break repetition loops more aggressively

Backend (inference-server/routes.rs):
- Merge template extra_stop_sequences into sampler before inference

Frontend (chat.ts):
- Added 'System:' and 'Human:' to CHAT_TRANSCRIPT_STOP_SEQUENCES
- Extended TRANSCRIPT_LEAKAGE_PATTERN to include 'Human:'

Frontend (ChatView.tsx):
- buildApiMessages now strips leaked transcript from assistant messages
  before sending history back to the model
- Reduced history window to 20 messages to limit context pollution
2026-04-02 20:42:04 -03:00
2026-03-29 19:10:57 -03:00
2026-03-29 19:10:57 -03:00
2026-03-29 19:10:57 -03:00
2026-03-29 19:10:57 -03:00
2026-03-29 19:10:57 -03:00
2026-03-29 19:10:57 -03:00
2026-03-29 19:10:57 -03:00
2026-03-29 19:10:57 -03:00
2026-03-29 19:10:57 -03:00
2026-03-29 19:10:57 -03:00
2026-03-29 19:10:57 -03:00
2026-03-29 19:10:57 -03:00

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 com GET /health, GET /v1/models e POST /v1/chat/completions
  • crates/localllm-cli: CLI para status, modelos, auth, config, benchmark, logs e doctor
  • tauri-app: app desktop com runtime manager, chat UI, armazenamento local e integracao com o backend
  • crates/api-contracts: contratos de request/response compartilhados
  • crates/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 .gguf local para o runtime
  • GPU NVIDIA e opcional; o projeto tambem possui perfil CPU fallback

Estrutura do repositorio

  • crates/api-contracts/ - contratos HTTP e tipos compartilhados
  • crates/inference-core/ - engine, sessoes, sampler e perfis de runtime
  • crates/inference-server/ - servidor HTTP local
  • crates/localllm-cli/ - CLI de operacao
  • crates/metrics/ - contadores e medicao de throughput
  • crates/llama-sys/ - bindings/integracao de baixo nivel
  • tauri-app/ - app desktop Tauri + frontend React
  • docs/ - documentacao detalhada

Documentacao

  • docs/README.md - indice da documentacao
  • docs/api/overview.md - visao geral do backend e da API
  • docs/api/endpoints.md - referencia HTTP
  • docs/api/configuration.md - variaveis de ambiente e configuracao do servidor
  • docs/cli/overview.md - visao geral da CLI
  • docs/cli/commands.md - referencia de comandos e exemplos
  • docs/app/overview.md - visao geral do app desktop
  • docs/app/user-guide.md - guia de uso do app
  • docs/app/backend-commands.md - comandos Tauri expostos pelo backend do app
  • docs/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/models e POST /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 list e bench throughput.
  • O app desktop controla o runtime local no modo local e pode consumir uma API ja existente no modo remote.
  • O armazenamento do chat no frontend usa sql.js carregado por CDN e persistencia em localStorage.

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.
S
Description
Infraestrutura local de inferência para LLMs em Rust, com API OpenAI-compatível
Readme
25 MiB
0 Stars 1 Watchers 0 Forks
Languages
TypeScript 43.3%
Rust 38%
CSS 11%
HTML 5.1%
Python 2%
Other 0.6%