llama_index [Bug]: RAPTOR由于重复的文档ID而失败,chromadb.errors.DuplicateIDError: 预期的ID应该是唯一的,但发现了重复项:17ab7f1d-***********

u59ebvdq  于 2个月前  发布在  其他
关注(0)|答案(8)|浏览(44)

根据提供的错误日志,问题出在chromadb.errors.DuplicateIDError: Expected IDs to be unique, found duplicates of: 17ab7f1d-b145-42c1-8dc3-8e2e29541823。这意味着在插入数据时,发现有重复的文档ID。

为了解决这个问题,你可以尝试以下方法:

  1. 确保在创建索引之前,没有重复的文档ID。你可以通过检查输入文件夹中的文件名来实现这一点。如果有重复的文件名,请删除或重命名其中一个以消除重复。

  2. 如果你确信输入文件夹中没有重复的文件名,那么可能是在处理文档时产生了重复的ID。在这种情况下,你需要检查生成文档ID的代码部分,确保为每个文档分配了唯一的ID。

  3. 如果上述方法都无法解决问题,你可以尝试使用不同的向量存储库,如faissAnnoy,看看是否仍然出现重复ID的问题。

unftdfkk

unftdfkk1#

Chroma不允许使用重复的id,因此需要处理这个问题才能使该过程正常工作。
尝试使用不同的矢量数据库

vbkedwbf

vbkedwbf2#

由于块可以属于多个簇,因此存在重复项。

lmvvr0a8

lmvvr0a83#

由于块可以属于多个簇,因此存在重复项。我们是否可以利用ChromaDB来实现这个用例?

pkmbmrz7

pkmbmrz74#

Chroma不允许使用重复的id,这需要处理才能使此过程正常工作。
尝试使用不同的矢量数据库
可以为这个用例推荐一个更好的矢量存储,它不会最终导致重复问题。

kg7wmglp

kg7wmglp5#

Qdrant是一个分布式向量存储系统,它可以处理大规模的向量数据。如果您想尝试使用Qdrant,您可以访问其官方网站以获取更多信息。

2fjabf4q

2fjabf4q6#

我认为我尝试过的每个矢量存储都能很好地处理这个问题😅,也许可以试试qdrant。

在查询索引(Qdrant向量数据库)时,我遇到了以下问题。
代码:

from qdrant_client import QdrantClient
from llama_index.vector_stores.qdrant import QdrantVectorStore
client = QdrantClient(path="./qdrant")
vector_store = QdrantVectorStore(client=client, collection_name="dump")
from llama_index.packs.raptor import RaptorRetriever
retriever = RaptorRetriever(
 [],
 embed_model=embed_model,
 llm=llm,
 vector_store=vector_store,
 similarity_top_k=2,
 mode="tree_traversal",
)
from llama_index.core.query_engine import RetrieverQueryEngine
from llama_index.core.response_synthesizers.type import ResponseMode
query_engine = RetrieverQueryEngine.from_args(
 retriever, llm=llm, response_mode=ResponseMode.REFINE
)
response = query_engine.query("Explain about catalogues")
response

错误日志:

Cell In[28], line 23
17 from llama_index.core.response_synthesizers.type import ResponseMode
19 query_engine = RetrieverQueryEngine.from_args(
20 retriever, llm=llm, response_mode=ResponseMode.REFINE
21 )
 ---> 23 response = query_engine.query("Explain about catalogues")
24 response
File c:\Users\017912\AppData\Local\anaconda3\envs\dell_chatbot\Lib\site-packages\llama_index\core\instrumentation\dispatcher.py:230, in Dispatcher.span.wrapper(func, instance, args, kwargs)
226 self.span_enter(id_=id_, bound_args=bound_args, instance=instance, parent_id=parent_id)
227 try:
 --> 230 result = func(*args, **kwargs)
231 except BaseException as e:
232 self.event(SpanDropEvent(span_id=id_, err_str=str(e)))
File c:\Users\017912\AppData\Local\anaconda3\envs\dell_chatbot\Lib\site-packages\llama_index\core\base\base_query_engine.py:52, in BaseQueryEngine.query(self, str_or_query_bundle)
50 if isinstance(str_or_query_bundle, str):
51 str_or_query_bundle = QueryBundle(str_or_query_bundle)
 ---> 52 query_result = self._query(str_or_query_bundle)
53 dispatcher.event(QueryEndEvent(query=str_or_query_bundle, response=query_result))
 ...
940 query_filter=query_filter,
941 )
943 return self.parse_to_query_result(response)
AttributeError: 'NoneType' object has no attribute 'search'
jslywgbw

jslywgbw7#

from qdrant_client import QdrantClient, AsyncQdrantClient

client = QdrantClient(path="./qdrant")
client = AsyncQdrantClient(path="./qdrant")
vector_store = QdrantVectorStore(client=client, aclient =aclient, collection_name="dump")
c3frrgcw

c3frrgcw8#

我正在遇到一个用例,需要将多个文档的完整内容(包括图片和表格)输入到LLM/生成式AI模型中。目标是在指定的架构中生成一个连贯的内容片段,例如课程或类似的输出。
这意味着LLM/生成式AI模型需要访问每个文档的所有细节才能从它们中生成内容。
是否有替代RAG或模型微调的方法?
使用RAG,我们受到上下文长度的限制,并且完全依赖于块。
你能推荐一种实现这个用例的方法吗?

相关问题