Initial ForgeLM import
This commit is contained in:
commit
a392b9dc60
4296 files changed
+1212675
No files matched your search
@@ -0,0 +1,98 @@
|
||||
# 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`.
|
||||
Reference in new issue
Block a user