Metadata-Version: 2.4
Name: langchain-modular-rag-gary
Version: 0.1.0
Summary: A modular RAG retrieval class based on LangChain and Chroma
Requires-Python: >=3.11
Description-Content-Type: text/markdown
Requires-Dist: chromadb
Requires-Dist: langchain-chroma
Requires-Dist: langchain-community
Requires-Dist: langchain-core
Requires-Dist: langchain-openai
Requires-Dist: langchain-classic
Requires-Dist: jieba
Requires-Dist: rank-bm25
Requires-Dist: python-dotenv
Requires-Dist: dashscope
Provides-Extra: publish
Requires-Dist: build; extra == "publish"
Requires-Dist: twine; extra == "publish"

# langchain-modular-rag-gary

提供一个 `ModularRAG` 类，用于连接已有的 Chroma 知识库并执行在线检索。

Python 3.11 及以上。

## 安装

```bash
pip install langchain-modular-rag-gary
```

## 使用

```python
from langchain_modular_rag_gary import ModularRAG

rag = ModularRAG({
    "persist_directory": "./chroma_db",
    "collection_name": "study",
    "embedding_model": "text-embedding-v4",
    "top_k": 5,
    "recall_top_k": 20,
    "pre_retrieval": {
        "enabled": False,
        "rewrite_query": False,
        "hyde": False,
        "model": "qwen-plus",
    },
    "hybrid_retrieval": {
        "enabled": True,
        "weights": [0.5, 0.5],
    },
    "post_retrieval": {
        "enabled": True,
        "deduplicate": True,
        "rerank": False,
        "rerank_model": "qwen3-rerank",
        "similarity_filter": False,
        "similarity_threshold": 0.4,
        "compress_context": False,
        "llm_model": "qwen-plus",
        "reorder": False,
    },
})

results = rag.search("公司打卡时间？")
for document in results:
    print(document.metadata)
    print(document.page_content)
```

## 环境变量

需要配置通义 API Key：

```bash
export DASHSCOPE_API_KEY="你的 API Key"
或
setx DASHSCOPE_API_KEY="你的 API Key"
```

`persist_directory` 指向已经完成入库的 Chroma 数据库。这个包当前只提供在线检索，不包含你的个人知识库数据，也不会自动创建或导入知识库。
