如何利用streamlit 將 gemini pro vision 進行圖片內容介紹

如何利用streamlit 將 gemini pro vision 進行圖片內容介紹

1.安裝pip install google-generativeai

2.至 gemini pro 取 api key

3.撰寫如下文章:(方法一)
import json
import requests
import base64
import streamlit as st

讀取圖片檔案,並轉換成 Base64 編碼的字串

with open(“ss.jpg”, “rb”) as image_file:
image_base64_string = base64.b64encode(image_file.read()).decode(‘utf-8’)
# print(image_base64_string)

url = f’https://generativelanguage.googleapis.com/v1/models/gemini-pro-vision:generateContent?key={“XXXXXSlt0IWdyIHs71gQYGmDq5keWHYpw”}’
headers = {‘Content-Type’: ‘application/json’}
data = {
“contents”: [
{
“parts”: [
{“text”: “詳細說明你在這張圖片中看到什麼?”},
{
“inline_data”: {
“mime_type”: “image/jpeg”,
“data”: image_base64_string
}
}
]
},
]
}
response = requests.post(url, headers=headers, json=data)
st.write(response.json()[“candidates”][0][“content”][“parts”][0][“text”])
st.write(response.json())

请添加图片描述
在这里插入图片描述

3.撰寫如下文章:(方法二)

import streamlit as st
import google.generativeai as genai
import google.ai.generativelanguage as glm
from PIL import Image

API_KEY = 'AIzaSyA7dRRSlt0xxxxxw'   自己改
genai.configure(api_key=API_KEY)

st.set_page_config(page_title="Generate Blog", 
                   page_icon="📸",
                   layout="centered",
                   initial_sidebar_state='collapsed')

st.header("輸入一個影像,將進行影像解說")

uploaded_file = st.file_uploader("選擇影像", accept_multiple_files=False, type=['jpg', 'png'])

if uploaded_file is not None:
    image = Image.open(uploaded_file)
    c1,c2=st.columns([1,1])
    c1.image(image, caption='Uploaded Image', use_column_width=True, width=150)
    bytes_data = uploaded_file.getvalue()

    generate = st.button("針對圖片進行說明!")

    if generate:
        model = genai.GenerativeModel('gemini-pro-vision')
        response = model.generate_content(
            glm.Content(
                parts = [
                    glm.Part(text="詳細說明你在這張圖片中看到什麼?"),
                    glm.Part(
                        inline_data=glm.Blob(
                            mime_type='image/jpeg',
                            data=bytes_data
                        )
                    ),
                ],
            ),
            stream=True)

        response.resolve()

        c2.write(response.text)

在这里插入图片描述
在这里插入图片描述

相关推荐

  1. 中子程三

    2024-01-25 00:58:02       8 阅读
  2. 中子程五

    2024-01-25 00:58:02       7 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-25 00:58:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-25 00:58:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-25 00:58:02       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-25 00:58:02       20 阅读

热门阅读

  1. 【嵌入式——C++】引用

    2024-01-25 00:58:02       34 阅读
  2. 论文素材:PSO算法介绍

    2024-01-25 00:58:02       37 阅读
  3. mysql单表查询练习题

    2024-01-25 00:58:02       36 阅读
  4. 在 Spring Boot 中使用事务

    2024-01-25 00:58:02       34 阅读
  5. 【nginx】405 not allowed问题解决方法

    2024-01-25 00:58:02       42 阅读
  6. linux 之 ln 命令

    2024-01-25 00:58:02       35 阅读
  7. c语言之循环语句练习

    2024-01-25 00:58:02       37 阅读
  8. 更改ip后还被封是ip质量的原因吗?

    2024-01-25 00:58:02       38 阅读