## Changes ### Entity Extraction - Switch from WikiLinkFallbackExtractor to LlmEntityExtractor when LLM_ENDPOINT set - `clean_llm_response()`: strips `<think>` tags, markdown fences, extracts JSON - Handle array responses (Ollama returns `[...]` not `{entities: [...]}`) - EntityType custom Deserialize: unknown variants → Unknown (no crash) - Increase timeout 30s→90s, max_tokens 500→1500 for reasoning models - Graceful reflection fallback: keep entities if verification fails ### Fact Extraction (NEW) - LlmFactExtractor: LLM-based relationship extraction between entity pairs - Validates source/target against known entity list (drops hallucinated edges) - Same robust JSON cleaning for reasoning models + Ollama - IngestWorker auto-selects LLM vs Simple based on LLM_ENDPOINT env ### K8s Deployment - Add `command: ["/app/mem"]` (fix args replacing CMD) - Add LLM_ENDPOINT, LLM_MODEL env vars for in-cluster LLM ## E2E Tested (local Ollama qwen2.5:3b) - 12 entities extracted (person, tool, concept, organization) - 5 edges with relationships and facts - 781 tests pass ## Zep Paper Alignment (§2.2) - Entity extraction + resolution (§2.2.1) - Fact extraction between entity pairs (§2.2.2) - Temporal edge invalidation ready (t_valid/t_invalid schema) - Reflection verification (§2.2.1, graceful fallback) --------- Co-authored-by: rock <[email protected]> Reviewed-on: #48 Co-authored-by: poimen <[email protected]>
FullPipeline (Phase 1-6 Integration) - FullPipeline: complete orchestration of all phases - PipelineConfig: unified configuration for all phases - PipelineBuilder: fluent API for pipeline construction - EnrichedChunk: fully enriched result with all metadata - PipelineMetrics: comprehensive metrics per phase - 14 unit tests Phase 5 Integration - Query intent inference (FixError, LearnConcept, UseTool, FindReference) - Category-based metadata boost - Intent-category matching for relevance boost Phase 6 Integration - Wiki-distance based cache priority - LRU cache preloading for hot chunks - Cache slot assignment - Phase timing profiling Integration Tests (it_phase5_phase6.rs) - 24 end-to-end tests covering all phases - Metadata boost enable/disable - Cache locality and preload - Edge cases (empty, no matches, unknown intent) Total: 145 tests passing (was 107)