Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Latest commit

 

History

History
History
 
 

README.md

Outline

RAG数据库构建流程

构建目的

利用心理学专业的书籍构建QA知识对,为RAG提供心理咨询知识库,使我们的EmoLLM的回答更加专业可靠。为了实现这个目标我们利用几十本心理学书籍来构建这个RAG知识库。主要的构建流程如下:

构建流程

步骤一:PDF to TXT

  • 目的

    • 将收集到的PDF版本的心理学书籍转化为TXT文本文件,方便后续的信息提取。
  • 所需工具

    pip install paddlepaddle
    pip install opencv-python
    pip install paddleocr
  • 注意

    • 如果无法使用pip install paddleocr安装paddleocr,可以考虑采用whl文件安装,下载地址
    • 脚本启动方式采用命令行启动:python pdf2txt.py [PDF存放的文件名]

步骤二:筛选PDF

  • 筛选目的

    • 利用LLM去除非专业心理学书籍
  • 筛选标准,包含心理咨询相关内容,如:

    • 心理咨询流派 - 具体咨询方法
    • 心理疾病 - 疾病特征
    • 心理疾病 - 治疗方法
  • 筛选方式:

    • 根据标题初筛

    • 若无法判断属于心理咨询相关书籍,利用kimi/GLM-4查询是否包含心理咨询相关知识(建议一次仅查询一本书)

    • 参考prompt:
      你是一位经验丰富的心理学教授,熟悉心理学知识和心理咨询。我需要你协助我完成"识别书籍是否包含心理咨询知识"任务,请深呼吸并一步步思考,给出你的答案。如果你的答案让我满意,我将给你10w小费!
      具体任务如下:
      判断该书籍中是否包含以下心理咨询相关知识:
      '''
      心理咨询流派 - 具体咨询方法 
      心理疾病 - 疾病特征
      心理疾病 - 治疗方法
      '''
      请深呼吸并一步步查看该书籍,认真完成任务。

步骤三:提取QA对

  • 根据书籍内容,利用LLM高效构造QA知识对

  • 提取流程

    • 准备处理好的txt文本数据
    • 按要求配置脚本文件
    • 根据自己的需求或者提取的结果合理修改window_size和overlap_size
  • 使用方法

    • 检查 requirements.txt 中的依赖是否满足。
    • 调整代码中 system_prompt,确保与repo最新版本一致,保证生成QA的多样性和稳定性。
    • 将txt文件放到与 model同级目录 data文件夹中.
    • config/config.py 配置所需的 API KEY,从 main.py 启动即可。生成的 QA 对会以 jsonl 的格式存在 data/generated 下。
  • API KEY 获取方法

  • 注意事项

    • 系统提示 System Prompt
      • 注意,目前的解析方案是基于模型会生成 markdown 包裹的 json 块的前提的,更改 system prompt 时需要保证这一点不变。
    • 滑动窗口 Sliding Window
      • 滑动窗口的 window_sizeoverlap_size 都可以在 util/data_loader.py 中的 get_txt_content 函数中更改。目前是按照句子分割的滑动窗口。
  • 书本文件格式 Corpus Format

    • 目前仅支持了 txt 格式,可以将清洗好的书籍文本放在 data 文件夹下,程序会递归检索该文件夹下的所有 txt 文件。

步骤四:清洗QA对

  • 清洗目的

    • 提高提取的QA数据质量,清理掉与心理学无关的QA对
  • 清洗方法

    • 使用Prompt方法,驱动LLM对给出的QA对进行判断

    • 参考Prompt

    • 你是一名经验丰富的心理咨询师,熟悉心理学相关知识。根据我提供的 QA 对,来判断这个 QA 对是否属于心理学范畴。
      
      标准如下:
      
      - 若当前 QA 对属于心理学范畴,则返回1
      - 若当前 QA 对不属于心理学范畴,则返回0
      
      
      以下是给定的心理学 QA 对内容:
  • 清洗工具

    • 配置config/config.py 中的 DASHSCOPE_API_KEY,API_KEY获取方法见步骤三
    • 使用提供的清洗脚本QA_Clear
  • 使用方法

    • 准备好需要清洗的 QA 对数据
    • 将该数据放进 model 同级 data 文件夹下
    • 根据文件夹名去修改 config/config.py 中的 judge_dir
    • 如存储数据的文件名为xxx,则judge_dirjudge_dir = os.path.join(data_dir, 'xxx')
    • 清洗完的 QA 对会以 jsonl 的格式存在 data/cleaned
Morty Proxy This is a proxified and sanitized view of the page, visit original site.