Evandro Fonseca Junior 943bf6321f fix: preserve model reasoning when visible response is empty
When a model generates only a reasoning block (<think>...</think>) with no visible content, the reasoning was previously lost because the DB insert omitted the reasoning_content column while using a fallback error message.

This separates the hasReasoningOnly condition from the corrupted/transcript leakage conditions, ensuring the reasoning is properly saved and the user sees a specific placeholder.
2026-04-03 22:49:46 -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%