- Stack: GPT4All + Llama 3.2 3B, LangChain, Qdrant, FastAPI, Docker - 11 tarefas implementadas com 100% de conclusão - Funcionalidades: chat com IA, upload PDF, bot Telegram, agendamento - 6 livros PDF indexados (A Gênese, Livro dos Espíritos, etc.) - Documentação rica: README, BUILD, task reports, design specs - Deploy com Docker Compose - Production ready Tech stack: - AI: GPT4All 2.4.6, Llama 3.2 3B q4_0 - Backend: FastAPI 0.115.0, Celery 5.4.0, Redis 5.2.0 - RAG: LangChain 0.3.7, Qdrant 1.11.1 - Frontend: HTML5/CSS3/Vanilla JS - Deploy: Docker Compose Acceptance Criteria: ✅ CPU-only, <8GB RAM, ~5GB storage ✅ Suporta upload de PDFs ✅ Interface web rica e responsiva ✅ Bot Telegram funcional ✅ Agendamento de mensagens ✅ Código limpo e documentado ✅ Deploy via Docker Status: PRODUCTION READY Version: 1.0.0 Date: 2026-11-01
20 lines
689 B
Python
20 lines
689 B
Python
from sentence_transformers import SentenceTransformer
|
|
import numpy as np
|
|
|
|
class EmbeddingService:
|
|
def __init__(self, model_name="all-MiniLM-L6-v2"):
|
|
self.model = SentenceTransformer(model_name)
|
|
self.dimension = 384
|
|
|
|
def embed(self, texts: list[str]) -> np.ndarray:
|
|
"""Generate embeddings for a list of texts."""
|
|
return self.model.encode(texts, convert_to_numpy=True)
|
|
|
|
def embed_query(self, text: str) -> np.ndarray:
|
|
"""Generate embedding for a single query."""
|
|
return self.model.encode([text], convert_to_numpy=True)[0]
|
|
|
|
def get_dimension(self) -> int:
|
|
"""Return embedding dimension."""
|
|
return self.dimension
|