RAGFlow建立知识库搜索引擎

知识库问答系统是大模型AI很重要的应用领域。Google也专门推出了Vertex Agent Builder的产品,可以快速建立大模型Documents Search的引擎。大家可以体验下这个产品的功能,可以问答的方式搜索知识库的内容。RAGFlow算是Google产品的开源替代。

RAGFlow建立知识库搜索引擎

RAGFlow的安装也相对简单,其实与Dify安装一致,只需要输入以下几行命令便可以完成安装。需要注意RAGFlow对系统的要求不低,至少16GB的RAM。而且整个镜像也很大,超过9G。

$ git clone https://github.com/infiniflow/ragflow.git
$ cd ragflow
$ git checkout -f v0.15.1
$ docker compose -f docker/docker-compose.yml up -d

当出现如下报错的时候,表示80端口被占用:

Error response from daemon: driver failed programming external connectivity on endpoint ragflow-server : Bind for 0.0.0.0:80 failed: port is already allocated

只需要把历史占用端口的Docker的Container关闭:

docker container ls
docker rm -f <container-id>
💡
测试发现Docker下载部分镜像需要开代理,否则会提示Timeout exceeded while a waiting headers. 或者通过修改./docker/.env的45行,把HF_ENDPOINT 设成相应的镜像站点,这样就不需要代理。

安装完成可通过以下命令确认RAGFlow是否正常运行:

$ docker logs -f ragflow-server

如果正常运行会显示以下信息:

     ____   ___    ______ ______ __
    / __ \ /   |  / ____// ____// /____  _      __
   / /_/ // /| | / / __ / /_   / // __ \| | /| / /
  / _, _// ___ |/ /_/ // __/  / // /_/ /| |/ |/ /
 /_/ |_|/_/  |_|\____//_/    /_/ \____/ |__/|__/

 * Running on all addresses (0.0.0.0)
 * Running on http://127.0.0.1:9380
 * Running on http://x.x.x.x:9380
 INFO:werkzeug:Press CTRL+C to quit

然后通过浏览器输入localhost便可以访问服务器。

配置LLM与Embedding模型

配置大模型首先需要添加大模型。一种是通过API的方式添加在线的LLM,一般会涉及费用;另一种是安装本地大模型,不会涉及费用。一种简单的方法是通过Ollama安装,先在官网下载系统支持的版本。安装好后需要运行Ollama软件,这样才能执行相应的命令。

Ollama官网的模型列表有介绍哪些模型是可以通过Ollama来下载与本地运行的。以下载llama3.1模型为例,只需要运行以下命令就可运行:

ollama run llama3.1
💡
模型列表有模型相应的信息及安装方法。将本地模型添加到RAGFlow之前必须先下载相应的模型。

Ollama常用的命令如下:

ollama list   #列出模型
ollama run    #运行模型
ollama rm     #删除模型
ollama show   #显示模型信息

下载好本地模型之后则需要把信息填入RAGFlow的后台。RAGFlow使用的是Docker,Ollama是在本地运行的管理模型的程序,所以base URL为:

http://host.docker.internal:11434