CS log

Integrating Applications with Gemini 1.0 Pro on Google Cloud 본문

AI/NLP

Integrating Applications with Gemini 1.0 Pro on Google Cloud

sj.cath 2024. 9. 30. 16:25

권한을 부여해준 뒤

student_00_734f98d8415f@cloudshell:~ (qwiklabs-gcp-02-40c7bf18b4a6)$ gcloud services enable cloudbuild.googleapis.com cloudfunctions.googleapis.com run.googleapis.com logging.googleapis.com storage-component.googleapis.com aiplatform.googleapis.com
Operation "operations/acf.p2-514161044782-d7e37405-0f80-4d9e-9ec4-60feea07406e" finished successfully.

 

필요한 앱들을 다운로드하고 파일을 작성한 뒤, 아래와 같이 genmini 앱을 본격적으로 작동시킨다

streamlit run app.py \
--browser.serverAddress=localhost \
--server.enableCORS=false \
--server.enableXsrfProtection=false \
--server.port 8080

 

8080 port web preview에서 이렇게 앱을 볼 수 있다.

 

결과물

 

조금 다른 app도 생성해보았다. marketing campaign을 위한 문구 생성 앱이다.

 

다음은 이미지 분석을 하는 앱이다 (multimodal)

 

 

er diagram을 이미지로 넣으면 이에 대한 분석도 실행해준다.

 

위에는 수식 계산!

 

 

이미지 뿐만 아니라 멀티 모달로, 영상에 대한 분석도 가능하다.

 

 

  1. To write code that renders the Video Playground tab in the app's UI, run the following command:
cat > ~/gemini-app/app_tab4.py <<EOF
import streamlit as st
from vertexai.preview.generative_models import GenerativeModel, Part
from response_utils import *
import logging

# render the Video Playground tab with multiple child tabs
def render_video_playground_tab(multimodal_model_pro: GenerativeModel):

    st.write("Using Gemini 1.0 Pro Vision - Multimodal model")
    video_desc, video_tags, video_highlights, video_geoloc = st.tabs(["Video description", "Video tags", "Video highlights", "Video geolocation"])

    with video_desc:
        video_desc_uri = "gs://cloud-training/OCBL447/gemini-app/videos/mediterraneansea.mp4"
        video_desc_url = "https://storage.googleapis.com/"+video_desc_uri.split("gs://")[1]            

        video_desc_vid = Part.from_uri(video_desc_uri, mime_type="video/mp4")
        st.video(video_desc_url)
        st.write("Generate a description of the video.")

        prompt = """Describe what is happening in the video and answer the following questions: \n
                - What am I looking at?
                - Where should I go to see it?
                - What are other top 5 places in the world that look like this? 
                """

        tab1, tab2 = st.tabs(["Response", "Prompt"])
        video_desc_description = st.button("Generate video description", key="video_desc_description")
        with tab1:
            if video_desc_description and prompt: 
                with st.spinner("Generating video description"):
                    response = get_gemini_pro_vision_response(multimodal_model_pro, [prompt, video_desc_vid])
                    st.markdown(response)
                    logging.info(response)
        with tab2:
            st.write("Prompt used:")
            st.write(prompt,"\n","{video_data}")

EOF

 

2. View the contents of the app_tab4.py file:

cat ~/gemini-app/app_tab4.py

 

3. Modify the main app entry point

  • To add tab4 to the app, run the following command:
cat >> ~/gemini-app/app.py <<EOF

from app_tab4 import render_video_playground_tab

with tab4:
    render_video_playground_tab(multimodal_model_pro)

EOF

 

 

또한 video를 분석하여 질문에 대한 답을 생성한다.

 

위에는 비디오의 하이라이트 장면을 생성해주는 기능이다.

 

In this task, you use the Gemini 1.0 Pro Vision model to determine the location where the scene in the video takes place.

 

이후 cloud 서비스에서 deploy도 할 수 있다.