graph LR
Core_AI_Services["Core AI Services"]
Data_Management["Data Management"]
Document_Processing_System["Document Processing System"]
Chat_System["Chat System"]
Evaluation_System["Evaluation System"]
System_Utilities_Observability["System Utilities & Observability"]
CLI_Orchestration["CLI & Orchestration"]
Guardrail_Service["Guardrail Service"]
Document_Processing_System -- "utilizes" --> Core_AI_Services
Document_Processing_System -- "enriches via" --> Core_AI_Services
Document_Processing_System -- "accesses" --> Data_Management
Document_Processing_System -- "fetches data from" --> Data_Management
Chat_System -- "communicates with" --> Core_AI_Services
Chat_System -- "compresses via" --> Core_AI_Services
Evaluation_System -- "uses" --> Core_AI_Services
Evaluation_System -- "generates via" --> Core_AI_Services
Evaluation_System -- "produces data for" --> Document_Processing_System
CLI_Orchestration -- "invokes" --> Document_Processing_System
CLI_Orchestration -- "manages" --> Data_Management
CLI_Orchestration -- "interacts with" --> Core_AI_Services
CLI_Orchestration -- "executes via" --> Core_AI_Services
CLI_Orchestration -- "initiates" --> Evaluation_System
Guardrail_Service -- "moderates via" --> Core_AI_Services
Data_Management -- "depends on" --> Core_AI_Services
System_Utilities_Observability -- "supports" --> Core_AI_Services
System_Utilities_Observability -- "monitors" --> Core_AI_Services
System_Utilities_Observability -- "supports" --> Data_Management
System_Utilities_Observability -- "monitors" --> Data_Management
System_Utilities_Observability -- "supports" --> Document_Processing_System
System_Utilities_Observability -- "monitors" --> Document_Processing_System
System_Utilities_Observability -- "supports" --> Chat_System
System_Utilities_Observability -- "monitors" --> Chat_System
System_Utilities_Observability -- "supports" --> Evaluation_System
System_Utilities_Observability -- "monitors" --> Evaluation_System
System_Utilities_Observability -- "supports" --> CLI_Orchestration
System_Utilities_Observability -- "monitors" --> CLI_Orchestration
System_Utilities_Observability -- "supports" --> Guardrail_Service
System_Utilities_Observability -- "monitors" --> Guardrail_Service
click Core_AI_Services href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/ragbits/Core AI Services.md" "Details"
click Data_Management href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/ragbits/Data Management.md" "Details"
click Document_Processing_System href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/ragbits/Document Processing System.md" "Details"
click Chat_System href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/ragbits/Chat System.md" "Details"
click Evaluation_System href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/ragbits/Evaluation System.md" "Details"
click System_Utilities_Observability href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/ragbits/System Utilities & Observability.md" "Details"
click CLI_Orchestration href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/ragbits/CLI & Orchestration.md" "Details"
click Guardrail_Service href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/ragbits/Guardrail Service.md" "Details"
The ragbits project provides a comprehensive framework for building and evaluating Retrieval-Augmented Generation (RAG) systems. It integrates various AI services like LLMs and embeddings, manages data storage and retrieval, and offers robust document processing capabilities. The system includes a chat interface, an extensive evaluation framework, and a command-line interface for interaction, all supported by core utilities and observability features, with an optional guardrail service for content moderation.
Provides fundamental interfaces for interacting with Large Language Models (LLMs) for text generation, streaming, and token counting, and manages the creation of dense and sparse vector embeddings from diverse data types. It also handles the construction, rendering, and parsing of prompts for LLMs.
Related Classes/Methods:
ragbits.packages.ragbits-core.src.ragbits.core.llms.litellm.LiteLLM(45:360)ragbits.packages.ragbits-core.src.ragbits.core.llms.mock.MockLLM(21:75)ragbits.packages.ragbits-core.src.ragbits.core.llms.local.LocalLLM(42:216)ragbits.packages.ragbits-core.src.ragbits.core.llms.base.LLM(42:320)ragbits.packages.ragbits-core.src.ragbits.core.llms.exceptions.LLMError(1:8)ragbits.packages.ragbits-core.src.ragbits.core.llms.exceptions.LLMConnectionError:__init__(16:17)ragbits.packages.ragbits-core.src.ragbits.core.llms.exceptions.LLMStatusError:__init__(25:27)ragbits.packages.ragbits-core.src.ragbits.core.llms.exceptions.LLMResponseError:__init__(35:36)ragbits.packages.ragbits-core.src.ragbits.core.llms.exceptions.LLMEmptyResponseError:__init__(44:45)ragbits.packages.ragbits-core.src.ragbits.core.llms.exceptions.LLMNotSupportingImagesError:__init__(53:54)ragbits.packages.ragbits-core.src.ragbits.core.embeddings.dense.litellm.LiteLLMEmbedder(31:168)ragbits.packages.ragbits-core.src.ragbits.core.embeddings.dense.fastembed.FastEmbedEmbedder(20:84)ragbits.packages.ragbits-core.src.ragbits.core.embeddings.dense.vertex_multimodal.VertexAIMultimodelEmbedder(24:198)ragbits.packages.ragbits-core.src.ragbits.core.embeddings.dense.local.LocalEmbedder(25:91)ragbits.packages.ragbits-core.src.ragbits.core.embeddings.sparse.fastembed.FastEmbedSparseEmbedder(11:80)ragbits.packages.ragbits-core.src.ragbits.core.embeddings.exceptions.EmbeddingError(1:8)ragbits.packages.ragbits-core.src.ragbits.core.embeddings.exceptions.EmbeddingConnectionError:__init__(16:17)ragbits.packages.ragbits-core.src.ragbits.core.embeddings.exceptions.EmbeddingStatusError:__init__(25:27)ragbits.packages.ragbits-core.src.ragbits.core.embeddings.exceptions.EmbeddingResponseError:__init__(35:36)ragbits.packages.ragbits-core.src.ragbits.core.embeddings.exceptions.EmbeddingEmptyResponseError:__init__(44:45)ragbits.packages.ragbits-core.src.ragbits.core.embeddings.base.Embedder(37:92)ragbits.packages.ragbits-core.src.ragbits.core.prompt.prompt.Prompt(21:356)ragbits.packages.ragbits-core.src.ragbits.core.prompt.base.BasePrompt(11:47)ragbits.packages.ragbits-core.src.ragbits.core.prompt.discovery.PromptDiscovery(12:74)ragbits.packages.ragbits-core.src.ragbits.core.prompt.parsers:int_parser(19:35)ragbits.packages.ragbits-core.src.ragbits.core.prompt.parsers:float_parser(51:67)ragbits.packages.ragbits-core.src.ragbits.core.prompt.parsers:bool_parser(70:88)ragbits.packages.ragbits-core.src.ragbits.core.prompt.parsers:build_pydantic_parser(91:123)ragbits.packages.ragbits-core.src.ragbits.core.prompt.parsers.ResponseParsingError(9:16)ragbits.packages.ragbits-core.src.ragbits.core.prompt.exceptions.PromptError(1:8)ragbits.packages.ragbits-core.src.ragbits.core.prompt.exceptions.PromptWithImagesOfInvalidFormat:__init__(16:19)ragbits.packages.ragbits-core.src.ragbits.core.prompt._cli:search(65:80)ragbits.packages.ragbits-core.src.ragbits.core.prompt._cli:render(84:90)ragbits.packages.ragbits-core.src.ragbits.core.prompt._cli:execute(94:112)
Offers a standardized interface for storing, querying, and managing vector data across different vector database implementations and provides mechanisms to connect to and retrieve data from various external and local sources.
Related Classes/Methods:
ragbits.packages.ragbits-core.src.ragbits.core.vector_stores.chroma.ChromaVectorStore(29:320)ragbits.packages.ragbits-core.src.ragbits.core.vector_stores.pgvector.PgVectorStore(45:471)ragbits.packages.ragbits-core.src.ragbits.core.vector_stores.qdrant.QdrantVectorStore(33:361)ragbits.packages.ragbits-core.src.ragbits.core.vector_stores.base.VectorStoreWithDenseEmbedder(155:221)ragbits.packages.ragbits-core.src.ragbits.core.vector_stores.base.VectorStoreWithEmbedder(224:291)ragbits.packages.ragbits-core.src.ragbits.core.vector_stores.hybrid_strategies.DistributionBasedScoreFusion(123:176)ragbits.packages.ragbits-core.src.ragbits.core.vector_stores._cli:list_entries(53:72)ragbits.packages.ragbits-core.src.ragbits.core.vector_stores._cli:remove(80:97)ragbits.packages.ragbits-core.src.ragbits.core.vector_stores._cli:query(101:128)ragbits.packages.ragbits-core.src.ragbits.core.vector_stores.base.VectorStore(84:143)ragbits.packages.ragbits-core.src.ragbits.core.sources.hf.HuggingFaceSource(19:146)ragbits.packages.ragbits-core.src.ragbits.core.sources.git.GitSource(22:213)ragbits.packages.ragbits-core.src.ragbits.core.sources.azure.AzureBlobStorageSource(21:192)ragbits.packages.ragbits-core.src.ragbits.core.sources.web.WebSource(14:91)ragbits.packages.ragbits-core.src.ragbits.core.sources.s3.S3Source(19:187)ragbits.packages.ragbits-core.src.ragbits.core.sources.local.LocalFileSource(12:92)ragbits.packages.ragbits-core.src.ragbits.core.sources.gcs.GCSSource(16:134)ragbits.packages.ragbits-core.src.ragbits.core.sources.base.Source(20:105)ragbits.packages.ragbits-core.src.ragbits.core.sources.exceptions.SourceError(1:8)ragbits.packages.ragbits-core.src.ragbits.core.sources.exceptions.SourceConnectionError:__init__(16:17)ragbits.packages.ragbits-core.src.ragbits.core.sources.exceptions.SourceNotFoundError:__init__(25:27)ragbits.packages.ragbits-core.src.ragbits.core.sources.exceptions.SourceDownloadError:__init__(35:38)
The primary component responsible for orchestrating document search operations, managing the end-to-end process of ingesting documents (parsing, enriching, indexing), and improving search results by rephrasing user queries and reranking retrieved documents. It also defines the structured representation of documents and their constituent elements.
Related Classes/Methods:
ragbits.packages.ragbits-document-search.src.ragbits.document_search._main.DocumentSearch(62:273)ragbits.packages.ragbits-document-search.src.ragbits.document_search.cli:search(69:92)ragbits.packages.ragbits-document-search.src.ragbits.document_search.cli:ingest(96:109)ragbits.packages.ragbits-document-search.src.ragbits.document_search.ingestion.strategies.batched.BatchedIngestStrategy(30:261)ragbits.packages.ragbits-document-search.src.ragbits.document_search.ingestion.parsers.unstructured.UnstructuredDocumentParser(35:248)ragbits.packages.ragbits-document-search.src.ragbits.document_search.ingestion.parsers.docling.DoclingDocumentParser(20:156)ragbits.packages.ragbits-document-search.src.ragbits.document_search.ingestion.parsers.base.TextDocumentParser(52:73)ragbits.packages.ragbits-document-search.src.ragbits.document_search.ingestion.parsers.base.ImageDocumentParser(76:97)ragbits.packages.ragbits-document-search.src.ragbits.document_search.ingestion.enrichers.image.ImageElementEnricher(36:107)ragbits.packages.ragbits-document-search.src.ragbits.document_search.ingestion.strategies.base.IngestError(25:46)ragbits.packages.ragbits-document-search.src.ragbits.document_search.ingestion.parsers.exceptions.ParserError(4:11)ragbits.packages.ragbits-document-search.src.ragbits.document_search.ingestion.enrichers.exceptions.EnricherError(4:11)ragbits.packages.ragbits-document-search.src.ragbits.document_search.ingestion.strategies.batched.IngestTaskResult(21:27)ragbits.packages.ragbits-document-search.src.ragbits.document_search.ingestion.parsers.exceptions.ParserNotFoundError:__init__(19:21)ragbits.packages.ragbits-document-search.src.ragbits.document_search.ingestion.parsers.exceptions.ParserDocumentNotSupportedError:__init__(29:32)ragbits.packages.ragbits-document-search.src.ragbits.document_search.ingestion.enrichers.exceptions.EnricherNotFoundError:__init__(19:21)ragbits.packages.ragbits-document-search.src.ragbits.document_search.ingestion.enrichers.exceptions.EnricherElementNotSupportedError:__init__(29:32)ragbits.packages.ragbits-document-search.src.ragbits.document_search.ingestion.strategies.base.IngestStrategy(79:268)ragbits.packages.ragbits-document-search.src.ragbits.document_search.retrieval.rephrasers.llm.LLMQueryRephraser(69:141)ragbits.packages.ragbits-document-search.src.ragbits.document_search.retrieval.rerankers.llm.LLMReranker(57:177)ragbits.packages.ragbits-document-search.src.ragbits.document_search.retrieval.rephrasers.llm.LLMQueryRephraserPrompt(24:53)ragbits.packages.ragbits-document-search.src.ragbits.document_search.retrieval.rephrasers.llm.LLMQueryRephraserPromptInput(15:21)ragbits.packages.ragbits-document-search.src.ragbits.document_search.retrieval.rerankers.llm.RerankerPrompt(27:40)ragbits.packages.ragbits-document-search.src.ragbits.document_search.retrieval.rerankers.llm.RerankerInput(18:24)ragbits.packages.ragbits-document-search.src.ragbits.document_search.retrieval.rephrasers.base.QueryRephraser(19:39)ragbits.packages.ragbits-document-search.src.ragbits.document_search.retrieval.rerankers.base.Reranker(30:56)ragbits.packages.ragbits-document-search.src.ragbits.document_search.documents.document.DocumentMeta(52:161)ragbits.packages.ragbits-document-search.src.ragbits.document_search.documents.document.Document(164:187)ragbits.packages.ragbits-document-search.src.ragbits.document_search.documents.document.TextDocument(190:203)ragbits.packages.ragbits-document-search.src.ragbits.document_search.documents.document.DocumentType(14:49)ragbits.packages.ragbits-document-search.src.ragbits.document_search.documents.element.Element(22:137)ragbits.packages.ragbits-document-search.src.ragbits.document_search.documents.element.ImageElement(160:208)
Provides the public API and internal interface for managing chat conversations, including handling user inputs, generating responses, and managing chat state. It also handles the storage and retrieval of chat conversation history.
Related Classes/Methods:
ragbits.packages.ragbits-chat.src.ragbits.chat.api.RagbitsAPI(43:230)ragbits.packages.ragbits-chat.src.ragbits.chat.interface._interface.ChatInterface(75:217)ragbits.packages.ragbits-chat.src.ragbits.chat.interface.types.ChatResponse(47:81)ragbits.packages.ragbits-chat.src.ragbits.chat.interface.types.ChatContext(84:90)ragbits.packages.ragbits-chat.src.ragbits.chat.interface.types.Reference(22:27)ragbits.packages.ragbits-chat.src.ragbits.chat.interface.types.StateUpdate(30:34)ragbits.packages.ragbits-chat.src.ragbits.chat.history.compressors.llm.StandaloneMessageCompressor(40:86)ragbits.packages.ragbits-chat.src.ragbits.chat.history.compressors.llm.LastMessageAndHistory(8:14)ragbits.packages.ragbits-chat.src.ragbits.chat.history.compressors.llm.StandaloneMessageCompressorPrompt(17:37)ragbits.packages.ragbits-chat.src.ragbits.chat.persistence.file.FileHistoryPersistence(8:51)ragbits.packages.ragbits-chat.src.ragbits.chat.persistence.sql.SQLHistoryPersistence(136:294)ragbits.packages.ragbits-chat.src.ragbits.chat.persistence.sql.SQLHistoryPersistenceOptions(124:130)ragbits.packages.ragbits-chat.src.ragbits.chat.persistence.sql.create_conversation_model(41:69)ragbits.packages.ragbits-chat.src.ragbits.chat.persistence.sql.create_chat_interaction_model(72:121)ragbits.packages.ragbits-chat.src.ragbits.chat.persistence.base.HistoryPersistence(16:40)
The overarching framework for evaluating RAG systems, encompassing the execution of evaluation pipelines, metric computation, result logging, and optimization of evaluation parameters. It also provides tools for generating synthetic datasets and loading evaluation datasets.
Related Classes/Methods:
ragbits.packages.ragbits-evaluate.src.ragbits.evaluate.evaluator.Evaluator(63:224)ragbits.packages.ragbits-evaluate.src.ragbits.evaluate.evaluator.EvaluatorResult(33:41)ragbits.packages.ragbits-evaluate.src.ragbits.evaluate.evaluator.EvaluationTimePerf(22:29)ragbits.packages.ragbits-evaluate.src.ragbits.evaluate.utils:log_evaluation_to_file(20:50)ragbits.packages.ragbits-evaluate.src.ragbits.evaluate.utils:log_optimization_to_file(104:129)ragbits.packages.ragbits-evaluate.src.ragbits.evaluate.utils._save_json(132:149)ragbits.packages.ragbits-evaluate.src.ragbits.evaluate.optimizer.Optimizer(28:210)ragbits.packages.ragbits-evaluate.src.ragbits.evaluate.pipelines.question_answer.QuestionAnswerPipeline(40:96)ragbits.packages.ragbits-evaluate.src.ragbits.evaluate.pipelines.document_search.DocumentSearchPipeline(38:106)ragbits.packages.ragbits-evaluate.src.ragbits.evaluate.pipelines.base.EvaluationPipeline(30:64)ragbits.packages.ragbits-evaluate.src.ragbits.evaluate.dataset_generator.pipeline.DatasetGenerationPipeline(88:141)ragbits.packages.ragbits-evaluate.src.ragbits.evaluate.dataset_generator.pipeline.DatasetGenerationPipelineConfig(45:85)ragbits.packages.ragbits-evaluate.src.ragbits.evaluate.dataset_generator.pipeline.TaskConfig(28:42)ragbits.packages.ragbits-evaluate.src.ragbits.evaluate.dataset_generator.pipeline.LLMConfigForTask(15:25)ragbits.packages.ragbits-evaluate.src.ragbits.evaluate.dataset_generator.tasks.corpus_generation.CorpusGenerationStep(15:67)ragbits.packages.ragbits-evaluate.src.ragbits.evaluate.dataset_generator.tasks.filter.dont_know.DontKnowFilter(14:34)ragbits.packages.ragbits-evaluate.src.ragbits.evaluate.metrics.question_answer.QuestionAnswerMetric(45:104)ragbits.packages.ragbits-evaluate.src.ragbits.evaluate.metrics.question_answer._MetricLMM(25:42)ragbits.packages.ragbits-evaluate.src.ragbits.evaluate.metrics.document_search.DocumentSearchMetric(12:72)ragbits.packages.ragbits-evaluate.src.ragbits.evaluate.metrics.base.MetricSet(44:89)ragbits.packages.ragbits-evaluate.src.ragbits.evaluate.metrics.base.Metric(13:41)ragbits.packages.ragbits-evaluate.src.ragbits.evaluate.dataloaders.base.DataLoader(25:95)ragbits.packages.ragbits-evaluate.src.ragbits.evaluate.dataloaders.exceptions.DataLoaderError(4:12)ragbits.packages.ragbits-evaluate.src.ragbits.evaluate.dataloaders.exceptions.DataLoaderIncorrectFormatDataError:__init__(20:25)ragbits.packages.ragbits-evaluate.src.ragbits.evaluate.factories:basic_document_search_factory(full file reference)
Provides foundational utility functions for configuration management, data transformations, and dependency validation. It also implements tracing and metric collection functionalities to monitor the execution flow and performance of the system.
Related Classes/Methods:
ragbits.packages.ragbits-core.src.ragbits.core.utils.config_handling.WithConstructionConfig(78:178)ragbits.packages.ragbits-core.src.ragbits.core.utils.config_handling.ConfigurableComponent(181:210)ragbits.packages.ragbits-core.src.ragbits.core.utils.config_handling.import_by_path(31:63)ragbits.packages.ragbits-core.src.ragbits.core.utils.config_handling.InvalidConfigError(19:22)ragbits.packages.ragbits-core.src.ragbits.core.utils.config_handling.NoPreferredConfigError(25:28)ragbits.packages.ragbits-core.src.ragbits.core.utils.dict_transformations:flatten_dict(6:43)ragbits.packages.ragbits-core.src.ragbits.core.utils.dict_transformations:unflatten_dict(219:267)ragbits.packages.ragbits-core.src.ragbits.core.utils.decorators:requires_dependencies(13:56)ragbits.packages.ragbits-core.src.ragbits.core.utils._pyproject:get_ragbits_config(33:64)ragbits.packages.ragbits-core.src.ragbits.core.utils._pyproject:get_config_instance(70:94)ragbits.packages.ragbits-core.src.ragbits.core.options.Options:__or__(21:35)ragbits.packages.ragbits-core.src.ragbits.core.audit.traces.cli.CLISpan(38:191)ragbits.packages.ragbits-core.src.ragbits.core.audit.traces.cli.CLITraceHandler(194:277)ragbits.packages.ragbits-core.src.ragbits.core.audit.traces.base.TraceHandler(13:90)ragbits.packages.ragbits-core.src.ragbits.core.audit.traces.base.AttributeFormatter(93:376)ragbits.packages.ragbits-core.src.ragbits.core.audit.metrics.base.MetricHandler(55:142)ragbits.packages.ragbits-core.src.ragbits.core.audit.traces:traceable(full file reference)
The main entry point for the ragbits command-line interface, handling command parsing, execution, and output formatting. It also manages the execution of agents, which are high-level workflows or decision-making units within the RAGbits system.
Related Classes/Methods:
ragbits.packages.ragbits-cli.src.ragbits.cli:ragbits_cli(16:50)ragbits.packages.ragbits-cli.src.ragbits.cli:main(full file reference)ragbits.packages.ragbits-cli.src.ragbits.cli.state:print_output_table(35:84)ragbits.packages.ragbits-cli.src.ragbits.cli.state:print_output(130:151)ragbits.packages.ragbits-cli.src.ragbits.cli.state.print_output_json(119:127)ragbits.packages.ragbits-cli.src.ragbits.cli._utils:get_instance_or_exit(24:67)ragbits.packages.ragbits-cli.src.ragbits.cli:_init_for_mkdocs(full file reference)ragbits.packages.ragbits-cli.src.ragbits.cli.autoregister(full file reference)ragbits.packages.ragbits-agents.src.ragbits.agents._main.Agent:run(67:71)ragbits.packages.ragbits-agents.src.ragbits.agents._main.AgentResult(14:22)ragbits.packages.ragbits-agents.src.ragbits.agents._main.Agent(34:102)
Provides safety and moderation functionalities, such as integrating with external moderation APIs.
Related Classes/Methods: