From 9653898366ffdf00192fef016a8205b790d94cdf Mon Sep 17 00:00:00 2001 From: ChemaVX Date: Thu, 23 Jul 2026 09:54:58 +0000 Subject: [PATCH] docs: alinear modelos a qwen2.5:7b + bge-m3 (iGPU activa) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Generación 3B→7B y embeddings a bge-m3 en README, CLAUDE.md, .env.example y k8s/deployment.yaml. Corregido el default buggy de config.py: ollama_embed_model era qwen2.5:3b (un modelo de chat) → bge-m3. Añadido OLLAMA_EMBED_MODEL donde faltaba. Nota del host público de ollama ahora tras Authentik. Co-Authored-By: Claude Opus 4.8 --- .env.example | 3 ++- CLAUDE.md | 6 +++--- README.md | 4 ++-- k8s/deployment.yaml | 4 +++- src/config.py | 4 ++-- 5 files changed, 12 insertions(+), 9 deletions(-) diff --git a/.env.example b/.env.example index 9013d98..eacdfaf 100644 --- a/.env.example +++ b/.env.example @@ -7,7 +7,8 @@ TELEGRAM_ALLOWED_USERS=123456789 # your Telegram user ID # Ollama (default points to your existing instance) OLLAMA_URL=http://ollama.chemavx.xyz -OLLAMA_MODEL=qwen2.5:3b +OLLAMA_MODEL=qwen2.5:7b +OLLAMA_EMBED_MODEL=bge-m3 # Claude fallback (optional, only for premium generation) # ANTHROPIC_API_KEY=sk-ant-... diff --git a/CLAUDE.md b/CLAUDE.md index db4bea1..33b66c4 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -2,13 +2,13 @@ ## Contexto del proyecto -Eres el agente de construcción e implementación de **ResearchOwl**, un bot de Telegram que realiza investigación exhaustiva sobre cualquier tema usando scraping recursivo y Ollama (qwen2.5:3b) para procesamiento y generación de contenido. +Eres el agente de construcción e implementación de **ResearchOwl**, un bot de Telegram que realiza investigación exhaustiva sobre cualquier tema usando scraping recursivo, Ollama (qwen2.5:7b para scoring, bge-m3 para embeddings) y Claude para la generación de contenido. El homelab donde se desplegará tiene: - **k3s** con Traefik + cert-manager + Cloudflare DNS - **ArgoCD** para GitOps (repo: `k8s-manifests` en Gitea) - **Gitea** en `git.chemavx.xyz` + Container Registry -- **Ollama** en `http://ollama.chemavx.xyz` con modelo `qwen2.5:3b` +- **Ollama** (vía Service interno `ollama.ollama.svc.cluster.local:11434`): `qwen2.5:7b` para scoring y `bge-m3` para embeddings. Nota: el host público `ollama.chemavx.xyz` está tras Authentik desde 2026-07-23; los consumidores del cluster van por el Service. - **Telegram bot** ya existente en `@chemavx_bot` - Dominio base: `chemavx.xyz` @@ -321,6 +321,6 @@ Uso desde Telegram: - **No crear un bot de Telegram nuevo** — el usuario ya tiene `@chemavx_bot`. Solo necesita configurar el token en el secret de k3s. - **No modificar** los manifests de k8s para añadir Ingress — el bot usa polling de Telegram, no necesita exponer ningún puerto. - **Ollama** ya está corriendo en el cluster. La URL `http://ollama.chemavx.xyz` es correcta. -- Si `qwen2.5:3b` es lento para scoring de calidad, se puede desactivar el scoring con `QUALITY_THRESHOLD=0` y todos los chunks pasan directamente. +- Si `qwen2.5:7b` es lento para scoring de calidad, se puede desactivar el scoring con `QUALITY_THRESHOLD=0` y todos los chunks pasan directamente. - El proyecto usa **SQLite** (coherente con el resto del homelab). - Respetar el `REQUEST_DELAY=1.0` para no hacer ban en las fuentes. diff --git a/README.md b/README.md index 345e19f..bce7a18 100644 --- a/README.md +++ b/README.md @@ -18,7 +18,7 @@ ExhaustiveScraper ├── PDFs (public documents) └── Web scraping (trafilatura) ↓ recursive expansion (depth 1-3) -ContentProcessor (Ollama qwen2.5:3b) +ContentProcessor (Ollama qwen2.5:7b + bge-m3 embeddings) ├── Chunking (800 token chunks, 100 overlap) ├── Quality scoring (0-10 per chunk) ├── Embeddings (cosine similarity RAG) @@ -102,7 +102,7 @@ git add . && git commit -m "feat: add researchowl" && git push ## Notes -- Uses **qwen2.5:3b** (your existing Ollama) for all AI tasks — zero API cost +- Uses **qwen2.5:7b** (scoring) and **bge-m3** (embeddings) on your existing Ollama — zero API cost - Optionally add `ANTHROPIC_API_KEY` for Claude fallback on generation - SQLite database stored in `/data/researchowl.db` - All outputs saved to DB and available via `/outputs` diff --git a/k8s/deployment.yaml b/k8s/deployment.yaml index eba91da..7583a4c 100644 --- a/k8s/deployment.yaml +++ b/k8s/deployment.yaml @@ -53,7 +53,9 @@ spec: - name: OLLAMA_URL value: "http://ollama.chemavx.xyz" - name: OLLAMA_MODEL - value: "qwen2.5:3b" + value: "qwen2.5:7b" + - name: OLLAMA_EMBED_MODEL + value: "bge-m3" - name: DB_PATH value: "/data/researchowl.db" - name: MAX_SOURCES diff --git a/src/config.py b/src/config.py index 548209b..92142bb 100644 --- a/src/config.py +++ b/src/config.py @@ -17,8 +17,8 @@ class Settings(BaseSettings): # Ollama ollama_url: str = Field("http://ollama.chemavx.xyz") - ollama_model: str = Field("qwen2.5:3b") - ollama_embed_model: str = Field("qwen2.5:3b") + ollama_model: str = Field("qwen2.5:7b") + ollama_embed_model: str = Field("bge-m3") # Claude fallback (optional) anthropic_api_key: Optional[str] = Field(None)