Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

IvyDoc Engine

Descrição

Sistema de extração de dados de documentos e assistente técnico. É construído para executar um LLM (Qwen2.5-3B) em CPUs legadas (Intel Ivy Bridge) que possuem o conjunto de instruções AVX. O sistema prioriza a inferência determinística e de baixa latência.

Arquitetura

  • Core de Inferência: Um binário llama.cpp customizado é executado como um daemon de longa duração, expondo a funcionalidade do modelo em uma porta local (8080).
  • Backend (API Bridge): Um servidor Python (FastAPI) atua como uma ponte para o daemon llama.cpp. Ele gerencia um pipeline de ingestão de documentos e expõe endpoints para upload, status e recuperação de resultados (:8002).
  • Pipeline de Ingestão: Um serviço de monitoramento (watchdog) observa um diretório (ingestion/input) para novos arquivos PDF. O motor de ingestão processa os PDFs usando extração de texto nativo e OCR adaptativo (Tesseract) quando necessário. O conteúdo extraído é usado para RAG e armazenado em um banco de dados SQLite.
  • Frontend: A interação do usuário é feita através de duas interfaces web estáticas (HTML/JS):
    • frontend/: Interface de conversação (chat).
    • frontend_technical/: Painel para monitorar o status da extração de documentos.

Dependências

  • Hardware: CPU com suporte ao conjunto de instruções AVX (ex: Intel Ivy Bridge ou superior).
  • Software:
    • Sistema Operacional: Linux
    • Compiladores: GCC ou Clang
    • Python: 3.10+
    • OCR Engine: Tesseract
  • Bibliotecas Python:
    • PyMuPDF
    • pdfplumber
    • pytesseract
    • Pillow
    • pydantic
    • fastapi
    • uvicorn

Como Executar

  1. Compilar Binários: Execute o script para compilar o motor llama.cpp.
    ./scripts/build_optimized.sh
  2. Iniciar o Daemon do Modelo: Inicie o servidor de inferência em segundo plano.
    ./scripts/start_daemon.sh
  3. Iniciar a API Backend: Inicie o servidor da API Python.
    ./scripts/start_api.sh
  4. Ativar o Monitor de Arquivos: Inicie o serviço que monitora o diretório de ingestão.
    ./scripts/start_watchdog.sh
  5. Acessar a Interface:
    • Para o assistente de chat, abra frontend/index.html em um navegador.
    • Para o painel técnico, abra frontend_technical/index.html.

About

Deterministic inference and document extraction for Qwen2.5-3B on Ivy Bridge CPUs. Daemon-based, fixed 1024-token context, PDF→JSON (OCR+RAG), CPU-only.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages