返回顶部
7*24新情报

【教程】Claude API实战:手把手教你用Python构建智能文档分析助手

[复制链接]
kai_va 显示全部楼层 发表于 昨天 20:10 |阅读模式 打印 上一主题 下一主题
一、教程简介

最近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保存到环境变量中:
  1. export ANTHROPIC_API_KEY="your-api-key-here"
复制代码

步骤2:安装Python依赖
  1. pip install anthropic python-dotenv
复制代码

步骤3:编写核心代码

创建文件 document_analyzer.py
  1. import os
  2. from anthropic import Anthropic
  3. from dotenv import load_dotenv
  4. # 加载环境变量
  5. load_dotenv()
  6. class DocumentAnalyzer:
  7.     def __init__(self):
  8.         self.client = Anthropic(api_key=os.getenv("ANTHROPIC_API_KEY"))
  9.         self.model = "claude-sonnet-4-20250514"
  10.    
  11.     def analyze(self, document_text, analysis_type="summary"):
  12.         """
  13.         分析文档内容
  14.         analysis_type: summary, keywords, sentiment, action_items
  15.         """
  16.         
  17.         prompts = {
  18.             "summary": "请用中文总结以下文档的核心内容,控制在200字以内:",
  19.             "keywords": "请提取以下文档的5-10个关键词,用逗号分隔:",
  20.             "sentiment": "请分析以下文档的情感倾向(正面/负面/中性),并说明理由:",
  21.             "action_items": "请从以下文档中提取待办事项,按优先级排序:"
  22.         }
  23.         
  24.         prompt = prompts.get(analysis_type, prompts["summary"])
  25.         
  26.         try:
  27.             response = self.client.messages.create(
  28.                 model=self.model,
  29.                 max_tokens=1000,
  30.                 messages=[
  31.                     {
  32.                         "role": "user",
  33.                         "content": f"{prompt}\n\n{document_text}"
  34.                     }
  35.                 ]
  36.             )
  37.             return response.content[0].text
  38.         except Exception as e:
  39.             return f"分析出错: {str(e)}"
  40.    
  41.     def batch_analyze(self, file_path):
  42.         """批量分析文件"""
  43.         with open(file_path, 'r', encoding='utf-8') as f:
  44.             content = f.read()
  45.         
  46.         results = {}
  47.         for analysis_type in ["summary", "keywords", "sentiment", "action_items"]:
  48.             print(f"正在执行 {analysis_type} 分析...")
  49.             results[analysis_type] = self.analyze(content, analysis_type)
  50.         
  51.         return results
  52. # 使用示例
  53. if __name__ == "__main__":
  54.     analyzer = DocumentAnalyzer()
  55.    
  56.     # 分析单个文档
  57.     with open("sample_doc.txt", "r", encoding="utf-8") as f:
  58.         doc = f.read()
  59.    
  60.     summary = analyzer.analyze(doc, "summary")
  61.     print("\n=== 文档总结 ===")
  62.     print(summary)
复制代码

步骤4:创建示例文档

创建 sample_doc.txt
  1. 2024年Q3产品会议纪要
  2. 参会人员:产品经理张三、开发负责人李四、设计师王五
  3. 讨论内容:
  4. 1. 用户反馈新功能使用率低,需要优化交互设计
  5. 2. 移动端适配问题严重,优先级提升为P0
  6. 3. 竞品分析显示我们的AI功能落后,需要加速研发
  7. 4. 预算紧张,建议砍掉低优先级项目
  8. 待办事项:
  9. - 设计师王五:一周内完成交互优化方案
  10. - 开发李四:两周内修复移动端适配问题
  11. - 产品经理:重新评估项目优先级,周五前提交报告
复制代码

步骤5:运行并查看结果
  1. python document_analyzer.py
复制代码

预期输出:
  1. === 文档总结 ===
  2. 这是一份2024年Q3产品会议纪要,主要讨论了四个问题:新功能使用率低需优化交互、移动端适配问题需优先处理、AI功能相对竞品落后需加速研发、以及预算紧张需砍掉低优先级项目。会议确定了三个待办事项,分别由设计师、开发负责人和产品经理负责,有明确的时间节点。
复制代码

四、进阶功能:批量分析

扩展代码支持批量处理多个文件:
  1. import glob
  2. def batch_process_folder(folder_path):
  3.     """批量分析文件夹内所有txt文件"""
  4.     analyzer = DocumentAnalyzer()
  5.     files = glob.glob(os.path.join(folder_path, "*.txt"))
  6.    
  7.     for file in files:
  8.         print(f"\n{'='*50}")
  9.         print(f"分析文件: {os.path.basename(file)}")
  10.         print(f"{'='*50}")
  11.         
  12.         results = analyzer.batch_analyze(file)
  13.         for analysis_type, result in results.items():
  14.             print(f"\n【{analysis_type}】")
  15.             print(result)
  16. # 批量处理当前目录下的所有txt文件
  17. 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
回复

使用道具 举报

default_avator1
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver·手机版·闲社网·闲社论坛·羊毛社区· 多链控股集团有限公司 · 苏ICP备2025199260号-1

Powered by Discuz! X5.0   © 2024-2025 闲社网·线报更新论坛·羊毛分享社区·http://xianshe.com

p2p_official_large
快速回复 返回顶部 返回列表