# 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: ```bash set LOCALLLM_MODEL=D:\caminho\modelo.gguf cargo run -p inference-server ``` Validacoes basicas: ```bash curl http://127.0.0.1:8080/health curl http://127.0.0.1:8080/v1/models ``` ### 2. Usar a CLI ```bash cargo run -p localllm-cli -- status cargo run -p localllm-cli -- models list ``` ### 3. Abrir o app desktop ```bash 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`.