Anthropic的Claude API正在成为国内开发者接入大模型的新选择。这篇教程基于官方文档,用可运行的Python代码带你走完核心功能——从最简单的文本生成,到流式响应、图像分析,再到让Claude调用你自己的函数。

准备工作很简单:Python 3.8以上,一个Anthropic API key。把key设成环境变量ANTHROPIC_API_KEY,安装SDK:

打开网易新闻 查看精彩图片
pip install anthropic

然后就能发出第一个请求。SDK会自动读取环境变量,不需要手动传key:

打开网易新闻 查看精彩图片
from anthropic import Anthropicclient = Anthropic()msg = client.messages.create(model="claude-sonnet-4-6",max_tokens=1024,messages=[{"role": "user", "content": "Hello!"}],print(msg.content[0].text)

所有交互都通过client.messages.create()完成。核心参数就四个:model指定模型版本,max_tokens限制输出长度,messages是对话历史列表,system可选用于设定系统提示词。响应里msg.content[0].text是文本内容,msg.stop_reason告诉你为什么停止生成,msg.usage里有token消耗数据。

这个API是无状态的,想做多轮对话得自己维护历史。把每次的user消息和assistant回复按顺序塞进messages列表,下次请求带上去就行:

conversation = []while True:user_input = input("You: ").strip()if user_input.lower() in ("quit", "exit", "q"):breakconversation.append({"role": "user", "content": user_input})response = client.messages.create(model="claude-sonnet-4-6",max_tokens=1024,messages=conversation,assistant_text = response.content[0].textconversation.append({"role": "assistant", "content": assistant_text})print(f"Claude: {assistant_text}\n")

流式响应用client.messages.stream(),适合需要实时显示生成内容的场景。用with语句创建流对象,遍历stream.text_stream就能拿到逐个token。循环结束后调用stream.get_final_message()可以获取完整的Message对象:

打开网易新闻 查看精彩图片
with client.messages.stream(model="claude-sonnet-4-6",max_tokens=1024,messages=[{"role": "user", "content": "Explain quantum entanglement simply."}],) as stream:for text in stream.text_stream:print(text, end="", flush=True)print()

Claude支持图像输入,但需要自己处理编码。把图片转成base64,包装成content block传进去。content字段可以是字符串,也可以是带type字段的对象列表——"text"、"image"、"tool_use"、"tool_result"这几种类型覆盖了文本、图像、工具调用和工具返回。

工具调用(Tool Use)是Claude API最实用的进阶功能。你定义好函数的描述和参数格式,Claude会在需要时生成调用请求,你执行完函数再把结果传回去,形成完整闭环。这套机制让Claude能查天气、调数据库、算数学——任何你能写成Python函数的东西。

整个API的设计很克制:一个入口方法,几种content类型,状态管理交给用户。这种简洁性既是优点也是门槛——你得自己处理对话历史、图片编码、工具循环。但对于需要精细控制的应用来说,少一层封装反而意味着多一分灵活。