claude3.5 视觉能力 API能力代码实战 ,使用AI给图片打标签

1,119 阅读3分钟

前言

前一篇文章《零成本部署:Vercel+Transformers.js 打造你的AI图片识别网站》中,我们尝试使用 Transformers.js 和对应的模型来给图片进行标注,但发现对图片整体的识别效果不太理想。今天,我们将通过实战代码来调用大模型 API 实现图片语义识别,提升图片理解能力。

之前我们开发了一个壁纸小程序,需要对 AI 生成的图片进行标签分类,自动生成图片的描述,这正是大模型视觉能力的用武之地。

今天就来实践一下著名的 Claude 大模型。Claude 3 系列模型带来了全新的视觉能力,使 Claude 能够理解和分析图像,为多模态交互打开了令人兴奋的大门。

代码


import anthropic,base64

client = anthropic.Anthropic(api_key="sk-ant-ap************************************A")

image1_media_type = "image/jpeg"
image_path = './tlp.png'
with open(image_path, "rb") as image_file:
    image_data = image_file.read()

# 使用 Base64 编码图片数据
image1_data = base64.b64encode(image_data).decode("utf-8")

def moderate_content():
    response = client.messages.create(
        # model="claude-3-haiku-20240307",   # claude-3-5-sonnet-20240620
          model="claude-3-5-sonnet-20240620",
        max_tokens=1000,
        temperature=0,
        messages=[
        {
            "role""user",
            "content": [
                {
                    "type""image",
                    "source": {
                        "type""base64",
                        "media_type"'image/jpeg',
                        "data": image1_data,
                    },
                },
                {
                    "type""text",
                    "text""描述一下这个图片的标签名词1到3个,名词长度2到4个中文字符.只输出这几个标签名词用逗号分割,不要输出其他内容"
                }
            ],
        }
    ],
    )

    return response

result = moderate_content()
reply_text = result.content[0].text
print(reply_text)

我给的prompt提示词是:"描述一下这个图片的标签名词1到3个,名词长度2到4个中文字符,只输出这几个标签名词用逗号分割,不要输出其他内容"

可以参考我之前的文章《使用Claude 3实现车票、车牌、名片等图片识别》将返回的结果格式化,添加“将提取的结果用json返回”,或者增加其他的信息,让AI来评估图片的精美程度数值,或者识别有没有令人不适或者违反常规的元素

代码实战的参考的是 Anthropic 的官方文档:docs.anthropic.com/zh-CN/docs/…

Snipaste_2024-07-21_13-28-08.png 官方文档的示例是下载网络图片,自己测试为了方便改成了读取本地图片,需要下载anthropic包,而且要有一定的网络环境。

目前OpenAI 的ChatGPT4 和 Anthropic的Claude 的图片视觉能力非常惊艳,可以发挥想象力做更多的事情,例如图像内容审核,现在的小程序都是需要对接大厂的接口,检测用户上传的图片是否有违规的内容,或者例如基于图像的内容推荐,在电商平台自动为商品图片生成标签,在社交媒体上识别和分类用户上传的图片内,给用户推荐​更适合的商品或者或者社交内容提高用户粘性。

最后自己实测的效果还不错:

微信截图_20240721140650.png

最后

大模型的视觉能力确实令人惊叹。短短几十行代码,仅需数秒即可提炼出图像的核心元素,这种效率远非人工标注所能企及。这不禁让人遐想,大模型的视觉能力还能在哪些领域大展身手?​ 不知道大家有什么想法,想通过大模型的视觉能力做点什么呢?今天就分享到这里,希望对大家有所帮助。