开始上手 - 如何将图像传递给 Claude
Claude 3 模型系列支持 API 中的图像输入。以下是如何将图像传递给 Claude 的方法:
%pip install anthropic IPython
from IPython.display import Image
Image(filename='../images/sunset.jpeg')
import base64
from anthropic import Anthropic
client = Anthropic()
MODEL_NAME = "claude-3-opus-20240229"
with open("../images/sunset.jpeg", "rb") as image_file:
binary_data = image_file.read()
base_64_encoded_data = base64.b64encode(binary_data)
base_64_string = base_64_encoded_data.decode('utf-8')
message_list = [
{
"role": 'user',
"content": [
{"type": "image", "source": {"type": "base64", "media_type": "image/jpeg", "data": base64_string}},
{"type": "text", "text": "Write a sonnet based on this image."}
]
}
]
response = client.messages.create(
model=MODEL_NAME,
max_tokens=2048,
messages=message_list
)
print(response.content[0].text)
在崎岖的海岸上,一座明亮的灯塔,
它坚定的光芒是穿透最黑暗夜晚的向导。
当太阳以粉红色和红色的色调落下时,
灯塔矗立着,一个坚定的领头人物。
海浪拍打着下方饱经风霜的石头,
永恒的节奏,古老的潮涨潮落。
但塔楼依然屹立,坚决不动摇,
一个警惕而沉默的守护者。
广阔的天海相连,
地平线是天堂与大地相遇的地方。
这永恒的景象,是力量的证明,
自然的伟力与人类的奋斗。
灯塔骄傲地矗立在渐逝的白昼中,
永恒的象征,指引安全的道路。
通过 URL 传递图像
如果你只有图像的 URL,仍然可以用几行代码就能将它传递给 Claude。
IMAGE_URL = "https://upload.wikimedia.org/wikipedia/commons/thumb/c/ca/Machu_Picchu%2C_Peru_%282018%29.jpg/2560px-Machu_Picchu%2C_Peru_%282018%29.jpg"
Image(url=IMAGE_URL)
import httpx
IMAGE_DATA = base64.b64encode(httpx.get(IMAGE_URL).content).decode("utf-8")
message_list = [
{
"role": 'user',
"content": [
{"type": "image", "source": {"type": "base64", "media_type": "image/jpeg", "data": IMAGE_DATA}},
{"type": "text", "text": "Describe this image in two sentences."}
]
}
]
response = client.messages.create(
model=MODEL_NAME,
max_tokens=2048,
messages=message_list
)
print(response.content[0].text)
这张图片描绘了古老的印加城市马丘比丘,它坐落在秘鲁安第斯山脉的高处。保存完好的石头遗迹,包括梯田、广场和建筑,都坐落在一片陡峭、翠绿的山脉的壮丽背景下,天空中有部分云彩。