Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -215,3 +215,6 @@ results/
# .env files
.env
.env.local

# development files
**dev**
19 changes: 16 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ A factory for building advanced RAG (Retrieval-Augmented Generation) pipelines,
- GraphRAG architectures
- Multi-modal RAG systems

## Features
## 🌟Features

<div>
<img src="./assets/knowledge_base_screenshot.png" alt="Example Knowledge Base Screenshot of RAG-Factory" width="800">
Expand All @@ -46,11 +46,16 @@ pip install -e .
```

## Usage
```bash
bash run.sh naive_rag/graph_rag/mm_rag
```
or

```bash
python main.py --config examples/graphrag/config.yaml
```


## Examples

See the `examples/` directory for sample configurations and usage.
Expand All @@ -59,17 +64,25 @@ See the `examples/` directory for sample configurations and usage.

### ✅ Implemented Features
- Vector RAG (基于Qdrant实现)
- Graph RAG (支持知识图检索)
- Graph RAG (基于Neo4j实现)
- Multi-modal RAG (基于Neo4j实现文本和图像向量存储与检索)
- Lightweight SQLite Cache (轻量级缓存方案)

### 🚧 Planned Features
- Multi-modal RAG (多模态检索增强生成)
- ReAct QueryEngine (交互式查询引擎)
- Query Engineering:
- Query Rewriting (查询重写)
- Sub-Questions (子问题分解)
- Agentic RAG (智能工具选择优化性能)

## 🙏 Acknowledgements
This project draws inspiration from and gratefully acknowledges the contributions of the following open-source project:
- [llama-index](https://github.com/run-llama/llama_index)
- [llama-factory](https://github.com/hiyouga/LLaMA-Factory)
- [Qdrant](https://github.com/qdrant/qdrant)
- [Neo4j](https://github.com/neo4j/neo4j)


## ⭐ Star History

<a href="https://star-history.com/#DataArcTech/RAG-Factory&Date">
Expand Down
574 changes: 574 additions & 0 deletions data/multimodal_test_samples/documents.json

Large diffs are not rendered by default.

Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
102 changes: 102 additions & 0 deletions data/multimodal_test_samples/images_metadata.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,102 @@
[
{
"image_url": "https://cdn-images-1.medium.com/max/800/1*yscMghSQVAQvQeHV6pZ4PQ.png",
"caption": "Knowledge graph schema representing microservice architecture and their tasks. Image by\u00a0author.",
"file_name": "1*yscMghSQVAQvQeHV6pZ4PQ"
},
{
"image_url": "https://cdn-images-1.medium.com/max/800/1*LM6CuPZiogendK21_UHwPA.png",
"caption": "Node properties of a Microservice and Task nodes. Image by\u00a0author.",
"file_name": "1*LM6CuPZiogendK21 UHwPA"
},
{
"image_url": "https://cdn-images-1.medium.com/max/800/1*6pALyl4xZ2_G9LnGlMR18g.png",
"caption": "Combining multiple data sources into a knowledge graph. Image by\u00a0author.",
"file_name": "1*6pALyl4xZ2 G9LnGlMR18g"
},
{
"image_url": "https://cdn-images-1.medium.com/max/800/1*k9jUdnEB8sR5g0fZzqSiNA.png",
"caption": "Subset of the DevOps graph. Image by\u00a0author.",
"file_name": "1*k9jUdnEB8sR5g0fZzqSiNA"
},
{
"image_url": "https://cdn-images-1.medium.com/max/800/1*H7FLmJdZvGarmGGs81SIRA.png",
"caption": "Vector similarity search in a RAG application. Image by\u00a0author.",
"file_name": "1*H7FLmJdZvGarmGGs81SIRA"
},
{
"image_url": "https://cdn-images-1.medium.com/max/800/1*VVWecqvibBb2vVXuyKU5rw.png",
"caption": "1*VVWecqvibBb2vVXuyKU5rw",
"file_name": "1*VVWecqvibBb2vVXuyKU5rw"
},
{
"image_url": "https://cdn-images-1.medium.com/max/800/1*GFJ9_TnLk2oDnVGtXAwARw.png",
"caption": "1*GFJ9 TnLk2oDnVGtXAwARw",
"file_name": "1*GFJ9 TnLk2oDnVGtXAwARw"
},
{
"image_url": "https://cdn-images-1.medium.com/max/800/1*Jp-QxrEj_IYlOga84KTyBw.png",
"caption": "1*Jp-QxrEj IYlOga84KTyBw",
"file_name": "1*Jp-QxrEj IYlOga84KTyBw"
},
{
"image_url": "https://cdn-images-1.medium.com/max/800/1*chHcyzoxurmTuzVsYgrdLA.png",
"caption": "1*chHcyzoxurmTuzVsYgrdLA",
"file_name": "1*chHcyzoxurmTuzVsYgrdLA"
},
{
"image_url": "https://cdn-images-1.medium.com/max/800/1*OB43zXlHa4fcnL3n44JxcQ.png",
"caption": "1*OB43zXlHa4fcnL3n44JxcQ",
"file_name": "1*OB43zXlHa4fcnL3n44JxcQ"
},
{
"image_url": "https://cdn-images-1.medium.com/max/800/1*DbWfNKMRWJcomb9N5QIhOQ.png",
"caption": "1*DbWfNKMRWJcomb9N5QIhOQ",
"file_name": "1*DbWfNKMRWJcomb9N5QIhOQ"
},
{
"image_url": "https://cdn-images-1.medium.com/max/800/1*RYCIqV1Gfp18VkXfY411Xg.jpeg",
"caption": "The goal of information extraction pipeline is to extract structured information from unstructured text. Image by the\u00a0author.",
"file_name": "1*RYCIqV1Gfp18VkXfY411Xg"
},
{
"image_url": "https://cdn-images-1.medium.com/max/800/1*93ZK9-74dYv4eXY-Oe_bkA.png",
"caption": "Multiple steps of information extraction pipeline. Image by\u00a0author.",
"file_name": "1*93ZK9-74dYv4eXY-Oe bkA"
},
{
"image_url": "https://cdn-images-1.medium.com/max/800/1*OCjG5oY6DyOnLuo1_N4OlA.png",
"caption": "Multiple nodes representing the same\u00a0entity.",
"file_name": "1*OCjG5oY6DyOnLuo1 N4OlA"
},
{
"image_url": "https://cdn-images-1.medium.com/max/800/1*mEipkYmePMYvX4t5tU8u2w.png",
"caption": "Multiple nodes representing the same\u00a0entity.",
"file_name": "1*mEipkYmePMYvX4t5tU8u2w"
},
{
"image_url": "https://cdn-images-1.medium.com/max/800/1*PHsfndcMjOMoAdUAx8IJrw.png",
"caption": "Multiple nodes representing the same\u00a0entity.",
"file_name": "1*PHsfndcMjOMoAdUAx8IJrw"
},
{
"image_url": "https://cdn-images-1.medium.com/max/800/1*CTF2gfNwx4v7V-0qM4s6uw.png",
"caption": "1*CTF2gfNwx4v7V-0qM4s6uw",
"file_name": "1*CTF2gfNwx4v7V-0qM4s6uw"
},
{
"image_url": "https://cdn-images-1.medium.com/max/800/1*2wrx2joD1PaAsC27pshn3A.png",
"caption": "Agenda for this blog post. Image by\u00a0author",
"file_name": "1*2wrx2joD1PaAsC27pshn3A"
},
{
"image_url": "https://cdn-images-1.medium.com/max/800/1*b8pT6KIERk3ZPd-729TmXA.png",
"caption": "1*b8pT6KIERk3ZPd-729TmXA",
"file_name": "1*b8pT6KIERk3ZPd-729TmXA"
},
{
"image_url": "https://cdn-images-1.medium.com/max/800/1*oY5JoNIikQZj3RsXyMrb3w.png",
"caption": "1*oY5JoNIikQZj3RsXyMrb3w",
"file_name": "1*oY5JoNIikQZj3RsXyMrb3w"
}
]
Loading