【NLP实践】三、LLM搭建中文知识库:提供RestfulAPI服务

目录

前言

使用场景:因为在公司中,甲方都是同公司的其他部门,或者是大领导单线提出,在需求管理、型号配置、功能配置等等数据都非常多、杂,难以维护。我们无法要求甲方/领导提供完整的零散需求的需求文档,只能由项目经理或者开发来共同维护。这些数据只能以内网知识库的形式提供给适配人员或者相关人员去查询。

使用模型:

1、编码器:moka-ai/m3e-large

2、向量数据库:FAISS

3、LLM:Qwen/Qwen2-1.5B(本机使用,如果GPU服务器,那么你可以选个性能高的,改个名就行)

如果有问题提issue

准备工作

请确保你已经安装并配置好了conda

下载项目

shell 复制代码
git clone https://github.com/zpskt/MultiModelNLP.git
cd MultiModelNLP

创建conda环境

bash 复制代码
conda create -n llm-faiss --override-channels -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/ python=3.9

安装依赖

shell 复制代码
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

bash 复制代码
export HF_ENDPOINT=https://hf-mirror.com

你也可以添加到bash中

bash 复制代码
vim ~/.zshrc  # linux为 vim ~/.bashrc

使用

结构目录

你需要了解每个文件和文件夹都是做什么的,这样才能后续调试。

shell 复制代码
│   ├── 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: 向量保存路径

启动

执行主函数,生成文档向量

bash 复制代码
python main.py

执行main函数后,会将doc_file文档下的所有文件加载到faiss中,并且会在命令行中提供一个演示对话框,演示问答。

可以看到问答系统已经知道我们的意思并且答出相应的问题了。

启动RestfulAPI服务(必须faiss已经生成向量后)

shell 复制代码
cd src/llm
python api.py

启动后正常应该如下图所示


验证

bash 复制代码
python test/test_app.py

可以看到接口已经调用成功

使用方式二:调用API方式

阿里云提供了api形式调用API,

使用方式如下:

在文件QASystem 的初始化方式用,设置use_api为True,

ApiKey要去https://dashscope.console.aliyun.com/overview 获取。

获取完后,加入到环境变量,或者在代码中明写出来。

这样就可以通过访问api的形式使用大模型了,文档索引还是保存本地,依然能够保证数据的安全。

相关推荐
aneasystone本尊13 小时前
重温 Java 21 之虚拟线程
人工智能
geneculture13 小时前
官学商大跨界 · 产学研大综合:融智学新范式应用体系
大数据·人工智能·物联网·数据挖掘·哲学与科学统一性·信息融智学
这张生成的图像能检测吗13 小时前
(综述)基于深度学习的制造业表面缺陷检测图像合成方法综述
人工智能·计算机视觉·图像生成·工业检测·计算机图像学
草莓熊Lotso13 小时前
C++ 继承特殊场景解析:友元、静态成员与菱形继承的底层逻辑
服务器·开发语言·c++·人工智能·经验分享·笔记·1024程序员节
安如衫13 小时前
【学习笔记更新中】Deeplearning.AI 大语言模型后训练:微调与强化学习导论
人工智能·llm·sft·后训练·deepseek
IT_陈寒14 小时前
5个Python 3.12新特性让你的代码效率提升50%,第3个太实用了!
前端·人工智能·后端
love is sour14 小时前
理解全连接层:深度学习中的基础构建块
人工智能·深度学习
周杰伦_Jay14 小时前
【Python后端API开发对比】FastAPI、主流框架Flask、Django REST Framework(DRF)及高性能框架Tornado
数据结构·人工智能·python·django·flask·fastapi·tornado
chenchihwen14 小时前
AI代码开发宝库系列:PDF文档解析MinerU
人工智能·python·pdf·dashscope
人工智能训练14 小时前
Ubuntu系统中Docker的常用命令总结
linux·运维·人工智能·ubuntu·docker·ai