Agent平台-RAGFlow(2)-源码安装

1. 安装第三方组件:

k3s中安装es, mysql, redis, minio ,如果不想用k3s安装可以采用docker方式

2. 下载源码

bash 复制代码
git clone https://github.com/infiniflow/ragflow.git
cd ragflow/

3. 安装 Python 依赖

安装 uv

复制代码
pipx install uv

安装 Python 依赖

复制代码
uv sync --python 3.10 --all-extras # install RAGFlow dependent python modules

系统将创建一个名为 .venv 的虚拟环境,并将所有 Python 依赖项安装到该新环境中。

4. 修改配置

修改 conf/service_conf.yaml 中第三方组件的配置地址,如mysql端口等。

5. 启动 RAGFlow 后端服务

注释掉 docker/entrypoint.sh 文件中的 nginx 行。

复制代码
# /usr/sbin/nginx

激活 Python 虚拟环境

复制代码
source .venv/bin/activate
export PYTHONPATH=$(pwd)

设置 HF_ENDPOINT 环境变量以使用镜像站点:

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

检查 conf/service_conf.yaml 中的配置,确保所有主机和端口都已正确设置。

运行 entrypoint.sh 脚本启动后端任务执行器:

复制代码
JEMALLOC_PATH=$(pkg-config --variable=libdir jemalloc)/libjemalloc.so;
LD_PRELOAD=$JEMALLOC_PATH python rag/svr/task_executor.py 1;

启动后端服务API:

复制代码
python api/ragflow_server.py;

启动 RAGFlow 前端服务:

复制代码
# 进入 web 目录并安装前端依赖项:
cd web
npm install

在 .umirc.ts 文件中,将 proxy.target 更新为 http://127.0.0.1:9380

复制代码
vim .umirc.ts

启动 RAGFlow 前端服务

复制代码
npm run dev 

VSCODE单步调试

  1. 找到图片中位置

  2. 编辑launch.json文件

  3. 根据手动启动流程添加配置
    下面是api_server的配置

    {
    "name": "Python Debugger:api_server",
    "type": "debugpy",
    "request": "launch",
    "program": "{workspaceFolder}/api/ragflow_server.py", "console": "integratedTerminal", "justMyCode": true, "env": { // 激活虚拟环境的环境变量(等效于 source .venv/bin/activate) "PATH": "{workspaceFolder}/.venv/bin:{env:PATH}", "VIRTUAL_ENV": "{workspaceFolder}/.venv",
    // PYTHONPATH:当前工作目录(pwd 等效)
    "PYTHONPATH": "{workspaceFolder}", // Hugging Face 镜像源 "HF_ENDPOINT": "https://hf-mirror.com", // JEMALLOC 路径(通过 pkg-config 动态获取) // "JEMALLOC_PATH": "{command:shellCommand.execute('pkg-config --variable=libdir jemalloc')}/libjemalloc.so"
    "LD_PRELOAD": "${env:/libjemalloc.so}"
    },
    }

报错处理

1. 知识库解析报错

错误一

exception 复制代码
no_shard_available_action_exception 

解决方案

es未分配分片导致。

执行 kubectl edit 编辑部署配置:

复制代码
kubectl edit statefulset elasticsearch-master -n default

在打开的 YAML 配置中,找到 spec.template.spec.containers.env 部分,添加 / 修改 node.roles 环境变量:

yaml 复制代码
spec:
  template:
    spec:
      containers:
      - name: elasticsearch  # 容器名称(通常是这个)
        env:
        # 找到或添加以下环境变量,设置角色为 master + data
        - name: node.roles
          value: master,data # 关键:同时启用主节点和数据节点角色
        # 其他环境变量(如 discovery.seed_hosts、cluster.initial_master_nodes 等)保持不变

错误二

pptx解析失败:

  1. ICU报错:
    Process terminated. Couldn't find a valid ICU package installed on the system. Set the configuration flag System.Globalization.Invariant to true if you want to run with no globalization support.

解决方案:export DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=true

2.libssl报错:

No usable version of libssl was found
解决方案 :wget http://security.ubuntu.com/ubuntu/pool/main/o/openssl/libssl1.1_1.1.1f-1ubuntu2.24_amd64.deb

sudo dpkg -i libssl1.1_1.1.1f-1ubuntu2.24_amd64.deb

sudo apt-get install -y libgdiplus libc6-dev

相关推荐
m0_7349497920 小时前
MySQL如何配置定时清理过期备份文件_find命令与保留周期策略
jvm·数据库·python
m0_5145205721 小时前
MySQL索引优化后性能没提升_通过EXPLAIN查看索引命中率
jvm·数据库·python
H Journey21 小时前
Python 国内pip install 安装缓慢
python·pip·install 加速
码以致用1 天前
DeerFlow Memory架构
人工智能·ai·架构·agent
数数科技的数据干货1 天前
ThinkingAI携手华为云,共建企业级AI Agent平台Agentic Engine
人工智能·ai·华为云·agent
Polar__Star1 天前
如何在 AWS Lambda 中正确使用临时凭证生成 S3 预签名 URL
jvm·数据库·python
fanly111 天前
surging 的Agent插件研发全流程:从定义到落地
微服务·ai·surging
不停喝水1 天前
【AI+Cursor】 告别切图仔,拥抱Vibe Coding: AI + Cursor 开启多模态全栈新纪元 (1)
前端·人工智能·后端·ai·ai编程·cursor
m0_743623921 天前
React 自定义 Hook 的命名规范与调用规则详解
jvm·数据库·python
FreakStudio1 天前
无硬件学LVGL—定时器篇:基于Web模拟器+MicroPython速通GUI开发
python·单片机·嵌入式·大学生·面向对象·并行计算·电子diy·电子计算机