Python SDK
对于更偏向编程的方法,Python SDK 是推荐用于试验不同模式和大规模运行提取的方式。 Python SDK 的 Github 仓库在此处。
首先,获取一个API密钥。我们建议将您的密钥放入名为.env的文件中,该文件内容如下:
LLAMA_CLOUD_API_KEY=llx-xxxxxx使用您选择的工具设置一个新的 Python 环境,我们使用了 poetry init。然后安装您需要的依赖项:
pip install llama-cloud-services python-dotenv现在我们已经有了所需的库和API密钥,让我们创建一个 extract.py 文件并从文件中提取数据。在这个示例中,我们使用了一些来自示例的简历样本:
from llama_cloud_services import LlamaExtractfrom pydantic import BaseModel, Field
# bring in our LLAMA_CLOUD_API_KEYfrom dotenv import load_dotenvload_dotenv()
# Initialize clientextractor = LlamaExtract()
# Define schema using Pydanticclass 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 agentagent = extractor.create_agent(name="resume-parser", data_schema=Resume)
# Extract data from documentresult = agent.extract("resume.pdf")print(result.data)现在像运行任何Python文件一样运行它。这将打印提取的结果。
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 extractionjobs = await agent.queue_extraction(["resume1.pdf", "resume2.pdf"])
# Check job statusfor job in jobs: status = agent.get_extraction_job(job.id).status print(f"Job {job.id}: {status}")
# Get results when completeresults = [agent.get_extraction_run_for_job(job.id) for job in jobs]模式在创建后可以修改和更新:
# Update schemaagent.data_schema = new_schema
# Save changesagent.save()# List all agentsagents = extractor.list_agents()
# Get specific agentagent = extractor.get_agent(name="resume-parser")
# Delete agentextractor.delete_agent(agent.id)