Prototipo do shortcoder estendido com agentes Mem0 e LLM rapido, usando somente endpoints HTTP ja existentes (sem modificar o AdvPP).
| Endpoint | Status | Tempo响 | Uso |
|---|---|---|---|
http://127.0.0.1:11434/v1/chat/completions |
✅ OK | ~1s | LLM rapido (lfm25) |
http://127.0.0.1:9081/memories/{user_id} |
✅ OK | <1s | Operacoes de memoria |
http://127.0.0.1:9081/v1/chat/completions |
>30s | LLM + RAG integrado (timeout) | |
http://127.0.0.1:9080/v1/chat/completions |
❌ Muito lento | >2min | NAO usar |
- Backend:
http://127.0.0.1:11434/v1/chat/completions - Modelo padrao:
lfm25-1b-uncensored:latest(1.2B params, ultra-rapido) - Tempo响: 1-2 segundos
- Uso: Conversas gerais, codigos, perguntas rapidas
- Backend:
http://127.0.0.1:9081/memories/{user_id} - Operacoes: list, add, clear
- Tempo响: <1 segundo
- Uso: Consultar e gerenciar memorias persistentes
- Backend:
http://127.0.0.1:9081/v1/chat/completions - Modelo:
ernesto-granite41-rag:latest(8.8B) - Tempo响: >30s (timeout do HTTP client)
- Uso: Perguntas que precisam de contexto RAG (limitado pelo timeout)
/agent
→ Menu: 1=ollama (rapido), 2=mem0 (memoria), 3=ernesto (RAG)
→ Alterna agente padrao para turnos livres
/model
→ Lista modelos disponiveis em ~/.config/little-coder/models.json
→ Troca modelo ativo
/mem0 list
→ Lista todas as memorias do usuario default
/mem0 add <texto>
→ Adiciona memoria persistente
→ Ex: /mem0 add "O usuario prefere TLPP para codigos novos"
/mem0 clear
→ Remove todas as memorias do usuario
/history
→ Mostra historico de turnos com agente, tempo响 e preview
/clear
→ Nova sessao, zera historico
/help
→ Esta ajuda
cd ~/Projetos/shortcoder
advplc build shortcoder-rag.prw -o shortcoder-rag
./shortcoder-rag$ ./shortcoder-rag
❯ 2+2
╭─ ollama ──────────────────────────────────────────────╮
│ The result of 2 + 2 is 4. │
╰───────────────────────────────────────────────────────╯
ollama · 1.1s · fast
❯ /mem0 add "teste: prefiro portugues"
╭─ mem0/add ────────────────────────────────────────────╮
│ Memoria adicionada com sucesso! │
╰───────────────────────────────────────────────────────╯
mem0/add · 0.5s
❯ /mem0 list
╭─ mem0/list ───────────────────────────────────────────╮
│ 847 memorias: │
│ [fact] conf:1.00 teste: prefiro portugues │
│ ... │
╰───────────────────────────────────────────────────────╯
mem0 · 1.3s · 847 memorias
❯ /history
╭─ historico ───────────────────────────────────────────╮
│ 2 turnos: │
│ [1] agente=ollama | tempo=1.1s │
│ 2+2 │
│ [2] agente=mem0/add | tempo=0.5s │
│ teste: prefiro portugues │
╰───────────────────────────────────────────────────────╯
-
Timeout HTTP (30s): O modelo ernesto (RAG) e muito lento para responder dentro do timeout. Para RAG rapido, usar o little-coder existente ou chamar o Python diretamente via ProcRun.
-
Colecao advpl_sources: Nao existe no ChromaDB local (FAISS indisponivel). Colecoes disponiveis:
dicionario_protheus(268k),reversa_sources(2.8k). -
Sem streaming RAG: O endpoint
/v1/chat/completionsretorna JSON completo; nao ha streaming de chunks como no little-coder.
# Ollama
curl http://127.0.0.1:11434/v1/models # ✅ lista modelos
curl -X POST http://127.0.0.1:11434/v1/chat/completions # ✅ funciona
# Mem0
curl http://127.0.0.1:9081/health # ✅ ok
curl http://127.0.0.1:9081/memories/default # ✅ lista memorias
curl -X POST http://127.0.0.1:9081/memories/default # ✅ adiciona
# Ernesto RAG Proxy (9080)
curl http://127.0.0.1:9080/health # ✅ ok (mas respostas lentas)
curl -X POST http://127.0.0.1:9080/v1/chat/completions # ❌ >2min por request-
RAG direto via Python: Usar ProcRun para chamar
python3 -c "from rag.chroma import..."e fazer buscas ultrarrápidas sem depender do proxy HTTP lento. -
Streaming: Implementar parse de SSE (Server-Sent Events) para respostas em streaming (como o shortcoder original faz com NDJSON).
-
Cache local: Armazenar respostas frequentes em arquivo JSON para reduzir tempo响 para perguntas repetidas.