# serpent
**Repository Path**: efreets/serpent
## Basic Information
- **Project Name**: serpent
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2026-03-21
- **Last Updated**: 2026-03-21
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
Serpent
[](https://github.com/CogitatorTech/serpent/actions/workflows/tests.yml)
[](https://www.codefactor.io/repository/github/CogitatorTech/serpent)
[](https://cogitatortech.github.io/serpent/)
[](https://github.com/CogitatorTech/serpent)
A modular RAG framework for C++
---
Serpent is a small C++ framework for building RAG (retrieval-augmented generation) pipelines and AI-powered applications.
## Features
- **Modular Design**: Swap components via clean interfaces
- **Hybrid Search**: hnswlib (dense) + BM25 (sparse) + RRF fusion
- **Dual LLM Support**: Local models (llama.cpp) + Cloud APIs (OpenRouter)
- **Document Loaders**: PDF, DOCX, and plain text
---
## Architecture
```mermaid
graph TB
subgraph Loaders["Document Loaders"]
TXT["TextLoader"]
PDF["PdfLoader"]
DOCX["DocxLoader"]
end
subgraph Chunking["Text Chunking"]
RC["RecursiveChunker"]
end
subgraph Core["Core"]
DS["MemoryDocumentStore"]
SQL["SqliteStore"]
end
subgraph Retrieval["Retrieval"]
HNSW["HNSWStore
(Dense Vectors)"]
BM25["BM25Index
(Sparse)"]
HR["HybridRetriever"]
RRF["RRF Fusion"]
end
subgraph Providers["LLM Providers"]
LLAMA["LlamaCppProvider
(Local)"]
OR["OpenRouterProvider
(Cloud)"]
end
subgraph Utils["Utilities"]
MM["ModelManager"]
end
TXT & PDF & DOCX --> RC
RC --> DS
DS --> SQL
DS --> HNSW & BM25
HNSW & BM25 --> HR
HR --> RRF
RRF --> LLAMA & OR
MM --> LLAMA
```
---
## Quickstart
To be added.
---
## Documentation
To be added.
---
### Contributing
See [CONTRIBUTING.md](CONTRIBUTING.md) for details on how to make a contribution.
### License
Serpent is available under either of the following licenses:
* MIT License ([LICENSE-MIT](LICENSE-MIT))
* Apache License, Version 2.0 ([LICENSE-APACHE](LICENSE-APACHE))
### Acknowledgements
* The logo is from [here](https://www.svgrepo.com/svg/405246/dragon) with some modifications.