最近需要调用大模型,并将结果保存到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:# 打开每一张图片并转换为base64with 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].messageprint()# 将图片插入到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}")