调用大模型api 批量处理图像 保存到excel

最近需要调用大模型,并将结果保存到excel中,效果如下:
在这里插入图片描述

代码:

import base64
from zhipuai import ZhipuAI
import os
import pandas as pd
from openpyxl import Workbook
from openpyxl.drawing.image import Image
from io import BytesIO

# 指定图像所在的文件夹路径
img_folder = r"aaa"  # 请根据实际路径修改

# 获取文件夹中的所有图片文件(这里假设所有文件都是图片,可以根据需要调整文件类型)
img_paths = [os.path.join(img_folder, f) for f in os.listdir(img_folder) if f.lower().endswith(('.jpg', '.jpeg', '.png', '.bmp', '.gif'))]

# 初始化API客户端
client = ZhipuAI(api_key="xxx")  # 填写您自己的APIKey

# 创建Excel工作簿
wb = Workbook()
ws = wb.active
ws.title = "Image Recognition Results"

# 设置表头
ws.append(["Image", "Image Name", "Model Output"])

# 循环处理每张图片
for img_path in img_paths:
    # 打开每一张图片并转换为base64
    with open(img_path, 'rb') as img_file:
        img_base = base64.b64encode(img_file.read()).decode('utf-8')

    # 调用API进行模型推理
    response = client.chat.completions.create(
        model="glm-4v-plus",  # 填写需要调用的模型名称
        messages=[
            {
                "role": "user",
                "content": [
                    {
                        "type": "image_url",
                        "image_url": {
                            "url": img_base
                        }
                    },
                    {
                        "type": "text",
                        "text": "图片中有人吗?"
                    }
                ]
            }
        ]
    )

    # 获取模型返回的结果
    model_output = response.choices[0].message
    print()

    # 将图片插入到Excel中
    img = Image(img_path)
    img.width = 100  # 设置图片的宽度,可以调整
    img.height = 100  # 设置图片的高度,可以调整

    # 在Excel表格中插入图片
    row = len(ws['A']) + 1  # 获取当前行数,用于将图片插入到正确位置
    ws.add_image(img, f"A{row}")

    # 将图片的文件名和识别结果添加到表格
    ws.append([None, os.path.basename(img_path), model_output.content])  # 图片在A列,文件名和结果在其他列

# 保存Excel文件
excel_path = r"aaa"  # 请根据需要修改保存路径
wb.save(excel_path)

print(f"结果已成功保存到 Excel 文件:{excel_path}")
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值