闲社
标题:
【教程】Claude API实战:手把手教你用Python构建智能文档分析助手
[打印本页]
作者:
kai_va
时间:
昨天 20:10
标题:
【教程】Claude API实战:手把手教你用Python构建智能文档分析助手
一、教程简介
最近Anthropic的Claude系列模型持续火爆,特别是Claude 4的发布让API调用需求大增。本教程将手把手教你用Python调用Claude API,构建一个实用的智能文档分析助手。
二、前置条件
Python 3.8+ 环境
Anthropic API Key(官网免费注册获取)
安装依赖包:pip install anthropic requests
准备一个待分析的文本文件(本教程用示例日志文件)
三、步骤详解
步骤1:获取API Key
访问 https://console.anthropic.com/ 注册账号,创建API Key。建议将Key保存到环境变量中:
export ANTHROPIC_API_KEY="your-api-key-here"
复制代码
步骤2:安装Python依赖
pip install anthropic python-dotenv
复制代码
步骤3:编写核心代码
创建文件
document_analyzer.py
:
import os
from anthropic import Anthropic
from dotenv import load_dotenv
# 加载环境变量
load_dotenv()
class DocumentAnalyzer:
def __init__(self):
self.client = Anthropic(api_key=os.getenv("ANTHROPIC_API_KEY"))
self.model = "claude-sonnet-4-20250514"
def analyze(self, document_text, analysis_type="summary"):
"""
分析文档内容
analysis_type: summary, keywords, sentiment, action_items
"""
prompts = {
"summary": "请用中文总结以下文档的核心内容,控制在200字以内:",
"keywords": "请提取以下文档的5-10个关键词,用逗号分隔:",
"sentiment": "请分析以下文档的情感倾向(正面/负面/中性),并说明理由:",
"action_items": "请从以下文档中提取待办事项,按优先级排序:"
}
prompt = prompts.get(analysis_type, prompts["summary"])
try:
response = self.client.messages.create(
model=self.model,
max_tokens=1000,
messages=[
{
"role": "user",
"content": f"{prompt}\n\n{document_text}"
}
]
)
return response.content[0].text
except Exception as e:
return f"分析出错: {str(e)}"
def batch_analyze(self, file_path):
"""批量分析文件"""
with open(file_path, 'r', encoding='utf-8') as f:
content = f.read()
results = {}
for analysis_type in ["summary", "keywords", "sentiment", "action_items"]:
print(f"正在执行 {analysis_type} 分析...")
results[analysis_type] = self.analyze(content, analysis_type)
return results
# 使用示例
if __name__ == "__main__":
analyzer = DocumentAnalyzer()
# 分析单个文档
with open("sample_doc.txt", "r", encoding="utf-8") as f:
doc = f.read()
summary = analyzer.analyze(doc, "summary")
print("\n=== 文档总结 ===")
print(summary)
复制代码
步骤4:创建示例文档
创建
sample_doc.txt
:
2024年Q3产品会议纪要
参会人员:产品经理张三、开发负责人李四、设计师王五
讨论内容:
1. 用户反馈新功能使用率低,需要优化交互设计
2. 移动端适配问题严重,优先级提升为P0
3. 竞品分析显示我们的AI功能落后,需要加速研发
4. 预算紧张,建议砍掉低优先级项目
待办事项:
- 设计师王五:一周内完成交互优化方案
- 开发李四:两周内修复移动端适配问题
- 产品经理:重新评估项目优先级,周五前提交报告
复制代码
步骤5:运行并查看结果
python document_analyzer.py
复制代码
预期输出:
=== 文档总结 ===
这是一份2024年Q3产品会议纪要,主要讨论了四个问题:新功能使用率低需优化交互、移动端适配问题需优先处理、AI功能相对竞品落后需加速研发、以及预算紧张需砍掉低优先级项目。会议确定了三个待办事项,分别由设计师、开发负责人和产品经理负责,有明确的时间节点。
复制代码
四、进阶功能:批量分析
扩展代码支持批量处理多个文件:
import glob
def batch_process_folder(folder_path):
"""批量分析文件夹内所有txt文件"""
analyzer = DocumentAnalyzer()
files = glob.glob(os.path.join(folder_path, "*.txt"))
for file in files:
print(f"\n{'='*50}")
print(f"分析文件: {os.path.basename(file)}")
print(f"{'='*50}")
results = analyzer.batch_analyze(file)
for analysis_type, result in results.items():
print(f"\n【{analysis_type}】")
print(result)
# 批量处理当前目录下的所有txt文件
batch_process_folder("./documents")
复制代码
五、常见问题
Q1: API调用报错 "invalid x-api-key"?
A: 检查环境变量是否正确设置,或直接在代码中传入api_key参数。
Q2: 中文输出乱码?
A: 确保文件编码为UTF-8,并在open()函数中指定encoding="utf-8"。
Q3: 如何控制输出长度?
A: 调整max_tokens参数,或在prompt中明确要求字数限制。
Q4: API费用如何?
A: Claude API按token计费,输入和输出分别计价。建议先用小文本测试,控制成本。
Q5: 如何保存分析结果?
A: 可以将results字典保存为JSON文件,或导出为Excel/CSV格式。
六、总结
通过本教程,你学会了:
如何获取和配置Anthropic API Key
使用Python调用Claude API进行文档分析
实现多种分析模式(总结、关键词、情感、待办事项)
批量处理多个文档
Claude API的强大之处在于理解能力强、中文支持好。你可以基于此扩展更多功能,比如:
自动分类文档
生成会议纪要
提取关键数据生成表格
多文档对比分析
完整代码已上传GitHub,欢迎Star和Fork!有问题欢迎在评论区交流。
相关资源:
Anthropic官方文档:https://docs.anthropic.com/
Python SDK:https://github.com/anthropics/anthropic-sdk-python
本教程完整代码:https://github.com/example/claude-document-analyzer
欢迎光临 闲社 (https://www.xianshe.com/)
Powered by Discuz! X5.0