一、部署前准备

  1. 系统要求
    • 硬件:CPU≥4核,内存≥16GB,硬盘≥50GB(slim版本约10GB,完整版约18-20GB)
    • 软件:Docker≥24.0.0、Docker Compose≥v2.26.1、Git(若需克隆仓库)。
  2. 环境配置
    • Docker镜像加速:国内用户需在Docker配置中添加镜像源(如阿里云、网易云等),否则可能拉取失败。
    • 虚拟化支持:Windows需启用Hyper-V、容器等组件;Linux需检查vm.max_map_count≥262144(临时设置:sudo sysctl -w vm.max_map_count=262144)。

二、部署步骤

1. 下载RAGFlow
  • 克隆仓库
    git clone https://github.com/infiniflow/ragflow.git
    若Git速度慢,可直接从GitHub下载ZIP文件解压。
  • 克隆国内仓库
    https://gitcode.com/zhaochiyue/ragflow.git
2. 修改Docker配置
  • 选择镜像版本
    进入ragflow/docker目录,编辑.env文件,修改RAGFLOW_IMAGE变量:
    • slim版:无嵌入模型,适合资源有限(约10GB)。
    • 完整版:含嵌入模型,需设置为RAGFLOW_image=infiniflow/ragflow:v0.17.0(约18GB)。
  • 端口冲突处理:若默认80端口被占用,修改docker-compose.yml中的端口映射(如8080:80)。
3. 启动服务
  • 拉取镜像并启动
    cd ragflow/docker 
    
    docker compose -f docker-compose.yml up -d # 或使用docker-compose-CN.yml(部分版本)
    首次启动会自动拉取镜像,耗时较长(约15-30分钟)。
  • 验证服务状态

    docker logs -f ragflow-server

    若输出包含* Running on http://127.0.0.1:9380,则启动成功。
  • 存在问题

    可能出现ragflow-mysql error启动出错。可以等10分钟,再次运行docker compose up -d就正常了。


三、配置模型与知识库

1. 添加模型提供商
  • Ollama配置
    • 在RAGFlow界面点击“模型提供商”→“添加Ollama”,填写模型名称(如deepseek-r1)和基础URL(本机IP或host.docker.internal:11434)。
    • 确保Ollama已部署并运行ollama run deepseek-r1
  • Xinference配置
    若使用GPU加速模型,需启动Xinference容器并配置API地址。
2. 创建知识库
  1. 上传文件:支持Word、PDF、Excel等格式,需至少上传一个文件解析。
  2. 配置解析参数:选择分段标识符(如标题、章节)和切片方法(如按段落或固定长度)。

四、常见问题解决

  1. 镜像拉取失败
    • 检查Docker镜像源配置,或更换为华为云、阿里云镜像(如swr.cn-north-4.myhuaweicloud.com/infiniflow/ragflow)。
    • 使用docker images确认镜像完整性,若缺失手动拉取。
  2. 服务无法访问
    • 检查防火墙或安全组是否开放端口(默认80或9380)。
    • Windows用户尝试访问http://localhosthttp://host.docker.internal:9380
  3. 内存不足
    • 建议使用完整版时关闭其他占用内存的程序,或升级硬件配置。

五、参考资源

六、api调用

1、添加api_key

2、调用聊天接口
import http

var chat_id = "93b53a5820d511f0a8360242ac160006" //dialog_id
var BASE_URL = "http://192.168.1.1:80/"
var url = BASE_URL + String.format("api/v1/chats_openai/%s/chat/completions",chat_id)
var API_KEY = "ragflow-Q1N2E2OTk0MjBkYjExZjA4MzZkMDI0Mm" //需修改本地的api_key

var headers = {
    "Content-type": "application/json",
    "Authorization": "Bearer " + API_KEY
}
var params = {
    "model": "model",
    "messages": [{"role":"user","content":msg}],
    "stream": false
}
// return url
return http.connect(url)
    .header(headers)
    .body(params)
    .post()
    .getBody()  

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐