Metadata-Version: 2.4
Name: langchain-modular-rag-zjj
Version: 0.1.0
Summary: 基于 LangChain 的模块化 RAG 示例
Author-email: zjj <you@example.com>
Project-URL: Homepage, https://github.com/your-account/langchain-modular-rag-zjj
Keywords: langchain,rag,chroma,dashscope
Requires-Python: >=3.10
Description-Content-Type: text/markdown
Requires-Dist: langchain
Requires-Dist: langchain-community
Requires-Dist: langchain-chroma
Requires-Dist: langchain-openai
Requires-Dist: dashscope
Requires-Dist: python-dotenv

# langchain-modular-rag-zjj

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

Python 3.11 及以上。

## 安装

```bash
pip langchain-modular-rag-zjj
```

## 使用

```python
from langchain_modular_rag 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 数据库。这个包当前只提供在线检索，不包含你的个人知识库数据，也不会自动创建或导入知识库。
