Skip to content

Conversation

@spyrchat
Copy link
Owner

@spyrchat spyrchat commented Sep 7, 2025

This pull request introduces a modular, production-ready Retrieval-Augmented Generation (RAG) system built around a configurable LangGraph agent architecture. The changes add a flexible, YAML-configurable retrieval pipeline, robust agent node implementations, and comprehensive documentation. The new system supports advanced retrieval strategies, reranking, filtering, and seamless agent workflows, making it highly extensible and suitable for production use.

The most important changes are:

Agent System Architecture & Core Nodes:

  • Introduced a new LangGraph-based agent in agent/graph.py, wiring together modular nodes for query interpretation, retrieval, answer generation, and memory updating, all configurable via YAML.
  • Implemented modular agent nodes:
    • query_interpreter for intent classification and routing
    • retriever supporting configurable pipelines and legacy compatibility
    • generator for answer synthesis using LLMs
    • memory_updater for chat history management
  • Defined a comprehensive AgentState schema for agent state management, supporting enhanced retrieval metadata and error handling.

Configurable Retrieval Pipeline:

  • Added a highly flexible retriever node (make_configurable_retriever) that loads pipeline configurations from YAML, supports multiple retrieval strategies (dense, sparse, hybrid), reranking, filtering, and rich metadata output.

Productionization & Deployment:

  • Added a Dockerfile for containerized, production-ready deployment, including system dependencies and Python requirements installation.

Documentation & Developer Experience:

  • Replaced the README.md with a detailed, user- and developer-focused guide covering architecture, configuration, extension, testing, and migration from legacy code.

Agent Architecture & Core Logic

  • Added agent/graph.py to define the main LangGraph agent, connecting modular nodes for interpretation, retrieval, generation, and memory, all configurable via YAML.
  • Implemented agent nodes: query interpreter (LLM-based routing), configurable retriever, generator (LLM answer synthesis), and memory updater for chat history. [1] [2] [3] [4]
  • Defined a robust AgentState schema supporting enhanced retrieval, error handling, and extensibility.

Retrieval Pipeline Flexibility

  • Introduced a configurable retriever node supporting YAML-based pipeline configuration, advanced reranking, filtering, and rich document metadata, with legacy compatibility for older retrieval strategies.

Deployment & Operations

  • Added a Dockerfile for streamlined, production-ready containerization of the system.

Documentation & Usability

  • Overhauled README.md with comprehensive instructions, architecture diagrams, extension guides, configuration examples, and migration paths from legacy code.

spyrchat added 30 commits April 26, 2025 17:00
…it; create hybrid-retriever.py file; update requirements.txt for new dependencies
…nit_collection method and enhance as_langchain_vectorstore for hybrid retrieval; improve BaseRetriever documentation and remove hybrid-retriever.py file.
…ctor run method to return dense and sparse vectors; update test script to integrate new pipeline functionality and add metadata handling for documents.
… logging for collection creation and document insertion; refactor insert_documents method for improved clarity. Update EmbeddingPipeline to use new splitter method. Modify SparseEmbedder to default to CUDA. Add hybrid_retriever.py file.
…nitialization and embedding retrieval; improve logging and document preparation in test_embedding_pipeline.
…ds to retrieve client and collection name. Update EmbeddingPipeline and SparseEmbedder to use Embeddings instead of BaseEmbedder. Add QdrantHybridRetriever for hybrid retrieval functionality and update test scripts accordingly.
Hybrid retriever is functional and ready to deploy to development branch
…er; add text processing pipeline for PDF documents
…; implement metadata handling and enrich documents for upload
…g, and memory updating; add retriever routing logic and logging
… requirements.txt with dependency version upgrades
…script

- Deleted the following test files:
  - test_full_ingestion.py
  - test_modular_pipeline.py
  - run_all_tests.py
  - test_adapter_fix.py
  - test_agent_retrieval.py
  - test_retriever_direct.py
  - test_streamlined_agent.py

- Added a new test file: test_local_setup.py
  - This script checks prerequisites and runs progressive tests for the pipeline.
…t.txt and updating pipeline tests to use requirements-minimal.txt
…ation structure for improved clarity and maintainability.

- Deleted SYSTEM_EXTENSION_GUIDE.md, UNIFIED_CONFIG.md, agent_retrieval_upgrade_summary.md, config_reorganization_summary.md, integration_testing_setup.md, and sql_removal_summary.md.
- Simplified agent graph by removing SQL-related nodes and dependencies.
- Consolidated configuration files into a unified structure, enhancing usability and reducing clutter.
@spyrchat
Copy link
Owner Author

spyrchat commented Sep 8, 2025

This pull request introduces a modular, production-ready Retrieval-Augmented Generation (RAG) system with a LangGraph agent architecture. It adds a configurable agent graph, modular pipeline components, robust testing and CI/CD setup, and comprehensive documentation for users and contributors. The most important changes are grouped below:

Agent Graph and Modular Pipeline Architecture

  • Introduced agent/graph.py, which builds a configurable LangGraph agent using modular nodes for query interpretation, retrieval, generation, and memory updating, all configurable via YAML. This enables flexible and extensible RAG workflows.
  • Added new node implementations: query_interpreter, retriever, generator, and memory_updater, each as a separate module under agent/nodes/, supporting clean separation of concerns and easy extension. [1] [2] [3]

Testing and CI/CD

  • Added a new GitHub Actions workflow .github/workflows/pipeline-tests.yml to automate minimal, integration, and security/config validation tests, including Qdrant service integration and configuration checks for robustness.

Deployment and Packaging

  • Introduced a Dockerfile using a slim Python 3.11 base image, installing dependencies and copying the full source, to support easy containerized deployment of the system.

Documentation and Developer Experience

  • Replaced the README.md with a detailed overview of the architecture, features, configuration options, usage instructions, extension guidelines, and project structure, making it easier for users and contributors to understand and work with the system.

@spyrchat spyrchat merged commit 3ef36b0 into main Sep 8, 2025
3 checks passed
@spyrchat spyrchat deleted the benchmark branch September 8, 2025 00:15
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.

2 participants