主题
LlamaParse 与框架无关:它通过 API 返回 Markdown、文本或 JSON,任何能处理文本的框架都能直接用。对 LangChain 而言,最短路径是用 llama-cloud SDK 跑一个 Parse 任务,再把每一页包成 LangChain 的 Document。
终端窗口
pip install langchain-core langchain-text-splitters "llama-cloud>=2.8"
export LLAMA_CLOUD_API_KEY=llx-...把文件解析成 LangChain 文档
先把美国财政部 FY2024 财报的执行摘要下载为 data/report.pdf:
终端窗口
curl -fL --create-dirs -o data/report.pdf https://fiscal.treasury.gov/system/files/files/reports-statements/financial-report/2024/executive-summary-2024.pdf在它上面跑一个 Parse 任务,并把每页包进一个 Document:
from langchain_core.documents import Document
from llama_cloud import LlamaCloud
client = LlamaCloud() # reads LLAMA_CLOUD_API_KEY
file = client.files.create(file="data/report.pdf", purpose="parse")
result = client.parsing.parse(
file_id=file.id, tier="agentic", version="latest", expand=["markdown"]
)
documents = [
Document(
page_content=p.markdown,
metadata={"source": "data/report.pdf", "page": p.page_number},
)
for p in result.markdown.pages
if p.success
]解析失败的页会以 success 为 False、且不带 Markdown 的形式返回,因此那段推导式会把它们跳过。此后这些文档就走 LangChain 的常规步骤,例如文本切分器与向量库:
from langchain_text_splitters import MarkdownHeaderTextSplitter
splitter = MarkdownHeaderTextSplitter(
headers_to_split_on=[("#", "h1"), ("##", "h2")]
)
chunks = [
chunk
for doc in documents
for chunk in splitter.split_text(doc.page_content)
]这里更推荐用 Markdown 输出:Parse 会把标题与表格保留成 Markdown 结构,而能识别标题的切分器正是靠它把同一小节保持在一起。
用 Extract 得到结构化数据
Extract 会按你的 schema 返回 JSON,可直接映射到 LangChain 的工具或结构化输出步骤。用 client.extract.run(file_input=FILE_ID, configuration=""data_schema": DATA_SCHEMA") 跑任务(它会等到完成),再把 job.extract_result 交给链。schema 的选项见Extract 快速上手。