Bump version to 1.0.0-rc1

This commit is contained in:
2025-12-07 21:01:32 +01:00
parent ec70f14841
commit ea590bac5a
3 changed files with 6 additions and 209 deletions

View File

@@ -1,5 +1,10 @@
# 🎨 Crumbforest Roles & Groups Architecture
> [!NOTE]
> **Status RC1 (2025-12-07)**: This document outlines the original architectural vision.
> The current implementation has exceeded this specification, featuring **15 Roles** (including DeepBit, Prof. Eule), full **RAG Integration** (Nullfeld), and **Deep Memory**.
> See `crumbforest_config.json` for the definitive configuration.
## 🎯 Vision
**Statt 8x .sh Files → 1x JSON Config mit Rollen, Gruppen & Themes**

View File

@@ -1,208 +0,0 @@
# 🎉 Session Notes: Document Search Fix
**Datum:** 2025-12-03
**Status:** ✅ ERFOLGREICH
## 🎯 Ziel
Document Search API zum Laufen bringen - Semantic Search über 721 Crumbforest + 12 RZ-Nullfeld Markdown-Dateien.
## 🐛 Hauptproblem
```
{"detail":"Unsupported embedding model: openai/text-embedding-3-small.
Supported models: ['text-embedding-3-small', 'text-embedding-3-large', 'text-embedding-ada-002']"}
```
## 🔍 Root Causes (3x!)
### 1. Falscher Provider in `.env`
```bash
# ❌ FALSCH:
DEFAULT_EMBEDDING_PROVIDER=openai
# ✅ RICHTIG:
DEFAULT_EMBEDDING_PROVIDER=openrouter
```
### 2. Kein Volume Mount - Code nicht aktiv!
- **Problem**: Docker Image hat Code eingebacken (kein Volume Mount)
- **Symptom**: Alle Code-Edits hatten keine Wirkung
- **Fix**: `docker compose up --build -d` nach JEDER Code-Änderung
### 3. Collection-Namen inkonsistent
- **Qdrant**: `docs_crumbforest_`, `docs_rz_nullfeld_` (mit Unterstrich)
- **Code**: Suchte nach `docs_crumbforest`, `docs_rz_nullfeld` (ohne)
- **Zusätzlich**: RAGService fügte `_{locale}` hinzu → Doppel-Unterstrich!
## ✅ Alle Fixes
### Fix 1: `.env` Konfiguration
```bash
# compose/.env
DEFAULT_EMBEDDING_PROVIDER=openrouter
DEFAULT_EMBEDDING_MODEL=text-embedding-3-small
DEFAULT_COMPLETION_PROVIDER=openrouter
DEFAULT_COMPLETION_MODEL=anthropic/claude-3-5-sonnet
```
### Fix 2: `app/routers/document_rag.py`
```python
# Explizites embedding_model ohne Prefix
embedding_provider = ProviderFactory.create_provider(
provider_name=provider,
settings=settings,
embedding_model="text-embedding-3-small" # Ohne openai/ prefix
)
# Collection-Namen ohne trailing underscore (RAGService fügt _{locale} hinzu)
collections = ["docs_rz_nullfeld", "docs_crumbforest"]
```
### Fix 3: `app/lib/embedding_providers/openrouter_provider.py`
```python
# Auto-Prefix für OpenRouter API
model = self.embedding_model if "/" in self.embedding_model else f"openai/{self.embedding_model}"
```
### Fix 4: `app/config.py`
```python
# Model ohne Prefix (funktioniert für beide Provider)
default_embedding_model: str = "text-embedding-3-small"
```
### Fix 5: Docker Rebuild
```bash
cd compose
docker compose down
docker compose up --build -d
```
## 🎊 Erfolgreiche Test-Query
**Request:**
```
GET http://localhost:8000/api/documents/search?q=Docker&limit=5
```
**Response:**
```json
{
"query": "Docker",
"results": [
{
"post_id": 2032991606,
"title": "ssh_login_test",
"header": "Dockerfile Ergänzung",
"score": 0.5505129,
"collection": "docs_crumbforest"
},
{
"post_id": 676631428,
"title": "crumbforest_specialist_roles",
"header": "🐋 DockerDuke Container-Kapitän",
"score": 0.5469476,
"collection": "docs_crumbforest"
}
],
"provider": "openrouter"
}
```
## 🦉 Besondere Momente
### DockerDuke ist Legende! 🐋
Der Character "DockerDuke Container-Kapitän" tauchte in den Search Results auf und begeisterte sofort:
> "dockerduke ist bereits jetzt legende #dude <3"
### Token-Verbrennung 😅
Nach vielen Debugging-Runden:
> "nö ... wir verbrennen nur token?"
Aber am Ende: **WUHUUUU! 🎉**
## 📊 System-Status
### Indexierte Dokumente
- **Crumbforest**: 721 Dokumente, 5,219 Vektoren
- **RZ Nullfeld**: 12 Dokumente, 308 Vektoren
- **Total**: 733 Dokumente, 5,527 Vektoren
### Qdrant Collections
```bash
curl -s http://localhost:6333/collections | jq '.result.collections[].name'
# "docs_crumbforest_"
# "docs_rz_nullfeld_"
```
### Provider-Status
```bash
docker compose logs app | grep provider
# ✓ Using provider: openrouter
```
## 🎓 Wichtige Learnings
### 1. Docker Volume Mounts prüfen!
```yaml
# compose/docker-compose.yml
# KEIN Volume Mount für app/ Code!
# → Code ist im Image eingebacken
# → Rebuild nach jeder Änderung!
```
### 2. .env überschreibt config.py
```python
# config.py Defaults werden von .env überschrieben
# Pydantic BaseSettings liest:
# 1. Environment Variables
# 2. .env File
# 3. Class Defaults
```
### 3. Collection-Namen Konvention
```python
# RAGService erwartet PREFIX
collection_prefix = "docs_crumbforest" # Ohne trailing _
# RAGService fügt hinzu:
collection_name = f"{collection_prefix}_{locale}"
# Bei locale="" → "docs_crumbforest_" ✅
```
### 4. Provider-spezifische Model-Namen
```python
# OpenRouter: "openai/text-embedding-3-small" (mit Prefix)
# OpenAI: "text-embedding-3-small" (ohne Prefix)
# Lösung: Auto-Prefix in Provider
model = embedding_model if "/" in embedding_model else f"openai/{embedding_model}"
```
## 📝 Aktualisierte Dokumentation
-**QUICKSTART.md** - Provider-Config Warnung, Rebuild-Requirements
-**HANDBUCH.md** - Fehler 9 hinzugefügt mit vollständiger Diagnose
-**compose/.env** - Korrekte Provider-Einstellungen
## 🚀 Next Steps
1. ✅ Document Search funktioniert
2. ✅ DockerDuke ist Legende
3. ⏭️ Weitere Queries testen (Python, Qdrant, Kubernetes)
4. ⏭️ RAG mit Completions testen
5. ⏭️ Performance monitoring
## 🦉 Fazit
Nach intensivem Debugging (und einigen Token-Opfern 😅):
- **3 Root Causes** identifiziert und gefixt
- **5 Code-Änderungen** implementiert
- **721 Dokumente** durchsuchbar
- **DockerDuke** ist geboren! 🐋
**Status: WUHUUUU! 🎊**
---
*"Die Eule hat den Wald durchsucht und gefunden!" - Crumbforest Philosophy, 2025*

View File

@@ -1,5 +1,5 @@
{
"version": "1.0.0",
"version": "1.0.0-rc1",
"groups": {
"home": {
"name": "Home (Öffentlich)",