最近想改下ragflow的源码和研究下大模型。好好的整理下环境。
以前写过python,项目不大,也就几个项目,一般都用python自带的venv做环境管理,单一的python还好一些,我之前安装的是3.9(比较早了)。而有些项目需要3.10,有的需要3.11,有的需要3.12,要么升级,要么安装多套环境。有时候一不注意好几个项目就混合共用一个虚拟环境,然后就是各种版本冲突。
后来安装了anaconda,个人感觉还是有点重了,趁着这次跑微调以及ragflow源码的修改。使用minicoda重新整理了一遍。
我让chatgpt帮我对比了下优缺点。
| 特性 | venv + pip | conda |
|---|---|---|
| Python 版本管理 | ❌ 依赖系统 Python | ✅ 独立管理多个版本 |
| 非 Python 依赖 | ❌ 仅支持 Python 依赖 | ✅ 支持 C/C++、CUDA 等 |
| 依赖解析能力 | ⚠️ 可能冲突 | ✅ 更强的依赖管理 |
| 速度 | ✅ 轻量级 | ⚠️ 可能较慢(特别是 solver) |
| YAML 配置支持 | ❌ 不支持 | ✅ 支持environment.yml |
速度慢,在于解析查找,安装完以后都一样。
本文篇幅交行,我简单的列下本文大纲。
- pip 环境
- minconda3安装
- conda常用操作
- ragflow win10环境配置
- ragflow后端启动
- ragflow前端启动
- ragflow登录界面和图标修改
环境清理
pip推荐
全局设置
只要我们设置一次,以后就一直生效。选择一个设置即可。
# 阿里pip镜像 pip config set global.index-url https://mirrors.aliyun.com/pypi/simple # 清华pip镜像 pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple # 腾讯pip镜像 pip config set global.index-url http://mirrors.cloud.tencent.com/pypi/simple # 豆瓣pip镜像 pip config set global.index-url http://pypi.douban.com/simple/ # 网易pip镜像 pip config set global.index-url https://mirrors.163.com/pypi/simple/ pip config set global.index-url https://mirrors.aliyun.com/pypi/simple Writing to C:\Users\yxkong\AppData\Roaming\pip\pip.ini临时使用
不想设置全局,可以在安装的时候,临时设置一个。
pip install numpy -i https://pypi.tuna.tsinghua.edu.cn/simple/使用pip的时候在后面加上-i参数,指定pip源:
miniconda3安装
官方网址: https://docs.conda.io/projects/conda/en/stable/index.html
国内镜像 https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/
unbuntu 22 安装
在unbuntu中,下载以后,直接执行下面的命令即可。
sh Miniconda3-latest-Linux-x86_64.sh按照提示,回车->yes->数据安装目录(可选),不输入直接回车->yes
Welcome to Miniconda3 py312_25.1.1-2 In order to continue the installation process, please review the license agreement. Please, press ENTER to continue > >> ANACONDA TERMS OF SERVICE Do you accept the license terms? [yes|no] > >> yes Miniconda3 will now be installed into this location: /home/yxkong/miniconda3 - Press ENTER to confirm the location - Press CTRL-C to abort the installation - Or specify a different location below [/home/yxkong/miniconda3] >>> /opt/app/miniconda3 PREFIX=/opt/app/miniconda3 You can undo this by running `conda init --reverse $SHELL`? [yes|no] [no] >>> yes no change /opt/app/miniconda3/condabin/conda no change /opt/app/miniconda3/bin/conda no change /opt/app/miniconda3/bin/conda-env no change /opt/app/miniconda3/bin/activate no change /opt/app/miniconda3/bin/deactivate no change /opt/app/miniconda3/etc/profile.d/conda.sh no change /opt/app/miniconda3/etc/fish/conf.d/conda.fish no change /opt/app/miniconda3/shell/condabin/Conda.psm1 no change /opt/app/miniconda3/shell/condabin/conda-hook.ps1 no change /opt/app/miniconda3/lib/python3.12/site-packages/xontrib/conda.xsh no change /opt/app/miniconda3/etc/profile.d/conda.csh modified /home/yxkong/.bashrc ==> For changes to take effect, close and re-open your current shell. <== Thank you for installing Miniconda3!可以看到最后有一个/home/yxkong/.bashrc
验证下
(base) yxk@yxkong:~$ conda -V conda 25.1.1win10 安装
设置安装目录
- 将Miniconda3添加到环境变量里,官方不推荐,我推荐勾选
- 注册Miniconda3作为默认的python3.12,如果本地已经有python环境,不用勾选,没有勾选上
- 安装完清理
安装以后,我们可以在命令行中执行Get-Command python
PS C:\Users\yxkong> Get-Command python CommandType Name Version Source ----------- ---- ------- ------ Application python.exe 3.12.91... E:\ai\miniconda3\python.execonda常用操作
conda配置操作
conda安装以后,我们先设置一下,设置显示通道地址
# 设置显示通道地址 conda config --set show_channel_urls yes # 查看通道channels conda config --show channels channels: - https://repo.anaconda.com/pkgs/main - https://repo.anaconda.com/pkgs/r- 设置完以后在对应的登录用户目录下,会有一个
.condarc文件,不管是unbuntu还是win10, - 还有一个
.condarc,在程序的安装目录中, - 通过命令操作修改的是当前用户目录中的
.condarc文件 - 在操作的时候,是把这两个文件进行了合并。
其他配置操作
# 获取版本号 conda --version 或 conda -V # 检查更新当前conda conda update conda # 禁止conda自动更新 conda config --set auto_update_conda False # 禁止自动激活base环境,需要每次手动激活 conda config --set auto_activate_base false环境操作
常用操作
# 激活环境 conda activate ragflow # 退出当前环境 conda deactivate # 查看环境列表 conda env list # 查看当前存在哪些虚拟环境 conda env list 或 conda info -e # 删除指定环境 conda env remove -n 环境名称创建环境
# 创建一个ragflow 的环境,包括 python 3.11 pip conda create -n ragflow python=3.11 pip # 从现有的环境复制一个到新的环境 conda create --clone old_env -n new_env # 激活环境 conda activate ragflow包管理
# 查看指定环境的包列表, conda list package_name # 查询当前包环境 conda list # 安装包,可以通过=设置版本号 conda install package_name # 比如 conda install numpy=1.18.5 conda install -c channel_name package_name # 根据requirements.txt安装环境 conda install --file requirements.txt # 从当前激活的 conda 环境中导出包列表到 requirements.txt 文件 conda list --export > requirements.txt # 查询包 conda search package_name # 更新包 conda update package_name # 删除包 conda remove package_name镜像源设置
添加国内镜像
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/添加的这些链接是什么含义?接下来我们了解下。
镜像路径解释
清华大学的镜像站还是蛮全的,地址:https://mirrors.tuna.tsinghua.edu.cn/。 这里有很多好经常使用的软件。还有同步时间。
https://mirrors.tuna.tsinghua.edu.cn/anaconda/
| 目录/文件 | 含义 |
|---|---|
| archive/ | 存储 Anaconda 的历史存档文件,可能包括旧版本的安装包或其他相关文件。 |
| cloud/ | 存储与 Anaconda Cloud 相关的文件,可能包括从 Anaconda Cloud 同步的包或其他资源。 |
| miniconda/ | 存储 Miniconda 的安装文件和相关资源。Miniconda 是 Anaconda 的轻量级版本,只包含 conda、Python 和一些依赖项。 |
| pkgs/ | 存储 Anaconda 的软件包文件。这些文件是 conda 安装和管理包时使用的二进制文件。 |
| failed_packages.txt | 记录失败的包信息的文件,可能包含在同步或更新过程中出现问题的包的列表。 |
| 目录/文件 | 含义 |
|---|---|
| free/ | 存储 Anaconda 的免费软件包。 |
| main/ | 存储 Anaconda 的主要软件包,包括常用的数据科学和计算工具。 |
| mro/ | 存储与 Microsoft R Open 相关的软件包。 |
| msys2/ | 存储与 MSYS2 相关的软件包,MSYS2 是一个用于 Windows 的轻量级 Unix 环境。 |
| pro/ | 存储 Anaconda Pro 的软件包,Anaconda Pro 是 Anaconda 的商业版本。 |
| r/ | 存储与 R 语言相关的软件包。 |
| rss.xml | 提供该目录的 RSS 订阅文件,方便用户通过 RSS 阅读器获取目录更新信息。 |
通过上面的说明,我们可以看到每个目录的含义,添加额每个url是什么含义,就有了清晰的了解了。
常用镜像站
清华
北外
https://mirrors.bfsu.edu.cn/anaconda
最后重定向到了清华
中科大
https://mirrors.ustc.edu.cn/anaconda/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/main/ conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/free/ conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge/ conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/msys2/ conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/bioconda/ conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/menpo/ conda config --set show_channel_urls yes我设置的
channels: - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/ - https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/ - https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/win-64/ - https://mirrors.bfsu.edu.cn/anaconda/pkgs/free/ - https://mirrors.bfsu.edu.cn/anaconda/pkgs/main/ - https://mirrors.bfsu.edu.cn/anaconda/cloud/conda-forge/ - https://mirrors.ustc.edu.cn/anaconda/pkgs/free/ - https://mirrors.ustc.edu.cn/anaconda/pkgs/main/ - https://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge/ - https://mirrors.ustc.edu.cn/anaconda/cloud/bioconda/ - https://mirrors.ustc.edu.cn/anaconda/cloud/msys2/ - https://mirrors.ustc.edu.cn/anaconda/cloud/menpo/ show_channel_urls: true auto_update_conda: falseragflow后端环境配置
# 下载代码 git clone https://github.com/infiniflow/ragflow我使用的是0.17.2版本的代码
设置PyCharm环境依赖
点击pycharm 的设置。
- 找到
python interpreter点击2的位置,然后点击3添加本地的python解释器。
python interpreter 中文叫python解释器,可以理解为python环境。
- 点击
1选择conda环境 - 点击
2选择自己安装的miniconda地址中的condabin\conda.bat - 点击
3加载
- 点击
1使用已存在的环境(我之前创建的ragflow) - 选择
ragflow
可以看到已经内置了一些包。我们点击ok按钮。
依赖安装
一般我们从别的地方拷贝一个项目安装依赖。有以下几种方式。
- 有
requirements.txt直接用项目里提供的requirements.txt 使用pip install -r requirements.txt安装 - 有
setup.py在setup.py所在目录里,使用pip install -e .安装 - Poetry 项目有pyproject.toml文件,直接
poetry install - Pipenv 项目 有Pipfile文件,使用
pipenv install安装
而ragflow都不是,ragflow使用uv管理包。在项目里有个uv.lock文件。
UV(UltraFast Python Package Installer)是一个超快速的 Python 包管理工具,用于替代pip和virtualenv,它的核心特点是安装速度快,依赖解析高效,并且支持uv.lock作为锁定文件。
然而我折腾了一会,安装不上。(事后总结还是用uv省事,基本上包都覆盖住了。)
使用conda
不想折腾太多环境,使用conda。
我找官方的开发,让他给我导了一份requirements.txt文件一共275行。然后还是各种折腾了几个小时。启动时候各种缺包。
需要注意的是:
- 官网写着python 3.10,不行,得3.11,别问我为啥,折腾出来的
我把最后的requirements.txt放入网盘,有需要的大家自己获取。一共433个。
https://pan.quark.cn/s/54ac26aa4bdb
配置文件
在根目录中有一个conf/service_conf.yaml文件这里是依赖的环境配置。 里面的服务我们都可以自己独立部署。我是之前在本地用docker部署了一套ragflow,所以我就不再单独处理了。
需要注意的事:
如果你docker启动的不是base,需要修改ragflow的端口。 如果你没有修改过docker部署的端口,可以直接使用,如果修改了,需要对应的修改。
后端服务启动
根据官方的文档,直接执行docker/entrypoint.sh既可以启动,我打开一看,是linux环境。
刚开始想把它转成win的脚步,后来试了下,还是算了,最后找到了以下两个命令。
$ PY rag/svr/task_executor.py $ PY api/ragflow_server.py直接在ragflow的根目录里,执行。
# 根据自己的环境设置 set PYTHONPATH=E:\ai\code\ragflow # 启动异步任务的 python .\rag\svr\task_executor.py # 启动后端api服务的 python api/ragflow_server.py不容易,终于折腾好了
直接命令行启动。
你也可以通过
PyCharm启动,特别是断点调试。
又是一堆依赖安装,server也启动了。
最后看下环境的大小。
接近4个g了。
我打个包扔到盘里。大家根据自己的需要获取。 https://pan.quark.cn/s/54ac26aa4bdb
https://pan.baidu.com/s/1PF79x-gzWosN_ME5LtSRIw?pwd=q2tu
ragflow前端环境启动
前端服务启动
前端环境需要npm,或者pnpm,我之前一直有对应的环境,我就不折腾了。
首先进入web目录
# 进入ragflow的web目录 (ragflow) PS E:\ai\code\ragflow> cd .\web\首先修改.umirc.ts中的proxy。
比如我把后端的端口改成了9580
proxy: [ { context: ['/api', '/v1' ], target: 'http://127.0.0.1:9580/' , changeOrigin: true , ws: true , logger: console, // pathRewrite: { '^/v1' : '/v1' }, }, ],编译运行
# 安装前端依赖 (ragflow) PS E:\ai\code\ragflow\web> npm install # 启动项目 (ragflow) PS E:\ai\code\ragflow\web> npm run dev常用修改
登录页面背景替换
- 替换背景:ragflow/web/src/assets/svg/login-background.svg
- 去掉免费注册和图标:agflow/web/src/pages/login/right-panel.tsx 中 26~41删除
- 替换为客户的名称:agflow/web/src/locales/zh.ts 中57行的 title
logo修改
- agflow/web/src/conf.json 中的RAGFlow 是图标边上的名称
- agflow/web/public/logo.svg 左上角的logo
注意事项
关于依赖
如果大家自己折腾,建议用uv,直接导入官方提供的,缺有,但是不多。
不想用uv,使用conda,建议让kimi写个脚本,把uv.lock里的包都洗出来,洗成requirements.txt,然后启动的时候,添加几个就行了。
关于python版本
python必须3.11,3.10有些包安装不上,3.12有些包没有。
非固定版本的包安装
# 通用安装法,加双引号 pip install "ruamel-yaml>=0.18.6,<=0.19.0" # PowerShell 特有安装法,需要转义符号 pip install ruamel-yaml`>=0.18.6,`<=0.19.0win10 中powershell失效的问题解决
在powershell中,通过pip安装以后,通过conda list查看安装的包,总是找不到。
执行conda init powershell命令,会看到会将conda加入到powershell的环境里。
PS C:\Users\yxkong> conda init powershell no change E:\ai\miniconda3\Scripts\conda.exe no change E:\ai\miniconda3\Scripts\conda-env.exe no change E:\ai\miniconda3\Scripts\conda-script.py no change E:\ai\miniconda3\Scripts\conda-env-script.py no change E:\ai\miniconda3\condabin\conda.bat no change E:\ai\miniconda3\Library\bin\conda.bat no change E:\ai\miniconda3\condabin\_conda_activate.bat no change E:\ai\miniconda3\condabin\rename_tmp.bat no change E:\ai\miniconda3\condabin\conda_auto_activate.bat no change E:\ai\miniconda3\condabin\conda_hook.bat no change E:\ai\miniconda3\Scripts\activate.bat no change E:\ai\miniconda3\condabin\activate.bat no change E:\ai\miniconda3\condabin\deactivate.bat modified E:\ai\miniconda3\Scripts\activate modified E:\ai\miniconda3\Scripts\deactivate modified E:\ai\miniconda3\etc\profile.d\conda.sh modified E:\ai\miniconda3\etc\fish\conf.d\conda.fish no change E:\ai\miniconda3\shell\condabin\Conda.psm1 modified E:\ai\miniconda3\shell\condabin\conda-hook.ps1 no change E:\ai\miniconda3\Lib\site-packages\xontrib\conda.xsh modified E:\ai\miniconda3\etc\profile.d\conda.csh modified C:\Users\yxkong\Documents\PowerShell\profile.ps1 modified C:\Users\yxkong\Documents\WindowsPowerShell\profile.ps1No module named ‘api’
我用PYTHONPATH把ragflow设为了根目录,但是执行的时候,还是找不到api的模块。
(ragflow) PS E:\ai\code\ragflow> set PYTHONPATH=E:\ai\code\ragflow (ragflow) PS E:\ai\code\ragflow> python .\rag\svr\task_executor.py Traceback (most recent call last): File "E:\ai\code\ragflow\rag\svr\task_executor.py", line 22, in <module> from api.utils.log_utils import initRootLogger, get_project_base_directory ModuleNotFoundError: No module named 'api'不用环境的设置方法
# Windows set PYTHONPATH=E:\ai\code\ragflow # Linux/macOS export PYTHONPATH=/path/to/your/project/root # 需要注意的是,以上都是单个窗口的设置,可以全局设置 $ env:PYTHONPATH="E:\ai\code\ragflow"Resource punkt_tab not found.
LookupError: Resource punkt_tab not found. Please use the NLTK Downloader to obtain the resource:
Resource wordnet not found 执行以下命令
python -c "import nltk; nltk.download('punkt_tab')" python -c "import nltk; nltk.download('wordnet')"关于数据库
我没在代码里看到初始化数据库的地方。
因为我本地用docker启了一套环境,所有的数据库都已经有了。如果你全部自己搭建,就把mysql的数据库导出一份。
想入门 AI 大模型却找不到清晰方向?备考大厂 AI 岗还在四处搜集零散资料?别再浪费时间啦!2025 年AI 大模型全套学习资料已整理完毕,从学习路线到面试真题,从工具教程到行业报告,一站式覆盖你的所有需求,现在全部免费分享!
👇👇扫码免费领取全部内容👇👇
一、学习必备:100+本大模型电子书+26 份行业报告 + 600+ 套技术PPT,帮你看透 AI 趋势
想了解大模型的行业动态、商业落地案例?大模型电子书?这份资料帮你站在 “行业高度” 学 AI:
1. 100+本大模型方向电子书
2. 26 份行业研究报告:覆盖多领域实践与趋势
报告包含阿里、DeepSeek 等权威机构发布的核心内容,涵盖:
- 职业趋势:《AI + 职业趋势报告》《中国 AI 人才粮仓模型解析》;
- 商业落地:《生成式 AI 商业落地白皮书》《AI Agent 应用落地技术白皮书》;
- 领域细分:《AGI 在金融领域的应用报告》《AI GC 实践案例集》;
- 行业监测:《2024 年中国大模型季度监测报告》《2025 年中国技术市场发展趋势》。
3. 600+套技术大会 PPT:听行业大咖讲实战
PPT 整理自 2024-2025 年热门技术大会,包含百度、腾讯、字节等企业的一线实践:
- 安全方向:《端侧大模型的安全建设》《大模型驱动安全升级(腾讯代码安全实践)》;
- 产品与创新:《大模型产品如何创新与创收》《AI 时代的新范式:构建 AI 产品》;
- 多模态与 Agent:《Step-Video 开源模型(视频生成进展)》《Agentic RAG 的现在与未来》;
- 工程落地:《从原型到生产:AgentOps 加速字节 AI 应用落地》《智能代码助手 CodeFuse 的架构设计》。
二、求职必看:大厂 AI 岗面试 “弹药库”,300 + 真题 + 107 道面经直接抱走
想冲字节、腾讯、阿里、蔚来等大厂 AI 岗?这份面试资料帮你提前 “押题”,拒绝临场慌!
1. 107 道大厂面经:覆盖 Prompt、RAG、大模型应用工程师等热门岗位
面经整理自 2021-2025 年真实面试场景,包含 TPlink、字节、腾讯、蔚来、虾皮、中兴、科大讯飞、京东等企业的高频考题,每道题都附带思路解析:
2. 102 道 AI 大模型真题:直击大模型核心考点
针对大模型专属考题,从概念到实践全面覆盖,帮你理清底层逻辑:
3. 97 道 LLMs 真题:聚焦大型语言模型高频问题
专门拆解 LLMs 的核心痛点与解决方案,比如让很多人头疼的 “复读机问题”:
![]()
三、路线必明: AI 大模型学习路线图,1 张图理清核心内容
刚接触 AI 大模型,不知道该从哪学起?这份「AI大模型 学习路线图」直接帮你划重点,不用再盲目摸索!
路线图涵盖 5 大核心板块,从基础到进阶层层递进:一步步带你从入门到进阶,从理论到实战。
L1阶段:启航篇丨极速破界AI新时代
L1阶段:了解大模型的基础知识,以及大模型在各个行业的应用和分析,学习理解大模型的核心原理、关键技术以及大模型应用场景。
L2阶段:攻坚篇丨RAG开发实战工坊
L2阶段:AI大模型RAG应用开发工程,主要学习RAG检索增强生成:包括Naive RAG、Advanced-RAG以及RAG性能评估,还有GraphRAG在内的多个RAG热门项目的分析。
L3阶段:跃迁篇丨Agent智能体架构设计
L3阶段:大模型Agent应用架构进阶实现,主要学习LangChain、 LIamaIndex框架,也会学习到AutoGPT、 MetaGPT等多Agent系统,打造Agent智能体。
L4阶段:精进篇丨模型微调与私有化部署
L4阶段:大模型的微调和私有化部署,更加深入的探讨Transformer架构,学习大模型的微调技术,利用DeepSpeed、Lamam Factory等工具快速进行模型微调,并通过Ollama、vLLM等推理部署框架,实现模型的快速部署。
L5阶段:专题集丨特训篇 【录播课】
![]()
四、资料领取:全套内容免费抱走,学 AI 不用再找第二份
不管你是 0 基础想入门 AI 大模型,还是有基础想冲刺大厂、了解行业趋势,这份资料都能满足你!
现在只需按照提示操作,就能免费领取:
👇👇扫码免费领取全部内容👇👇
2025 年想抓住 AI 大模型的风口?别犹豫,这份免费资料就是你的 “起跑线”!