salek877's picture
Update app.py
0f1c975
import streamlit as st
import textwrap
import google.generativeai as genai
from IPython.display import Markdown
import PIL.Image
def to_markdown(text):
text = text.replace('•', ' *')
return Markdown(textwrap.indent(text, '> ', predicate=lambda _: True))
def vision(img):
model = genai.GenerativeModel('gemini-pro-vision')
response = model.generate_content(img)
to_markdown(response.text)
response = model.generate_content(["Tell me the fruit name and ripeness level.", img], stream=True)
response.resolve()
to_markdown(response.text)
vision_output = response.text
return vision_output
def chat(inpt_frm_vsn):
model = genai.GenerativeModel('gemini-pro')
chat = model.start_chat(history=[])
message_count = 0
continue_chat = True
while continue_chat:
if message_count == 0:
input_msg = inpt_frm_vsn + ' Tell me the fruit name and nutrition. Complete answer in 55 words. Never show the word count.'
else:
input_key = f"chat_input_{message_count}"
user_input = st.chat_input('Please write your message here...', key=input_key)
if user_input:
st.write(f"User: {user_input}")
input_msg = user_input + ' Complete answer in 55 words. Never show the word count.'
else:
continue_chat = False
break
response = chat.send_message(input_msg, generation_config=genai.types.GenerationConfig(
max_output_tokens=100
))
to_markdown(response.text)
st.text('Gemini: ' + response.text)
message_count += 1
def main():
st.title("Gemini")
GOOGLE_API_KEY = 'AIzaSyDMDS5TghIYsEV4nD6FsC8PDCtqGvkuUls'
genai.configure(api_key=GOOGLE_API_KEY)
uploaded_file = st.file_uploader("Choose an image...", type=["jpg", "jpeg", "png"])
if uploaded_file is not None:
img = PIL.Image.open(uploaded_file)
st.image(img, caption='Uploaded Image.', use_column_width=True)
vision_result = vision(img)
st.text(vision_result)
check_point = st.text_input("If you want to continue chat write 'nutrition': ")
if check_point.lower() == 'nutrition':
chat(vision_result)
if __name__ == "__main__":
main()