Skip to content

Knowledge completion#23

Merged
kriegcloud merged 3 commits intomainfrom
knowledge-completion
Jan 22, 2026
Merged

Knowledge completion#23
kriegcloud merged 3 commits intomainfrom
knowledge-completion

Conversation

@kriegcloud
Copy link
Owner

@kriegcloud kriegcloud commented Jan 22, 2026

Summary by CodeRabbit

Release Notes

  • New Features

    • Added GraphRAG (Retrieval-Augmented Generation) for knowledge graph querying and context retrieval.
    • Added LLM provider support for Anthropic and OpenAI with configurable selection.
    • Introduced entity and relation repository interfaces for database operations.
    • Enhanced extraction pipeline with improved prompt handling and result formatting.
  • Dependencies

    • Updated next and zod to latest canary versions.
    • Added AI/LLM integration libraries for multi-provider support.
  • Documentation

    • Expanded architectural documentation and design patterns.
    • Added comprehensive test coverage documentation.
    • Updated README with new service exports and usage examples.
  • Tests

    • Added extensive test suites for extraction, GraphRAG, and repository operations.
    • Introduced test infrastructure for LLM mocking and verification.

✏️ Tip: You can customize this high-level summary in your review settings.

@vercel
Copy link

vercel bot commented Jan 22, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Review Updated (UTC)
todox-marketing Building Building Preview, Comment Jan 22, 2026 8:00pm

@kriegcloud kriegcloud merged commit da46bb4 into main Jan 22, 2026
4 of 8 checks passed
@kriegcloud kriegcloud deleted the knowledge-completion branch January 22, 2026 20:00
@coderabbitai
Copy link

coderabbitai bot commented Jan 22, 2026

Caution

Review failed

The pull request is closed.

📝 Walkthrough

Walkthrough

Migration from custom AiService to @effect/ai LanguageModel with GraphRAG retrieval implementation, database repositories for entity-relation operations, comprehensive test infrastructure, and documentation updates across knowledge-server architecture.

Changes

Cohort / File(s) Summary
Root Package Dependencies
package.json
Updated next (^16.2.0-canary.2 → ^16.2.0-canary.3) and zod (^4.3.5 → ^4.3.6).
Knowledge Server Dependencies
packages/knowledge/server/package.json
Added @effect/ai (^0.33.2), @effect/ai-anthropic (^0.23.0), @effect/ai-openai (^0.37.2) to support LLM provider integration.
AI Service Removal
packages/knowledge/server/src/Ai/AiService.ts, packages/knowledge/server/src/Ai/index.ts
Deleted entire AiService module (171 lines), including interfaces, mock implementations, and dependency injection setup. Removed export from index.
LLM Provider Integration
packages/knowledge/server/src/Runtime/LlmLayers.ts, packages/knowledge/server/src/Runtime/index.ts
New module for config-driven LanguageModel provider selection (Anthropic/OpenAI), with environment-based configuration and redacted API key handling.
Extractor Migrations
packages/knowledge/server/src/Extraction/EntityExtractor.ts, packages/knowledge/server/src/Extraction/MentionExtractor.ts, packages/knowledge/server/src/Extraction/RelationExtractor.ts
Replaced AiService with LanguageModel.LanguageModel, updated prompt construction via Prompt.make(), changed result access paths (result.value), token accounting (inputTokens + outputTokens), removed aiConfig from config interfaces.
Extraction Pipeline Updates
packages/knowledge/server/src/Extraction/ExtractionPipeline.ts
Removed aiConfig field and usage from pipeline configuration; removed AiGenerationConfig import.
GraphRAG New Subsystem
packages/knowledge/server/src/GraphRAG/ContextFormatter.ts, packages/knowledge/server/src/GraphRAG/GraphRAGService.ts, packages/knowledge/server/src/GraphRAG/RrfScorer.ts, packages/knowledge/server/src/GraphRAG/index.ts
Comprehensive GraphRAG implementation: context formatting utilities, RRF-based ranking fusion, full retrieval pipeline with k-NN search and N-hop BFS traversal, schema definitions (EntityFilters, GraphRAGQuery, GraphRAGResult).
Database Repositories
packages/knowledge/server/src/db/repos/Entity.repo.ts, packages/knowledge/server/src/db/repos/Relation.repo.ts, packages/knowledge/server/src/db/repos/index.ts
New repository modules for entity and relation CRUD with graph-traversal queries (findByIds, findByOntology, findBySourceIds, findByTargetIds, findByEntityIds, findByPredicate); public exports added to repos index.
Minor Implementation Changes
packages/knowledge/server/src/EntityResolution/EntityClusterer.ts, packages/knowledge/server/src/Grounding/ConfidenceFilter.ts
Refactored hasTypeOverlap to use Effect/Array.some; simplified filterGraph predicate logic.
Public API Surface
packages/knowledge/server/src/index.ts
Added GraphRAG namespace export.
Test Infrastructure
packages/knowledge/server/test/_shared/TestLayers.ts
New mock utilities: MockLlmLive layer, mock response registry, helpers for fixed/failing/tracking mocks, OntologyContext factory. Supports flexible LLM testing patterns.
Extraction Tests
packages/knowledge/server/test/Extraction/EntityExtractor.test.ts, packages/knowledge/server/test/Extraction/MentionExtractor.test.ts, packages/knowledge/server/test/Extraction/RelationExtractor.test.ts, packages/knowledge/server/test/Extraction/GraphAssembler.test.ts
Comprehensive test suites covering classification, confidence filtering, type validation, canonical resolution, mention merging, relation linking, graph assembly, literal handling, entity merging.
GraphRAG Tests
packages/knowledge/server/test/GraphRAG/ContextFormatter.test.ts, packages/knowledge/server/test/GraphRAG/RrfScorer.test.ts
Tests for IRI parsing, entity/relation formatting, token budgeting, RRF scoring functions, ranking fusion, and graph-based rank assignment.
NLP Service Tests
packages/knowledge/server/test/Nlp/NlpService.test.ts
Test suite covering text chunking, sentence boundaries, streaming, token estimation.
Domain Package Docs
packages/knowledge/domain/README.md
Documentation reorganized: renamed public exports from individual classes to Entities namespace, replaced domain-specific error types with centralized Errors export, aligned ID types to shared-domain (KnowledgeEntityId, KnowledgeRelationId), reflected public API surface changes.
Knowledge Server Docs
packages/knowledge/server/README.md, packages/knowledge/server/AGENTS.md
Updated public exports (removed repository-centric KnowledgeDb/EmbeddingRepo, added runtime providers AnthropicLlmLive/OpenAiLlmLive, services for Extraction/GraphRAG/Embedding/Ontology/EntityResolution). Expanded AGENTS.md with module structures, patterns, testing guidelines, and recipes.
Specs & Phase Documentation
specs/knowledge-completion/*
Comprehensive phase-by-phase retrospective (Phases 1–8), updated handoff documents (P2–P7), output analyses (architecture-review, current-impl-analysis, gap-analysis, remediation-plan, slice-structure-review), design documents (design-llm-layers, design-migration, effect-ai-research, reference-patterns), migration templates.

Sequence Diagram(s)

sequenceDiagram
    autonumber
    participant Client
    participant EmbeddingService
    participant KnowledgeRepos as Repos<br/>(Entity, Relation)
    participant GraphRAGService
    participant LanguageModel
    participant ContextFormatter
    participant Result

    Client->>GraphRAGService: query(input, organizationId)
    GraphRAGService->>EmbeddingService: embed query text
    EmbeddingService-->>GraphRAGService: embedding vector
    GraphRAGService->>KnowledgeRepos: k-NN search seed entities
    KnowledgeRepos-->>GraphRAGService: seed entities
    GraphRAGService->>KnowledgeRepos: BFS traversal (N-hops)
    KnowledgeRepos-->>GraphRAGService: related entities & relations
    GraphRAGService->>GraphRAGService: RRF score fusion<br/>(embedding + graph ranks)
    GraphRAGService->>GraphRAGService: sort by score
    GraphRAGService->>ContextFormatter: format entities, relations
    ContextFormatter-->>GraphRAGService: markdown context
    GraphRAGService-->>Result: GraphRAGResult<br/>(entities, relations, scores, context, stats)
Loading
sequenceDiagram
    autonumber
    participant Extractor as EntityExtractor
    participant LanguageModel as LLM:<br/>LanguageModel
    participant Prompt as Prompt.make()
    participant OntologyService
    participant Result

    Extractor->>Extractor: obtain LanguageModel<br/>from dependencies
    Extractor->>Prompt: construct system + user<br/>prompt array
    Prompt-->>Extractor: Prompt object
    Extractor->>LanguageModel: generateObject<br/>({ prompt, schema })
    LanguageModel-->>Extractor: { value: { entities }, usage }
    Extractor->>OntologyService: validate entity types
    OntologyService-->>Extractor: valid/invalid results
    Extractor->>Extractor: aggregate by<br/>canonicalName
    Extractor-->>Result: { entities, invalidTypes, tokensUsed }
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~60 minutes

Poem

🐰 Hops of refactor, bounds so clean—
GraphRAG hops through a knowledge dream,
Effect runs deep with types so precise,
LLM threads woven through—
New gardens grow! 🌱✨

✨ Finishing touches
  • 📝 Generate docstrings

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant