You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用KnowledgeGraphIndex导入多CSV至知识图谱时遇AttributeError问题求助

问题解决:AttributeError: 'Document' object has no attribute 'get_doc_id'

问题原因

KnowledgeGraphIndex要求每个输入的Document对象具备唯一标识的doc_id,但CharacterTextSplitter.split_documents()生成的文档默认不带该属性,导致索引创建时触发错误。

解决方案

方案1:手动为分割后的文档分配唯一ID

遍历所有分割后的文档,给每个文档添加doc_id属性:

from langchain.document_loaders import CSVLoader
from langchain.text_splitter import CharacterTextSplitter
import uuid

# 加载CSV文件
csv_loader = CSVLoader("/content/Train-Set.csv")
data = csv_loader.load()

# 分割文档
splitter = CharacterTextSplitter(separator="\n", chunk_size=500, chunk_overlap=0, length_function=len)
documents = splitter.split_documents(data)

# 为每个文档添加唯一doc_id
for doc in documents:
    doc.doc_id = str(uuid.uuid4())

方案2:用新版LangChain的Document类指定ID(v0.1+)

如果使用LangChain 0.1及以上版本,可重新封装文档时直接指定id参数:

from langchain_core.documents import Document
import uuid

# 分割文档(步骤同上)
documents = splitter.split_documents(data)

# 重新封装带ID的文档
documents_with_ids = []
for doc in documents:
    new_doc = Document(
        page_content=doc.page_content,
        metadata=doc.metadata,
        id=str(uuid.uuid4())
    )
    documents_with_ids.append(new_doc)

# 使用带ID的文档创建索引
index = KnowledgeGraphIndex.from_documents(
    documents_with_ids,
    storage_context=storage_context,
    include_embeddings=True,
    max_triplets_per_chunk=2,
    embed_model=embed_model,
)

方案3:升级LangChain到稳定版

部分旧版本存在兼容性问题,尝试升级依赖:

pip install --upgrade langchain langchain-community langchain-core

多CSV文件加载扩展

如果要加载目录下所有CSV文件,可使用SimpleDirectoryLoader批量处理:

from langchain.document_loaders import SimpleDirectoryLoader

# 加载指定目录下所有CSV
loader = SimpleDirectoryLoader(
    path="/path/to/your/csv/folder",
    loader_cls=CSVLoader,
    loader_kwargs={"csv_args": {"delimiter": ","}}
)
data = loader.load()

# 后续分割、添加ID步骤同上

内容的提问来源于stack exchange,提问作者Nikhita Kanoj

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 13:17:12