跳转到内容

Python SDK

对于更偏向编程的方法,Python SDK 是推荐用于试验不同模式和大规模运行提取的方式。 Python SDK 的 Github 仓库在此处

首先,获取一个API密钥。我们建议将您的密钥放入名为.env的文件中,该文件内容如下:

Terminal window
LLAMA_CLOUD_API_KEY=llx-xxxxxx

使用您选择的工具设置一个新的 Python 环境,我们使用了 poetry init。然后安装您需要的依赖项:

Terminal window
pip install llama-cloud-services python-dotenv

现在我们已经有了所需的库和API密钥,让我们创建一个 extract.py 文件并从文件中提取数据。在这个示例中,我们使用了一些来自示例的简历样本:

from llama_cloud_services import LlamaExtract
from pydantic import BaseModel, Field
# bring in our LLAMA_CLOUD_API_KEY
from dotenv import load_dotenv
load_dotenv()
# Initialize client
extractor = LlamaExtract()
# Define schema using Pydantic
class Resume(BaseModel):
name: str = Field(description="Full name of candidate")
email: str = Field(description="Email address")
skills: list[str] = Field(description="Technical skills and technologies")
# Create extraction agent
agent = extractor.create_agent(name="resume-parser", data_schema=Resume)
# Extract data from document
result = agent.extract("resume.pdf")
print(result.data)

现在像运行任何Python文件一样运行它。这将打印提取的结果。

Terminal window
python extract.py

可以使用 Pydantic 模型或 JSON Schema 定义模式。更多详细信息请参阅模式页面。

您可以使用 SourceText 类直接从字节或文本中提取内容,无需使用文件。如果传递文件字节, 您需要将文件名传递给 SourceText 类。

with open("resume.pdf", "rb") as f:
file_bytes = f.read()
result = test_agent.extract(SourceText(file=file_bytes, filename="resume.pdf"))
result = test_agent.extract(SourceText(text_content="Candidate Name: Jane Doe"))

异步处理多个文件:

# Queue multiple files for extraction
jobs = await agent.queue_extraction(["resume1.pdf", "resume2.pdf"])
# Check job status
for job in jobs:
status = agent.get_extraction_job(job.id).status
print(f"Job {job.id}: {status}")
# Get results when complete
results = [agent.get_extraction_run_for_job(job.id) for job in jobs]

模式在创建后可以修改和更新:

# Update schema
agent.data_schema = new_schema
# Save changes
agent.save()
# List all agents
agents = extractor.list_agents()
# Get specific agent
agent = extractor.get_agent(name="resume-parser")
# Delete agent
extractor.delete_agent(agent.id)