Added new demo
This commit is contained in:
parent
73c63da4bd
commit
1169b028ba
4 changed files with 98 additions and 1 deletions
28
gemini_multimodal_chatbot/README.md
Normal file
28
gemini_multimodal_chatbot/README.md
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
## ⚡️ Multimodal Chatbot with Gemini Flash
|
||||
This repository contains a Streamlit application that demonstrates a multimodal chatbot using Google's Gemini Flash model. The chatbot allows users to interact with the model using both image and text inputs, providing lightning-fast results.
|
||||
|
||||
## Features
|
||||
- Multimodal input: Users can upload images and enter text queries to interact with the chatbot.
|
||||
- Gemini Flash model: The chatbot leverages Google's powerful Gemini Flash model for generating responses.
|
||||
- Chat history: The application maintains a chat history, displaying the conversation between the user and the chatbot.
|
||||
|
||||
### How to get Started?
|
||||
|
||||
1. Clone the GitHub repository
|
||||
|
||||
```bash
|
||||
git clone https://github.com/Shubhamsaboo/awesome-llm-apps.git
|
||||
```
|
||||
2. Install the required dependencies:
|
||||
|
||||
```bash
|
||||
pip install -r requirements.txt
|
||||
```
|
||||
3. Get your Google Studio API Key
|
||||
|
||||
- Sign up for an [Google AI Studio](https://aistudio.google.com/app/apikey) and obtain your API key.
|
||||
|
||||
4. Run the Streamlit App
|
||||
```bash
|
||||
streamlit run gemini_multimodal_chatbot.py
|
||||
```
|
||||
67
gemini_multimodal_chatbot/gemini_multimodal_chatbot.py
Normal file
67
gemini_multimodal_chatbot/gemini_multimodal_chatbot.py
Normal file
|
|
@ -0,0 +1,67 @@
|
|||
import os
|
||||
import streamlit as st
|
||||
import google.generativeai as genai
|
||||
from PIL import Image
|
||||
|
||||
# Set up the Streamlit App
|
||||
st.set_page_config(page_title="Multimodal Chatbot with Gemini Flash", layout="wide")
|
||||
st.title("Multimodal Chatbot with Gemini Flash ⚡️")
|
||||
st.caption("Chat with Google's Gemini Flash model using image and text input to get lightning fast results. 🌟")
|
||||
|
||||
# Get OpenAI API key from user
|
||||
api_key = st.text_input("Enter Google API Key", type="password")
|
||||
|
||||
# Set up the Gemini model
|
||||
genai.configure(api_key=api_key)
|
||||
model = genai.GenerativeModel(model_name="gemini-1.5-flash-latest")
|
||||
|
||||
if api_key:
|
||||
# Initialize the chat history
|
||||
if "messages" not in st.session_state:
|
||||
st.session_state.messages = []
|
||||
|
||||
# Sidebar for image upload
|
||||
with st.sidebar:
|
||||
st.title("Chat with Images")
|
||||
uploaded_file = st.file_uploader("Upload an image...", type=["jpg", "jpeg", "png"])
|
||||
|
||||
if uploaded_file:
|
||||
image = Image.open(uploaded_file)
|
||||
st.image(image, caption='Uploaded Image', use_column_width=True)
|
||||
|
||||
# Main layout
|
||||
chat_placeholder = st.container()
|
||||
|
||||
with chat_placeholder:
|
||||
# Display the chat history
|
||||
for message in st.session_state.messages:
|
||||
with st.chat_message(message["role"]):
|
||||
st.markdown(message["content"])
|
||||
|
||||
# User input area at the bottom
|
||||
prompt = st.chat_input("What do you want to know?")
|
||||
|
||||
if prompt:
|
||||
inputs = [prompt]
|
||||
|
||||
# Add user message to chat history
|
||||
st.session_state.messages.append({"role": "user", "content": prompt})
|
||||
# Display user message in chat message container
|
||||
with chat_placeholder:
|
||||
with st.chat_message("user"):
|
||||
st.markdown(prompt)
|
||||
|
||||
if uploaded_file:
|
||||
inputs.append(image)
|
||||
|
||||
with st.spinner('Generating response...'):
|
||||
# Generate response
|
||||
response = model.generate_content(inputs)
|
||||
|
||||
# Display assistant response in chat message container
|
||||
with chat_placeholder:
|
||||
with st.chat_message("assistant"):
|
||||
st.markdown(response.text)
|
||||
|
||||
if uploaded_file and not prompt:
|
||||
st.warning("Please enter a text query to accompany the image.")
|
||||
3
gemini_multimodal_chatbot/requirements.txt
Normal file
3
gemini_multimodal_chatbot/requirements.txt
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
streamlit
|
||||
pillow
|
||||
google-generativeai
|
||||
|
|
@ -8,7 +8,6 @@ from phi.llm.ollama import Ollama
|
|||
st.title("Multi-Agent AI Researcher using Llama-3 🔍🤖")
|
||||
st.caption("This app allows you to research top stories and users on HackerNews and write blogs, reports and social posts.")
|
||||
|
||||
|
||||
# Create instances of the Assistant
|
||||
story_researcher = Assistant(
|
||||
name="HackerNews Story Researcher",
|
||||
|
|
|
|||
Loading…
Reference in a new issue