茴香豆知识库应用
HuiXiangDou 是一个基于大语言模型(LLM)的知识助手,由书生浦语团队开发。它专为国内企业级应用场景设计和优化,经过大量实际场景和数据验证。其特点包括:
支持多种场景和行业,可在 CPU – only 或 2G – 80G 显存场景下运行,灵活匹配各种规模企业需求,有多种部署方式。
支持丰富的技术栈,全流程配置文件调试,满足初级至高级应用,开箱即用。
它的应用场景主要是智能客服群聊,能够解决技术支持、领域知识对话、回答重复度高、专业性强等问题,节省人工回复成本,提高工作效率。

HuiXiangDou 能够快速在群聊中搭建自动应答系统,帮助维护者减轻开发和运营成本,提高问答效率。
RAG场景痛点
群聊为主
痛点描述:用户以客户群或分享群问答为主,不习惯独立问答界面。
问答繁杂
痛点描述:群聊内容质量良莠不齐,问题重复,无关问题等需要知识助手判断是否需要回答。
需求多样
痛点描述:企业需求差异度极大,预算、设备和安全性需求差异大。
技术复杂
企业缺乏大模型相关技术与人员储备,独立开发和调优能力参差不齐。RAG 技术涉及到大型模型的开发和调优,对技术和人员要求较高。然而,很多企业在这方面缺乏足够的技术储备和专业人员,导致在独立开发和优化 RAG 系统时能力不足,难以达到理想的效果

针对此背景,茴香豆具备特性如下

茴香豆构建:基于知识库,并且能否跟微信、飞书端口进行API连接

茴香豆的三阶段 pipeline

拒答:正反例

知识图谱和混合稠密检索
若要更高精细度,需要用到80G显存

响应 pipeline

茴香豆环境搭建
环境搭建,镜像选择 Cuda11.7-conda
1、登录开发机

2、环境创建
studio-conda -o internlm-base -t huixiangdou

激活环境
conda activate huixiangdou

3、拉取茴香豆
cd /root
# 克隆代码仓库
git clone https://github.com/internlm/huixiangdou && cd huixiangdou
git checkout 79fa810

4、安装茴香豆依赖库
conda activate huixiangdou
# parsing `word` format requirements
apt update
apt install python-dev libxml2-dev libxslt1-dev antiword unrtf poppler-utils pstotext tesseract-ocr flac ffmpeg lame libmad0 libsox-fmt-mp3 sox libjpeg-dev swig libpulse-dev
# python requirements
pip install BCEmbedding==0.1.5 cmake==3.30.2 lit==18.1.8 sentencepiece==0.2.0 protobuf==5.27.3 accelerate==0.33.0
pip install -r requirements.txt
# python3.8 安装 faiss-gpu 而不是 faiss

5、下载模型文件
# 创建模型文件夹
cd /root && mkdir models
# 复制BCE模型
ln -s /root/share/new_models/maidalun1020/bce-embedding-base_v1 /root/models/bce-embedding-base_v1
ln -s /root/share/new_models/maidalun1020/bce-reranker-base_v1 /root/models/bce-reranker-base_v1
# 复制大模型参数(下面的模型,根据作业进度和任务进行**选择一个**就行)
ln -s /root/share/new_models/Shanghai_AI_Laboratory/internlm2-chat-7b /root/models/internlm2-chat-7b

6、更改配置文件
所有功能开启和模型切换都可以通过 config.ini 文件进行修改
sed -i '9s#.*#embedding_model_path = "/root/models/bce-embedding-base_v1"#' /root/huixiangdou/config.ini
sed -i '15s#.*#reranker_model_path = "/root/models/bce-reranker-base_v1"#' /root/huixiangdou/config.ini
sed -i '43s#.*#local_llm_path = "/root/models/internlm2-chat-7b"#' /root/huixiangdou/config.ini

7、知识库创建( MMPose知识问答)
conda activate huixiangdou
cd /root/huixiangdou && mkdir repodir
git clone https://github.com/internlm/huixiangdou --depth=1 repodir/huixiangdou
git clone https://github.com/open-mmlab/mmpose --depth=1 repodir/mmpose

# Save the features of repodir to workdir, and update the positive and negative example thresholds into `config.ini`
mkdir workdir
python3 -m huixiangdou.service.feature_store
conda install -c conda-forge loguru

huixiangdou 文件加下创建 repodir 文件夹,用来储存知识库原始文档。
再创建一个文件夹 workdir 用来存放原始文档特征提取到的向量知识库。
编辑正反例来调整茴香豆的拒答和响应
正例:/root/huixiangdou/resource/good_questions.json
反例:/root/huixiangdou/resource/bad_questions.json
每次更新完正反例,则需要运行命令更新
python3 -m huixiangdou.service.feature_store
8、知识库问答助手测试
conda activate huixiangdou
cd /root/huixiangdou
python3 -m huixiangdou.main –standalone

如果报错——
conda activate huixiangdou
pip install toml
python3 -m huixiangdou.main –standalone

huixiangdou/huixiangdou/service/feature_store.py
9、Gradio UI 界面测试
ssh -CNg -L 7860:127.0.0.1:7860 [email protected] -p <你的ssh端口号>
ssh -CNg -L 7860:127.0.0.1:7860 [email protected] -p 48913

启动茴香豆 Web UI命令
conda activate huixiangdou
cd /root/huixiangdou
python3 -m huixiangdou.gradio
本地浏览器中输入
127.0.0.1:7860
10、集成飞书&微信群聊
pip install -r requirements-lark-group.txt
详细教程:
https://github.com/InternLM/HuixiangDou/blob/main/docs/add_lark_group_zh.md