这篇文章是我约新书《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分钟构建一个本地知识库的更多相关文章

  1. 从零开始,在windows上用nodejs搭建一个静态文件服务器

    从零开始,在windows上用nodejs搭建一个静态文件服务器 首先安装nodejs: 新建一个node文件夹 下载node.exe到该文件夹 下载npm然后解压到该文件夹 现在node文件夹是这样 ...

  2. 10 分钟实现一个自己的server监控器

    需求 近期须要给自己的server加入监控器.目的是监控server的内存.CPU.磁盘占用率,资源占用率过高的话能给自己发个提醒.当前主流的平台通常会提供邮件.短息.甚至会提供微信提醒,只是这类提醒 ...

  3. CBrother脚本10分钟写一个拯救“小霸王服务器”的程序

    CBrother脚本语言10分钟写一个拯救“小霸王服务器”的程序 到了一家新公司,接手了一坨c++服务器代码,到处内存泄漏,这服务器没有数据库,挂了后重启一下就好了,公司就这么凑活着用了几年了,定时重 ...

  4. 10分钟搭建一个小型网页(python django)(hello world!)

    10分钟搭建一个小型网页(python django)(hello world!) 1.安装django pip install django 安装成功后,在Scripts目录下存在django-ad ...

  5. Django从Models 10分钟定制一个Admin后台

    目录 Django从Models 10分钟建立一套RestfulApi Django从Models 10分钟定制一个Admin后台 简介 Django自带一个Admin后台, 支持用户创建,权限配置和 ...

  6. python scrapy 入门,10分钟完成一个爬虫

    在TensorFlow热起来之前,很多人学习python的原因是因为想写爬虫.的确,有着丰富第三方库的python很适合干这种工作. Scrapy是一个易学易用的爬虫框架,尽管因为互联网多变的复杂性仍 ...

  7. Java工作流引擎结合可视化表单开发,10分钟完成一个业务流程发布

    回忆以前工作流引擎的应用,感觉历历在目啊!当初公司接了一个项目关于政府单位公文流转的管理系统,一开始客户跟我画了十多张业务流程图.话说这十多张业务流程图,涉及的业务范围还蛮多,像用审批授权,开通流程, ...

  8. 10分钟写一个markdown编辑器

    marked.js Marked是一个Markdown解析引擎. vue.js Vue.js(读音 /vjuː/, 类似于 view) 是一套构建用户界面的 渐进式框架.与其他重量级框架不同的是,Vu ...

  9. 【URLOS应用开发基础】10分钟制作一个nginx静态网站环境应用

    URLOS开发者功能已上线有一段时间了,目前通过部分开发者的使用体验来看,不得不说URLOS在服务器软件开发效率方面确实有着得天独厚的优势,凭借docker容器技术与其良好的应用生态环境,URLOS必 ...

  10. 10分钟完成一个最最简单的BLE蓝牙接收数据的DEMO

    这两天在研究蓝牙,网上有关蓝牙的内容非常有限,Github上的蓝牙框架也很少很复杂,为此我特地写了一个最最简单的DEMO,实现BLE蓝牙接收数据的问题, 不需要什么特定的UUID, 不需要什么断开重连 ...

随机推荐

  1. DBeaver连接SqlServer报“The server selected protocol version TLS10 is not accepted by client prefere”的错误

    1.问题描述 DBeaver在连接SqlServer时,出现如下图所示的错误: The server selected protocol version TLS10 is not accepted b ...

  2. 自己如何在本地电脑从零搭建DeepSeek!手把手教学,快来看看! (建议收藏)

    在人工智能飞速发展的今天,大语言模型的应用越来越广泛.DeepSeek 作为近期爆火的一款大语言模型,受到了众多开发者的青睐. 今天这篇内容,就来聊聊,如何在本地自己的电脑上部署DeepSeek. 1 ...

  3. 使用 Git 命令和 Github 前须了解的知识

    本文不包括 Git 命令的介绍与使用,只分享 Git 的关键概念与 Github 项目的基本工作流程.作者相信先了解它们对后续的学习和工作大有裨益.(如有错误和建议请大家评论告知) 版本控制系统 VC ...

  4. EasyExcel合并行处理并优化

    业务场景 由于业务需要导出如下图中订单数据和订单项信息,而一个订单对应多个订单项,所以会涉及到自定义合并行 1.简单处理项目使用的EasyExcel,经查找发现Excel种有个AbstractMerg ...

  5. Vigenere密码无密钥求解

    0.前言 最近摸了很长时间的鱼,然后最近突然想搞一个Vigenere密码的自动求解,花了不到一天来实现了一下这个东西,不过受限于自己的水平,没有搞的太难.当然,代码部分不是全部都是从 0 开始的,关于 ...

  6. php stripslashes 函数的意思

    脑子不行了,很多东西看过就忘,比如这个stripslashes,知道是去除反斜杠,但为啥用它死活想不起来,搜索一下,把这几篇文章抄下来: 1.反斜杠是怎么回事 两个东西 ini_set(magic_q ...

  7. VSCode 下载总量超 900 万次的主题插件 Material Theme Free 被告知存在恶意代码

    2025年2月26日,VSCode 打开之后,Duang 突然一个弹窗出现,提示 Material Theme 被强制删除,VSCode 也回到了最初的长相,不说难看吧,只是不太习惯. 起因 英文原文 ...

  8. AI大模型的崛起:从技术突破到行业变革

    在人工智能技术飞速发展的今天,AI大模型作为新一代的智能工具,正逐步渗透到各行各业,引领着数字化转型的新浪潮.前瞻产业研究院发布的一份关于AI大模型场景应用的报告显示,2023年,我国AI大模型行业规 ...

  9. vscode运行js文件

    一. 首先你需要下载安装 nodejs 下载地址 二. 在 VS Code中有一个插件 code runner,安装后可以直接运行在 node 环境中,然后就可以在 vscode 中输出文件的结果. ...

  10. Redis会遇到的15个坑

    前言 如果你在使用 Redis 时,也遇到过以下这些「诡异」的场景,那很大概率是踩到「坑」了. 究竟是什么原因,导致的这些问题呢? 我把这些问题划分成了三大部分: 常见命令有哪些坑? 数据持久化有哪些 ...