RAGFlow是一个强大的生成式人工智能工具,能帮助用户高效地处理复杂任务并生成高质量的内容。然而,在进行本地部署安装时,用户可能会遇到一些问题,这些问题可能会影响 RAGFlow 的正常运行和使用体验。
本篇文章记录一下经常会碰到的报错信息和解决方案
一、RAGflow启动之后,报错:WARNING:root:RedisDB.queue_info rag_flow_svr_queue got exception: no such key
当启动 RAGflow 后出现“WARNING:root:RedisDB.queue_info rag_flow_svr_queue got exception: no such key”这个报错,表明系统在 Redis 数据库中找不到名为 rag_flow_svr_queue
的键
1. 查找Redis容器名称或ID
首先,你需要找到运行Redis的Docker容器的名称或ID。可以使用以下命令:
docker ps
这将列出所有正在运行的容器。找到Redis容器的名称或ID,例如redis-container或abc12345。
2. 进入Redis容器
使用docker exec命令进入Redis容器的命令行界面:
docker exec -it redis-container bash
将redis-container替换为你的Redis容器名称或ID。
3. 操作Redis
进入容器后,你可以使用Redis的命令行工具redis-cli来操作Redis。例如,检查是否存在rag_flow_svr_queue键:
redis-cli -h redis -p 6379 -a ******** EXISTS rag_flow_svr_queue
替换********为实际的Redis密码。密码在.env文件写的有
4. 初始化队列
如果键不存在,可能需要初始化队列。例如,可以使用以下命令创建一个空队列:
redis-cli -h redis -p 6379 -a ******** RPUSH rag_flow_svr_queue ""
5. 退出容器
完成操作后,退出容器:
exit
二、 error: Microsoft Visual C++ 14.0 or greater is required. Get it with “Microsoft C++ Build Tools“
在使用终端中的pip命令安装datrie程序包时,遇到了报错信息。当出现“error: Microsoft Visual C++ 14.0 or greater is required. Get it with ‘Microsoft C++ Build Tools’”报错时,通常是因为系统缺少必要的C++编译器或构建工具。
要解决这个问题,最直接的方法是安装Microsoft C++ Build Tools。你可以访问Microsoft Visual Studio的下载页面,找到并下载“Microsoft C++ Build Tools”。安装过程中,建议选择“使用C++的桌面开发”工作负载,这样可以确保安装所需的编译器和其他工具。如果之前已经安装过Build Tools,可以通过点击“修改”按钮来添加或更改工作负载。
这里为了更精简,我们选择只安装Microsoft Visual C++ Build Tools:visualstudio.microsoft.com/ru/visual-c… Visual C++ Build Tools下载页面,并根据页面指引下载并安装。
选择这两个进行安装,如果是Win10的话选择对应的Win10的包
三、ModuleNotFoundError: No module named 'infinity.common'; 'infinity' is not a package
出现“ModuleNotFoundError: No module named 'infinity.common'; 'infinity' is not a package”这个报错,主要是因为 Python 解释器在当前环境中找不到名为 'infinity' 的模块。
这里找到一个issue:
提示报错:
Traceback (most recent call last):
File "/home/ragflow/ragflow/api/ragflow_server.py", line 33, in
from api import settings
File "/home/ragflow/ragflow/api/settings.py", line 20, in
import rag.utils.infinity_conn
File "/home/ragflow/ragflow/rag/utils/infinity_conn.py", line 24, in
from infinity.common import ConflictType, InfinityException, SortType
ModuleNotFoundError: No module named 'infinity.common'; 'infinity' is not a package
Traceback (most recent call last):
File "/home/ragflow/ragflow/rag/svr/task_executor.py", line 22, in
from graphrag.general.index import WithCommunity, WithResolution, Dealer
File "/home/ragflow/ragflow/graphrag/general/index.py", line 21, in
from api import settings
File "/home/ragflow/ragflow/api/settings.py", line 20, in
import rag.utils.infinity_conn
File "/home/ragflow/ragflow/rag/utils/infinity_conn.py", line 24, in
from infinity.common import ConflictType, InfinityException, SortType
ModuleNotFoundError: No module named 'infinity.common'; 'infinity' is not a package
按照教程安装pip install infinity-embedded-sdk==0.6.0.dev3后出现:
No matching distribution found for infinity-embedded-sdk==0.6.0.dev3
这个应该下载的是infinity-sdk
pip install infinity-sdk==0.6.0.dev3
四、ModuleNotFoundError: No module named 'tavily'
出现“ModuleNotFoundError: No module named 'tavily'”这个报错,主要是因为 Python 解释器在当前环境中找不到名为 'tavily' 的模块。
Tavily Search API 是专门为大型语言模型(LLM)和强化学习模型(RAG)设计的搜索引擎工具,旨在为 AI 应用提供实时、准确且有事实依据的搜索结果,高效地简化数据收集过程。
Tavily Search API 从底层设计就考虑了 LLM 和 RAG 应用的需求,能够提供实时、准确且无偏见的信息,帮助 AI 应用做出更好的决策,它不仅仅是一个搜索引擎,还能自动处理搜索、抓取、过滤和提取相关信息的整个流程,通过单次 API 调用即可完成。
Tavily Search API通过智能过滤和排名系统,Tavily 能够提供高度相关的搜索结果,减少不相关信息的干扰,其大大减少了开发者在数据收集和处理上的时间。开发者可以将更多精力放在构建核心应用功能上,而不是处理繁琐的数据准备工作。
pip install tavily-python
安装完可以测试一下:
from tavily import TavilyClient
import pprint
# 初始化 TavilyClient
tavily_client = TavilyClient(api_key="tvly-**********9") # 这里你需要去注册账号,申请api_key, 注册地址:https://tavily.com/
# 执行搜索查询
response = tavily_client.search("地震的形成原因")
# 打印搜索结果
pprint.pprint(response)