• gpt-4o看图说话-根据图片回答问题


    问题:中国的人口老龄化究竟有多严重?

    代码下实现如下:(直接调用openai的chat接口)

    import os

    import base64

    import requests

    def encode_image(image_path):

        """

        对图片文件进行 Base64 编码

        输入:

             - image_path:图片的文件路径

        输出:

             - 编码后的 Base64 字符串

        """

        # 二进制读取模式打开图片文件,

        with open(image_path, "rb") as image_file:

            # 将编码后的字节串解码为 UTF-8 字符串,以便于在文本环境中使用。

            return base64.b64encode(image_file.read()).decode("utf-8")

    # 中文 Prompt 指令

    question = "中国的人口老龄化究竟有多严重?"

    prompt = (

        f"你的任务是根据图片回答问题,{question}详细回答。"

    )

    # 对本地多张图片进行 Base64 编码

    images = os.listdir("./images")

    images.sort()

    images.remove('.ipynb_checkpoints')

    print(images)

    base64_images = [encode_image("./images/" + image) for image in images]

    # 组织用户消息

    user_content = [{"type": "text", "text": prompt}]

    base64_images = [

        {

            "type": "image_url",

            "image_url": {

                "url": f"data:image/jpeg;base64,{base64_image}",

                "detail": "high",

            },

        }

        for base64_image in base64_images

    ]

    user_content.extend(base64_images)

    messages_template = [{"role": "user", "content": user_content}]

    # 构造请求参数

    payload = {

        "model": "gpt-4o",

        "messages": messages_template,

        "max_tokens": 1600,

        "temperature": 0,

        "seed": 2024,

    }

    # OpenAI API Key

    api_key = "sk-xxx”

    # 请求头

    headers = {"Content-Type": "application/json", "Authorization": f"Bearer {api_key}"}

    # 发送 POST 请求

    response = requests.post(

        "https://api.openai.com/v1/chat/completions",

        headers=headers, json=payload

    )

    # 打印生成结果

    print(response.json())

    result = response.json()["choices"][0]["message"]["content"]

    print(result)

    输出结果:

  • 相关阅读:
    面试20个人居然没有一个写出数组扁平化?如何手写flat函数
    探索设计模式的魅力:状态模式揭秘-如何优雅地处理复杂状态转换
    Redis持久化(RDB/AOF)
    蓝桥杯——递增序列和货物摆放
    Speedoffice(Excel)中如何添加页眉页脚
    设计师首选:最佳的5款网页设计软件
    mybatis注解开发
    mysql变量与游标
    ENVI操作:GF2影像全色与多光谱融合
    神经生物学博士就业前景,神经网络硕士就业前景
  • 原文地址:https://blog.csdn.net/wxl781227/article/details/140308546