本项目使用 LlamaIndex 实现了一个检索增强生成 (RAG) 的心理学专家。
-aexp/
: 实验配置、模型检查点、损失曲线和推理结果。
-data/
:
-raw/
: 原始数据。
-processed/
: 处理后的数据。
-saved_index/
: LlamaIndex 持久化索引存储。
-docs/
: 项目文档和详细计划。
-discuss/
: 讨论文档、计划和评审提案。
-logs/
: 应用程序日志。
-script/
: 用于运行和调试的 Shell 脚本。
-src/
: Python 源代码。
-main.py
: RAG 系统的主要入口点,包含用于文档加载的核心 LlamaIndex 逻辑,以及两种索引构建方法:build_and_save_index_simple
(使用 VectorStoreIndex.from_documents
)和 build_and_save_index_with_pipeline
(使用带有 tqdm
进度条的 IngestionPipeline
),包括保存、加载和查询功能。
-requirements.txt
: Python 依赖项。
-readme.md
: 项目 README。
-.gitignore
: Git 忽略文件。
1.安装依赖项: 使用 pip install -r requirements.txt
安装 Python 依赖项。
LLM(大型语言模型)和嵌入模型通过项目根目录下的 config.json
进行配置。apis
部分包含不同 API 的配置,每个配置都定义了 base_url
、api_key
、default_model
(用于 LLM)、embedding_model
和 embed_batch_size
(嵌入生成批处理大小)。
config.json
示例片段:
{
"apis": {
"siliconflow": {
"base_url": "https://api.siliconflow.cn/v1",
"api_key": "YOUR_API_KEY",
"default_model": "Qwen/Qwen2.5-7B-Instruct",
"embedding_model": "BAAI/bge-m3",
"embed_batch_size": 1
}
},
"default_api": "siliconflow"
}
环境变量: 对于 api_key
和 base_url
,如果设置了环境变量 API_KEY
和 API_BASE
,它们将优先于 config.json
中的值。
要运行 RAG 系统,请使用 script/run.sh
脚本。此脚本现在接受命令行参数来配置 RAG 管道。如果未提供任何参数,将使用默认路径和默认查询。
默认执行:
bashscript/run.sh
自定义参数:
您可以通过直接向 run.sh
脚本传递参数来覆盖默认值。可用参数包括:
---config_path
: 配置文件 JSON 的路径(默认值:./config.json
)
---data_path
: 包含文档的原始数据目录的路径(默认值:./data/raw
)
---index_path
: 用于保存/加载索引的目录的路径(默认值:./data/saved_index
)
---query_text
: 发送到 RAG 系统的查询文本(默认值:“你现在是一名专业的心理咨询师,如何处理来访者对自己的移情,具体的步骤是什么,请给出你回答的依据(书本等)”)
---enable_rag
: 启用或禁用 RAG 功能。如果禁用,将直接查询 LLM。(默认值:True
)
---default_api
: 指定要使用的默认 API(例如,siliconflow
或 qwen
)。这将覆盖 config.json
中的设置。
自定义参数示例:
bashscript/run.sh\
--config_path "./my_custom_config.json" \
--data_path"./data/my_documents"\
--query_text "什么是认知行为疗法?" \
--enable_ragfalse\
--default_api "qwen"
这将使用指定的参数执行 main.py
脚本,演示完整的 RAG 管道。输出将包括有关文档加载、索引创建和示例查询响应的日志。