利用OpenAI API 读取与分析图像:详细指南

gpt-4o已经可以支持多模态了,因此可以通过给4o的模型喂图,让大模型给我们分析出图片中的具体内容,这个功能非常方便,而且识别的准确率也非常的高,下面就一起来实现一下吧。

前置准备

在开始之前,确保你具备以下条件:

  1. OpenAI API密钥:你需要一个有效的OpenAI API密钥来访问其服务。请确保妥善保管,不要泄露给他人。
  2. Python环境:确保你的计算机上已安装Python,并且了解基本的Python编程知识。
  3. 必要的库:安装所需的Python库,如openairequests等。

可以通过以下命令安装必要的库:

pip install openai requests

具体步骤如下:

1. 导入必要的库

import base64
import requests
import os
from openai import OpenAI
  • base64:用于将图像文件转换为Base64编码,这是一种将二进制数据转换为文本格式的方法,便于在JSON中传输。
  • requests:用于发送HTTP请求。
  • os:用于与操作系统进行交互,如读取文件路径。
  • openai:OpenAI的官方Python库,用于与OpenAI API进行交互。

2. 配置API密钥与客户端

api_key = "sk-***************"  # 示例:遮蔽后的API密钥

api_url = "https://api.manyi88.top/v1"  

client = OpenAI(api_key=api_key, base_url=api_url)
  • api_key:API密钥,可根据需要进行切换。注意:实际使用中应将API密钥妥善保管,不要在代码中明文显示。

  • client:初始化OpenAI客户端,使用默认的API密钥和基础URL。

3. 定义获取洗涤建议的函数

def get_common_advice(image_path, prompt):
    # 内部函数:编码图像为Base64
    def encode_image(image_path):
        with open(image_path, "rb") as image_file:
            return base64.b64encode(image_file.read()).decode('utf-8')

    # 获取Base64字符串
    base64_image = encode_image(image_path)

    response = client.chat.completions.create(
        model="gpt-4o-mini",
        messages=[
            {
                "role": "user",
                "content": [
                    {
                        "type": "text",
                        "text": prompt
                    },
                    {
                        "type": "image_url",
                        "image_url": {
                            "url": f"data:image/jpeg;base64,{base64_image}"
                        }
                    }
                ]
            }
        ]
    )

    return response.choices[0].message.content

4. 调用并返回结果

print(get_common_advice("images/test2.gif","描述此图片内容是什么,做了什么事情,给出详细的描述"))
步骤解析:
  1. 编码图像为Base64

    • 读取指定路径的图像文件,以二进制模式打开并读取内容。
    • 使用base64.b64encode将图像内容编码为Base64字符串,并解码为UTF-8格式的文本。
  2. 构建请求数据

    • 使用OpenAI的聊天模型(如gpt-4o-2024-08-06)进行API调用。
    • 构建消息内容,包括用户的文本指令和图像的Base64编码。
  3. 发送请求并获取响应

    • 调用client.chat.completions.create方法,传入模型名称和消息内容。
    • 从响应中提取助手生成的内容,即洗涤建议。

4. 使用示例

假设我们有一张名为clothes.jpg的衣物图片,位于脚本的同一目录下,可以通过以下方式获取洗涤建议:

image_path = "clothes.jpg"
advice = get_washing_advice(image_path)
print(advice)

运行上述代码后,程序将输出根据图片分析得出的衣物材质、类型以及相应的洗涤建议,包括洗涤程序、水温、洗涤时长和脱水转速等。

注意事项

  1. API密钥安全

    • 切勿将API密钥公开在公共代码库或共享平台上。
    • 建议使用环境变量或配置文件来存储API密钥,并在代码中进行读取。
  2. 图像格式支持

    • 确保上传的图像格式受支持,如JPEG、PNG等常见格式。
    • 避免上传过大的图像文件,以减少编码和传输时间。
  3. API调用限制

    • 注意OpenAI API的调用限制和费用,避免因频繁调用导致超出配额。
    • 可以在代码中增加异常处理机制,以应对API调用失败或返回错误的情况。
  4. 模型选择

    • 根据具体需求选择合适的模型版本,不同模型在理解能力和响应速度上可能有所差异。

总结

通过以上步骤,我们成功实现了利用OpenAI API读取和分析图像,并根据分析结果提供具体的洗涤建议。该方法不仅适用于衣物洗涤建议,还可以扩展到其他需要图像理解和分析的应用场景,如产品推荐、内容审核、视觉搜索等。

随着人工智能技术的不断发展,图像识别与分析将变得更加智能和高效。希望本文能为你在实际项目中应用OpenAI的图像分析能力提供有益的参考和指导。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

风翔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值