一、教程简介
最近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
|