前言
使用场景:因为在公司中,甲方都是同公司的其他部门,或者是大领导单线提出,在需求管理、型号配置、功能配置等等数据都非常多、杂,难以维护。我们无法要求甲方/领导提供完整的零散需求的需求文档,只能由项目经理或者开发来共同维护。这些数据只能以内网知识库的形式提供给适配人员或者相关人员去查询。
使用模型:
1、编码器:moka-ai/m3e-large
2、向量数据库:FAISS
3、LLM:Qwen/Qwen2-1.5B(本机使用,如果GPU服务器,那么你可以选个性能高的,改个名就行)
如果有问题提issue
准备工作
请确保你已经安装并配置好了conda
下载项目
git clone https://github.com/zpskt/MultiModelNLP.git
cd MultiModelNLP
创建conda环境
conda create -n llm-faiss --override-channels -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/ python=3.9
安装依赖
conda activate sentiment
pip install -r src/llm/requirements.txt
#pip install -r src/llm/requirements.txt -i https://mirrors.aliyun.com/pypi/simple/
配置环境变量访问镜像huggingface模型
Linux/Mac
export HF_ENDPOINT=https://hf-mirror.com
你也可以添加到bash中
vim ~/.zshrc # linux为 vim ~/.bashrc
使用
结构目录
你需要了解每个文件和文件夹都是做什么的,这样才能后续调试。
│ ├── llm
│ │ ├── api.py
│ │ ├── document_loader.py
│ │ ├── main.py
│ │ ├── qa_system.py
│ │ └── processed_files.json
README.md - 项目说明文档
document_loader.py - 文档加载和处理模块
main.py - 主程序入口
qa_system.py - 问答系统实现模块
api.py - api服务模块
processed_files.json - 已处理的文件列表
doc_file: 这里放知识库源文档
faiss_index: 向量保存路径
启动
执行主函数,生成文档向量
python main.py
执行main函数后,会将doc_file文档下的所有文件加载到faiss中,并且会在命令行中提供一个演示对话框,演示问答。
可以看到问答系统已经知道我们的意思并且答出相应的问题了。
启动RestfulAPI服务(必须faiss已经生成向量后)
cd src/llm
python api.py
启动后正常应该如下图所示
或
验证
python test/test_app.py
可以看到接口已经调用成功
使用方式二:调用API方式
阿里云提供了api形式调用API,
使用方式如下:
在文件QASystem的初始化方式用,设置use_api为True,
ApiKey要去https://dashscope.console.aliyun.com/overview 获取。
获取完后,加入到环境变量,或者在代码中明写出来。
这样就可以通过访问api的形式使用大模型了,文档索引还是保存本地,依然能够保证数据的安全。