bug Fix
This commit is contained in:
parent
0157faab89
commit
2c073c7d3c
|
|
@ -4,14 +4,20 @@ DESCRIPTION: Zentrale Pydantic-Konfiguration. Enthält Parameter für Qdrant,
|
|||
Embeddings, Ollama, Google GenAI und OpenRouter.
|
||||
WP-20: Optimiert für Hybrid-Cloud Modus und Vektor-Synchronisation.
|
||||
WP-22: Integration von Change-Detection und Vocab-Paths.
|
||||
VERSION: 0.6.2
|
||||
FIX: Hinzufügen von load_dotenv(), um Umgebungsvariablen aus .env aktiv zu laden.
|
||||
VERSION: 0.6.3
|
||||
STATUS: Active
|
||||
DEPENDENCIES: os, functools, pathlib
|
||||
DEPENDENCIES: os, functools, pathlib, python-dotenv
|
||||
"""
|
||||
from __future__ import annotations
|
||||
import os
|
||||
from functools import lru_cache
|
||||
from pathlib import Path
|
||||
from dotenv import load_dotenv
|
||||
|
||||
# WP-20: Lade Umgebungsvariablen aus der .env Datei
|
||||
# Muss vor dem Zugriff auf os.getenv erfolgen!
|
||||
load_dotenv()
|
||||
|
||||
class Settings:
|
||||
# --- Qdrant Datenbank ---
|
||||
|
|
@ -23,9 +29,7 @@ class Settings:
|
|||
DISTANCE: str = os.getenv("MINDNET_DISTANCE", "Cosine")
|
||||
|
||||
# --- Lokale Embeddings (Ollama & Sentence-Transformers) ---
|
||||
# Modell für die Vektorisierung (z.B. nomic-embed-text)
|
||||
EMBEDDING_MODEL: str = os.getenv("MINDNET_EMBEDDING_MODEL", "nomic-embed-text")
|
||||
# Legacy Fallback Modellname
|
||||
MODEL_NAME: str = os.getenv("MINDNET_MODEL", "sentence-transformers/all-MiniLM-L6-v2")
|
||||
|
||||
# --- WP-20 Hybrid LLM Provider ---
|
||||
|
|
@ -35,7 +39,6 @@ class Settings:
|
|||
# Google AI Studio (Direkt)
|
||||
GOOGLE_API_KEY: str | None = os.getenv("GOOGLE_API_KEY")
|
||||
GEMINI_MODEL: str = os.getenv("MINDNET_GEMINI_MODEL", "gemini-1.5-flash")
|
||||
# Gemma-Modell für hohen Durchsatz bei der Ingestion
|
||||
GEMMA_MODEL: str = os.getenv("MINDNET_GEMMA_MODEL", "google/gemma-2-9b-it:free")
|
||||
|
||||
# OpenRouter Integration
|
||||
|
|
@ -58,12 +61,10 @@ class Settings:
|
|||
DEBUG: bool = os.getenv("DEBUG", "false").lower() == "true"
|
||||
MINDNET_VAULT_ROOT: str = os.getenv("MINDNET_VAULT_ROOT", "./vault")
|
||||
MINDNET_TYPES_FILE: str = os.getenv("MINDNET_TYPES_FILE", "config/types.yaml")
|
||||
# WP-22: Dictionary für die Edge-Validierung
|
||||
MINDNET_VOCAB_PATH: str = os.getenv("MINDNET_VOCAB_PATH", "vault/_system/dictionary/edge_vocabulary.md")
|
||||
# WP-22: Change Detection (Modus: "full" oder "body")
|
||||
CHANGE_DETECTION_MODE: str = os.getenv("MINDNET_CHANGE_DETECTION_MODE", "full")
|
||||
|
||||
# --- WP-04 Retriever Gewichte (Semantik vs. Graph) ---
|
||||
# --- WP-04 Retriever Gewichte ---
|
||||
RETRIEVER_W_SEM: float = float(os.getenv("MINDNET_WP04_W_SEM", "0.70"))
|
||||
RETRIEVER_W_EDGE: float = float(os.getenv("MINDNET_WP04_W_EDGE", "0.25"))
|
||||
RETRIEVER_W_CENT: float = float(os.getenv("MINDNET_WP04_W_CENT", "0.05"))
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
# config/prompts.yaml — Final V2.4.0 (Hybrid & Multi-Provider Support)
|
||||
# WP-20: Optimierte Cloud-Templates bei unveränderten Ollama-Prompts.
|
||||
# config/prompts.yaml — Final V2.4.1 (Hybrid & Multi-Provider Support)
|
||||
# WP-20: Optimierte Cloud-Templates.
|
||||
# FIX: Technische Maskierung (Doppel-Klammern) für JSON-Stabilität bei identischem Inhalt.
|
||||
|
||||
system_prompt: |
|
||||
Du bist 'mindnet', mein digitaler Zwilling und strategischer Partner.
|
||||
|
|
@ -208,15 +209,33 @@ edge_allocation_template:
|
|||
# ---------------------------------------------------------
|
||||
edge_extraction:
|
||||
ollama: |
|
||||
Extrahiere Kanten als JSON: [{"to": "X", "kind": "Y"}].
|
||||
Text: {text}
|
||||
TASK:
|
||||
Du bist ein Wissens-Ingenieur für den digitalen Zwilling 'mindnet'.
|
||||
Deine Aufgabe ist es, semantische Relationen (Kanten) aus dem Text zu extrahieren,
|
||||
die die Hauptnotiz '{note_id}' mit anderen Konzepten verbinden.
|
||||
|
||||
ANWEISUNGEN:
|
||||
1. Identifiziere wichtige Entitäten, Konzepte oder Ereignisse im Text.
|
||||
2. Bestimme die Art der Beziehung (z.B. part_of, uses, related_to, blocks, caused_by).
|
||||
3. Das Ziel (target) muss ein prägnanter Begriff sein.
|
||||
4. Antworte AUSSCHLIESSLICH in validem JSON als Liste von Objekten.
|
||||
|
||||
BEISPIEL:
|
||||
[[ {{"to": "Ziel-Konzept", "kind": "beziehungs_typ"}} ]]
|
||||
|
||||
TEXT:
|
||||
"""
|
||||
{text}
|
||||
"""
|
||||
|
||||
DEIN OUTPUT (JSON):
|
||||
gemini: |
|
||||
Führe eine semantische Analyse der Notiz '{note_id}' durch.
|
||||
Finde explizite und implizite Relationen.
|
||||
Antworte als JSON: [{"to": "Ziel", "kind": "typ", "reason": "begründung"}]
|
||||
Antworte STRIKT als JSON: [[{{"to": "Ziel", "kind": "typ", "reason": "begründung"}}]]
|
||||
Keine Erklärungen, nur JSON.
|
||||
Text: {text}
|
||||
openrouter: |
|
||||
Analysiere den Text für den Graphen. Identifiziere semantische Verbindungen.
|
||||
Output STRIKT als JSON-Liste: [{"to": "X", "kind": "Y"}].
|
||||
Output STRIKT als JSON-Liste: [[{{"to": "X", "kind": "Y"}}]].
|
||||
Text: {text}
|
||||
Loading…
Reference in New Issue
Block a user