File size: 2,942 Bytes
29ffd49
 
 
 
b25d23d
dd51152
29ffd49
b25d23d
953b1da
b25d23d
b1a4795
0563efd
b1a4795
aab427a
b1a4795
 
 
 
 
 
 
 
a756cb9
b1a4795
 
 
 
 
 
b25d23d
dd51152
 
 
 
 
 
 
3e18d30
dd51152
 
a756cb9
9c38976
73d5fa3
 
 
 
dd51152
a756cb9
 
21ac5a1
a756cb9
 
 
 
 
 
21ac5a1
dd51152
a756cb9
b25d23d
dd51152
 
 
b1a4795
dd51152
 
 
 
 
a756cb9
b25d23d
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
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 = genai.GenerativeModel(MODEL_ID)

example_model = genai.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 = genai.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,
}

# Function to analyze text
def analyze_text(text):
    prompt = f"Analyze this text for any instances of gender-based discrimination and provide tips: {text}"
    contents=[prompt]
    response = example_model.generate_content(
    contents,
    generation_config=generation_config,
    safety_settings=safety_settings,)
    return response.text if response else "No response generated."

# Example scenarios
example_scenarios = [
    ("During a team meeting, whenever a female colleague tried to express her opinion, she was often interrupted or talked over by male colleagues."),
    ("The feedback given to female employees often focuses more on their demeanor and less on their actual accomplishments."),
    ("Male employees are more frequently considered for promotions and challenging projects, even when female employees have similar or superior qualifications."),
    ("During a hiring panel, female candidates were often asked about their personal life, family plans, and how they would balance home and work."),
    ("There are significant wage discrepancies between male and female employees who hold the same position and possess comparable experience."),
    ("Some male colleagues often make inappropriate jokes or comments about female employees' appearances and attire."),
]

# 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()