Rahatara's picture
Update app.py
b1a4795 verified
raw
history blame
2.86 kB
import os
import google.generativeai as genai
import gradio as gr
from PIL import Image
import moviepy.editor as mp
from google.generativeai.types import HarmBlockThreshold, HarmCategory
# Configure Google API Key and model
GOOGLE_API_KEY = os.environ.get("GOOGLE_API_KEY")
genai.configure(api_key=GOOGLE_API_KEY)
MODEL_ID = "gemini-1.5-pro-002"
model = GenerativeModel(MODEL_ID)
example_model = GenerativeModel(
MODEL_ID,
system_instruction=[
"You are an advocate against gender-based violence.",
"Analyze the content for signs of gender discrimination and provide actionable advice."
],
)
# Set model parameters
generation_config = GenerationConfig(
temperature=0.9,
top_p=1.0,
top_k=32,
candidate_count=1,
max_output_tokens=8192,
)
# Safety and instruction settings
safety_settings = {
HarmCategory.HARM_CATEGORY_HARASSMENT: HarmBlockThreshold.BLOCK_LOW_AND_ABOVE,
HarmCategory.HARM_CATEGORY_HATE_SPEECH: HarmBlockThreshold.BLOCK_LOW_AND_ABOVE,
HarmCategory.HARM_CATEGORY_SEXUALLY_EXPLICIT: HarmBlockThreshold.BLOCK_LOW_AND_ABOVE,
HarmCategory.HARM_CATEGORY_DANGEROUS_CONTENT: HarmBlockThreshold.BLOCK_LOW_AND_ABOVE,
}
prompt = """
Analyze this text for any instances of gender-based discrimination and provide tips
"""
# Set contents to send to the model
contents = [prompt]
# Prompt the model to generate content
response = example_model.generate_content(
contents,
generation_config=generation_config,
safety_settings=safety_settings,
)
# Function to analyze text
def analyze_text(text):
prompt = f"Analyze this text for any instances of gender-based discrimination and provide tips{text}"
response
return response.text if response else "No response generated."
# Function to analyze images
def analyze_image(image):
image = image.convert("RGB") # Convert image to RGB
prompt = "Analyze this image for any instances of gender-based discrimination and provide tips."
generation_config = genai.types.GenerationConfig(
temperature=0.5,
max_output_tokens=300,
stop_sequences=["\n"],
top_k=40,
top_p=0.9,
system_instructions=system_instructions,
safety_settings=safety_settings
)
response = model.generate_content([prompt, image], generation_config=generation_config)
return response.text if response else "No response generated."
# Gradio interface setup
with gr.Blocks() as app:
with gr.Tab("Text Analysis"):
text_input = gr.Textbox(label="Enter Text", placeholder="Type here...", lines=4)
analyze_text_btn = gr.Button("Analyze Text")
text_output = gr.Textbox(label="Analysis Output", lines=6)
analyze_text_btn.click(
fn=analyze_text,
inputs=text_input,
outputs=text_output
)
app.launch()