Ikaros-521 / GraphRAG-Ollama-UI

GraphRAG-Ollama-UI + GraphRAG4OpenWebUI 融合版(有gradio webui配置生成RAG索引,有fastapi提供RAG API服务)
https://www.bilibili.com/video/BV1sW42197hT/
MIT License
84 stars 17 forks source link

查询报错 #12

Closed hbh112233abc closed 2 months ago

hbh112233abc commented 2 months ago

进行问答的时候,执行的命令如下

python -m graphrag.query --data ./ragtest/output/20240724-115221/artifacts --method local --community_level 2 --response_type Multiple Paragraphs 伊卡洛斯出生地在哪里

报错如下:

usage: __main__.py [-h] [--data DATA] [--root ROOT] --method {local,global} [--community_level COMMUNITY_LEVEL] [--response_type RESPONSE_TYPE] query
__main__.py: error: unrecognized arguments: 伊卡洛斯出生地在哪里

--response_type Multiple Paragraphs 应该是被命令行分词了,改为 --response_type "Multiple Paragraphs" 修改后的命令行

python -m graphrag.query --data ./ragtest/output/20240724-115221/artifacts --method local --community_level 2 --response_type "Multiple Paragraphs" "伊卡洛斯出生地在哪里"

执行又有新的错误

INFO: Reading settings from environment variables
creating llm client with model: qwen2:latest
creating embedding llm client with model: nomic-embed-text:latest
ERROR:root:Error getting embeddings from nomic-embed-text:latest: 'NoneType' object has no attribute 'rstrip'

然后就卡住了,调试代码发现卡在graphrag/query/structured_search/local_search/search.py 82行

           response = await self.llm.agenerate(
                messages=search_messages,
                streaming=True,
                callbacks=self.callbacks,
                **self.llm_params,
            )
hbh112233abc commented 2 months ago

继续调试代码,发现--root 默认是根目录,还是得设置一下./ragtest,不然配置会有问题 命令行改进后

python -m graphrag.query --root ./ragtest --data ./ragtest/output/20240724-115221/artifacts --method local --community_level 2 --response_type "Multiple Paragraphs" "伊卡洛斯出生地在哪里"

然后发现graphrag源码中graphrag/query/factories.pyget_text_embedder方法设置api_base有问题啊,取值config.llm.api_base 这个值是http://127.0.0.1:11434/v1 正确的值应该是llm_config.api_basehttp://127.0.0.1:11434/api,因为这个配置错误,embdding请求返回404错误

改为正确的llm_config.api_base后,请求没问题了,不过第一次请求按openai的模式请求,embdding是空的,幸好有兜底措施,使用ollama再次请求可以得到embdding了,出来结果了,不过结果好像不是rag文本内容的

SUCCESS: Local Search Response: 关于伊卡洛斯(Icarus)的出生地,信息并不明确。在不同的故事和文化中,伊卡洛斯通常被描述为一个希腊神话中的角色,他是由代达罗斯(Daedalus)建造翅膀并试图逃离克里特岛(Crete)。因此,如果将伊卡洛斯视为一个虚构人物,他的出生地可能与这个故事的背景紧密相关。

在希腊神话中:
- **克里特岛**:是伊卡洛斯和他父亲代达罗斯被囚禁的地方。他们试图通过飞行逃离该岛。
- **雅典**:在某些版本的故事中,代达罗斯因为制造了迷宫而受到国王的惩罚,并被迫与伊卡洛斯一起被关押在克里特岛上。

如果伊卡洛斯是一个特定作品或现代虚构角色的一部分,则其出生地可能根据不同的创作背景和设定有所不同。例如,在动画《Re:从零开始的异世界生活》中,伊卡洛斯是主角菜月昴在异世界遇到的一位少女,她来自一个名为“圣亚尔诺”的国家。

因此,对于伊卡洛斯的具体出生地,需要根据其所属的故事或作品来确定。如果指的是希腊神话中的伊卡洛斯,则他的故事背景主要与克里特岛和雅典相关联;如果是特定的现代虚构角色,则应参考该角色在作品中所处的世界设定。
Ikaros-521 commented 2 months ago

https://github.com/Ikaros-521/GraphRAG-Ollama-UI/pull/13

Ikaros-521 commented 2 months ago

继续调试代码,发现--root 默认是根目录,还是得设置一下./ragtest,不然配置会有问题 命令行改进后

python -m graphrag.query --root ./ragtest --data ./ragtest/output/20240724-115221/artifacts --method local --community_level 2 --response_type "Multiple Paragraphs" "伊卡洛斯出生地在哪里"

然后发现graphrag源码中graphrag/query/factories.pyget_text_embedder方法设置api_base有问题啊,取值config.llm.api_base 这个值是http://127.0.0.1:11434/v1 正确的值应该是llm_config.api_basehttp://127.0.0.1:11434/api,因为这个配置错误,embdding请求返回404错误

改为正确的llm_config.api_base后,请求没问题了,不过第一次请求按openai的模式请求,embdding是空的,幸好有兜底措施,使用ollama再次请求可以得到embdding了,出来结果了,不过结果好像不是rag文本内容的

SUCCESS: Local Search Response: 关于伊卡洛斯(Icarus)的出生地,信息并不明确。在不同的故事和文化中,伊卡洛斯通常被描述为一个希腊神话中的角色,他是由代达罗斯(Daedalus)建造翅膀并试图逃离克里特岛(Crete)。因此,如果将伊卡洛斯视为一个虚构人物,他的出生地可能与这个故事的背景紧密相关。

在希腊神话中:
- **克里特岛**:是伊卡洛斯和他父亲代达罗斯被囚禁的地方。他们试图通过飞行逃离该岛。
- **雅典**:在某些版本的故事中,代达罗斯因为制造了迷宫而受到国王的惩罚,并被迫与伊卡洛斯一起被关押在克里特岛上。

如果伊卡洛斯是一个特定作品或现代虚构角色的一部分,则其出生地可能根据不同的创作背景和设定有所不同。例如,在动画《Re:从零开始的异世界生活》中,伊卡洛斯是主角菜月昴在异世界遇到的一位少女,她来自一个名为“圣亚尔诺”的国家。

因此,对于伊卡洛斯的具体出生地,需要根据其所属的故事或作品来确定。如果指的是希腊神话中的伊卡洛斯,则他的故事背景主要与克里特岛和雅典相关联;如果是特定的现代虚构角色,则应参考该角色在作品中所处的世界设定。

那就怪了,我之前测试的时候embedding能正常请求,但就源码来看 确实这个api地址有问题,