Windows上,10分钟构建一个本地知识库
这篇文章是我约新书《RAG应用实战》的一个样章,基于阿里云代码构建的一个本地RAG服务。
本地模型看代码注释,需要替换几行代码。
阅读本章时,已默认安装你的个人电脑上安装了Python 3.6-3.12中的一个版本、以及PyCharm和conda。以及按照第三章示例,已经在阿里云创建了大模型的API-key。
(1)现在让我们下载阿里云百炼平台提供的一个RAG运行包。地址如下:
https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20250414/odwvrb/local_rag.zip
下载之后解压,使用Pycharm打开此文件夹,如图4-1所示。

图4-1 创建local_rag项目
(2)然后选择“File>>Settings”,打开Interpreter选项,创建一个基于conda的虚拟空间local_rag,如图4-2所示。

图4-2 设置local_rag虚拟空间
(3)打开conda的promot(如图4-3所示),切换Python的当前环境为local_rag。

图4-3 打开conda的promot
(4)打开conda的promot后,输入命令conda env list,遍历当前的虚拟空间(如图4-4所示),*号表示当前使用的虚拟空间,输入命令conda activate local_rag,切换Python的当前环境为local_rag。

图4-4 遍历
(5)安装依赖包,执行命令,如图4-5所示。命令如下:
C:\Users\Administrator>pip install -r C:\PycharmProjects\local_rag\requirements.txt
路径 C:\PycharmProjects\local_rag\ 需要换成自己的代码目录。requirements.txt文件中存放了运行local_rag项目所使用的依赖包,内容如下:
gradio==4.32.0
faiss-cpu==1.8.0.post1
dashscope==1.20.4
openai==1.55.3
httpx==0.27.0
llama-index-vector-stores-faiss==0.1.2
llama-index-embeddings-dashscope==0.1.4
llama-index-readers-file==0.1.33
matplotlib==3.9.3
docx2txt==0.8
openpyxl==3.1.5
llama-index-core==0.10.67
uvicorn==0.30.6
fastapi==0.112.0
llama-index-postprocessor-dashscope-rerank-custom==0.1.0
simplejson==3.19.3
pydantic==2.10.6
安装成功提示如下:
Successful1y insta11ed a1tair-5.5.0 dashscope-1.20.4 docx2txt-0.8 faiss-cpu-1.8.0.post1 fastapi-0.112.0 gradio-4.32.0 ……省略
图4-5 安装依赖
(6)设置阿里云百炼平台的API-KEY,如图4-6所示,命令如下:
setx DASHSCOPE_API_KEY sk-d179938b99184627a9a4e8618fc7224a

图4-6 设置API-KEY
此key在代码文件chat.py中111行,如图4-7所示。

图4-7 使用API-KEY
查看API-KEY设置是否成功,如图4-8所示,命令如下:
echo %DASHSCOPE_API_KEY%

图4-8 查看API-KEY
(7)东风具备,现在让我们运行下main.py,右键点击main.py,选择Run’main’,如图4-9所示。

图4-9 运行主类
(8)查看运行时提示,需要升级gradio ,如图4-10。

图4-10 运行主类
这里IDE终端提示当前使用的 gradio 版本为 4.32.0,而最新版本为 4.44.1,建议升级到最新版本。
虽然提示不是错误,但是不升级没法运行,所以还是升级下。
(9)打开cmd,使用uvicorn运行main.py,先查看uvicorn版本,如图4-11所示,命令如下:
pip show uvicorn

图4-11 运行主类
(10)版本是0.30.6,没啥问题,切换到工程目录,运行打开LOCAL_RAG主页,如图4-12所示,命令如下:
uvicorn main:app --port 7866

图4-12 启动local_rag服务
(11)为了简化每次打开cmd输入命令,我们打开local_rag目录,新建一个run.bat批处理文件,将运行命令保存到bat文件中,如图4-13所示。

图4-13 启动local_rag服务
(12)打开浏览器,推荐edge、chrome浏览器,输入地址http://127.0.0.1:7866/,打开本地RAG主页,如图4-14所示。

图4-14 local_rag主页
注意:我这里用的Python版本是3.12。如果打开页面报错DLL load failed while importing _cext,额外运行命令:pip install msvc-runtime ,之后后再运行应用。
Windows上,10分钟构建一个本地知识库的更多相关文章
- 从零开始,在windows上用nodejs搭建一个静态文件服务器
从零开始,在windows上用nodejs搭建一个静态文件服务器 首先安装nodejs: 新建一个node文件夹 下载node.exe到该文件夹 下载npm然后解压到该文件夹 现在node文件夹是这样 ...
- 10 分钟实现一个自己的server监控器
需求 近期须要给自己的server加入监控器.目的是监控server的内存.CPU.磁盘占用率,资源占用率过高的话能给自己发个提醒.当前主流的平台通常会提供邮件.短息.甚至会提供微信提醒,只是这类提醒 ...
- CBrother脚本10分钟写一个拯救“小霸王服务器”的程序
CBrother脚本语言10分钟写一个拯救“小霸王服务器”的程序 到了一家新公司,接手了一坨c++服务器代码,到处内存泄漏,这服务器没有数据库,挂了后重启一下就好了,公司就这么凑活着用了几年了,定时重 ...
- 10分钟搭建一个小型网页(python django)(hello world!)
10分钟搭建一个小型网页(python django)(hello world!) 1.安装django pip install django 安装成功后,在Scripts目录下存在django-ad ...
- Django从Models 10分钟定制一个Admin后台
目录 Django从Models 10分钟建立一套RestfulApi Django从Models 10分钟定制一个Admin后台 简介 Django自带一个Admin后台, 支持用户创建,权限配置和 ...
- python scrapy 入门,10分钟完成一个爬虫
在TensorFlow热起来之前,很多人学习python的原因是因为想写爬虫.的确,有着丰富第三方库的python很适合干这种工作. Scrapy是一个易学易用的爬虫框架,尽管因为互联网多变的复杂性仍 ...
- Java工作流引擎结合可视化表单开发,10分钟完成一个业务流程发布
回忆以前工作流引擎的应用,感觉历历在目啊!当初公司接了一个项目关于政府单位公文流转的管理系统,一开始客户跟我画了十多张业务流程图.话说这十多张业务流程图,涉及的业务范围还蛮多,像用审批授权,开通流程, ...
- 10分钟写一个markdown编辑器
marked.js Marked是一个Markdown解析引擎. vue.js Vue.js(读音 /vjuː/, 类似于 view) 是一套构建用户界面的 渐进式框架.与其他重量级框架不同的是,Vu ...
- 【URLOS应用开发基础】10分钟制作一个nginx静态网站环境应用
URLOS开发者功能已上线有一段时间了,目前通过部分开发者的使用体验来看,不得不说URLOS在服务器软件开发效率方面确实有着得天独厚的优势,凭借docker容器技术与其良好的应用生态环境,URLOS必 ...
- 10分钟完成一个最最简单的BLE蓝牙接收数据的DEMO
这两天在研究蓝牙,网上有关蓝牙的内容非常有限,Github上的蓝牙框架也很少很复杂,为此我特地写了一个最最简单的DEMO,实现BLE蓝牙接收数据的问题, 不需要什么特定的UUID, 不需要什么断开重连 ...
随机推荐
- WEB系统安全之开源软件风险使用评估
本文分享自天翼云开发者社区<WEB系统安全之开源软件风险使用评估>,作者:Coding 中国信息通信研究院(China Academy of Information and Communi ...
- [记录点滴]Ionic编译过程的研究
[记录点滴]Ionic编译过程的研究 0x00 摘要 之前研究Ionic编译过程的笔记,发出来做个记录.当时是因为有些图片没有拷贝到应用中,所以需要调试编译过程. 0x01 入口 编译的入口在plat ...
- CTFHub-RCE漏洞wp
引言 题目共有如下类型 什么是RCE漏洞 RCE漏洞,全称是Remote Code Execution漏洞,翻译成中文就是远程代码执行漏洞.顾名思义,这是一种安全漏洞,允许攻击者在受害者的系统上远程执 ...
- log4net 配置数据库连接
http://logging.apache.org/log4net/release/config-examples.html MS SQL Server The database table defi ...
- JS实现隐藏手机号码中间4位数
代码COPY 3. 使用正则 function geTel(tel){ var reg = /^(\d{3})\d{4}(\d{4})$/; return tel.replace(reg, " ...
- Android设备基础信息获取 源码修改方式 APK开发
APK 获取设备信息 头文件 import java.io.BufferedReader; import java.io.File; import java.io.FileFilter; import ...
- Processing多窗口程序范例(三)
再来一例~另一种叠加方式呈现...看图: 程序 主程序: package syf.demo.multiwindow3; import processing.core.PApplet; import p ...
- ppt 字少怎么办
1.加图标 2.加色块 3.加图片 最终效果
- NumPy学习8
今天学习了NumPy统计函数 16,NumPy统计函数 numpy_test8.py : import numpy as np ''' 16,NumPy统计函数 NumPy 提供了许多统计功能的函数, ...
- cnpack导致view快捷键失灵。
学习d10.3.出现怪问题: 卸载cnpack出现: 这下要用快捷键了.那可不烦透了. 如此就ok了. 鸡蛋好吃,还要知道母鸡如何生蛋的?