当前位置: 首页 > news >正文

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

目录

  • 前言
    • 准备工作
    • 使用
      • 结构目录
      • 启动
    • 验证
    • 使用方式二:调用API方式

前言

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

http://www.lryc.cn/news/601766.html

相关文章:

  • 《计算机组成原理与汇编语言程序设计》实验报告四 Debug及指令测试
  • 基于黑马教程——微服务架构解析(一)
  • C/C++核心知识点详解
  • lombok插件@NoArgsConstructor、@AllArgsConstructor、@RequiredArgsConstructor的区别
  • 金融科技中的跨境支付、Open API、数字产品服务开发、变革管理
  • 2025C卷 - 华为OD机试七日集训第1期 - 按算法分类,由易到难,循序渐进,玩转OD
  • SpringSecurity实战:核心配置技巧
  • 由于主库切换归档路径导致的 Oracle DG 无法同步问题的解决过程
  • Python堆栈实现:从基础到高并发系统的核心技术
  • 模拟实现python的sklearn库中的Bunch类以及 load_iris 功能
  • 20250727让飞凌OK3576-C开发板在Rockchip的原厂Android14下通过耳机播音
  • 两个函数的卷积
  • Node.js特训专栏-配置与环境部署:20.PM2进程守护与负载均衡
  • 以使命为帆,结业是重新出发的号角
  • 电科金仓 KingbaseES 深度解码:技术突破・行业实践・沙龙邀约 -- 融合数据库的变革之力
  • 从0开始学linux韦东山教程Linux驱动入门实验班(6)
  • c# everthing.exe 通信
  • Android基础(一) 运行HelloWorld
  • 【java】 IntelliJ IDEA高效编程设置指南
  • 大模型算法面试笔记——常用优化器SGD,Momentum,Adagrad,RMSProp,Adam
  • Java 代理机制详解:从静态代理到动态代理,彻底掌握代理模式的原理与实战
  • 雪花算法原理深度解析
  • 【0基础PS】PS工具详解--选择工具--快速选择工具
  • 【n8n教程笔记——工作流Workflow】文本课程(第一阶段)——5.4 计算预订订单数量和总金额 (Calculating booked orders)
  • 使用Python,OpenCV,K-Means聚类查找图像中最主要的颜色
  • Unity Catalog与Apache Iceberg如何重塑Data+AI时代的企业数据架构
  • 【LeetCode 热题 100】35. 搜索插入位置——二分查找(左闭右开)
  • 高格办公空间:以 “空间为基,服务为翼”,重塑办公场景生态
  • 【语义分割】记录2:yolo系列
  • libomxil-bellagio移植到OpenHarmony