SenseMakingTool / app.py
Victor Daniel
validation is added to deal with insufficient data
b2af484 verified
raw
history blame
1.87 kB
import gradio as gr
import google.generativeai as genai
# Configure Google Gemini API
genai.configure(api_key="AIzaSyDBGF5y7WqDB0SO7-UO6yjshiEZN3Hpt3g") # Replace with your API key
# Function to get a response from the Google Gemini model
def get_gemini_response(input_text):
model = genai.GenerativeModel('gemini-1.5-flash')
# Input prompt for extracting unarticulated needs and wants
input_prompt = f"""
From the following user story, extract the unarticulated needs and wants.
User story: {input_text}
Needs are the unspoken requirements or desires the person might not have expressed directly.
Wants are the things the person wishes for but didn't explicitly say.
Needs and Wants:
"""
# Generate the content based on text input
response = model.generate_content([input_text, input_prompt])
return response.text
# Enhanced Gradio interface function with input validation
def extract_needs_and_wants(user_story):
# Check if the input story is adequate (e.g., at least 20 characters or more than a few words)
if len(user_story.strip()) < 20 or len(user_story.split()) < 5:
return "Please provide a detailed user story with sufficient content for analysis."
try:
# Process the input if it meets the criteria
return get_gemini_response(user_story)
except Exception as e:
return f"Error: {str(e)}"
# Create the Gradio interface
interface = gr.Interface(
fn=extract_needs_and_wants,
inputs="text",
outputs="text",
title="Unarticulated Needs & Wants Extractor",
description="Enter a detailed user story to extract the unarticulated needs and wants using the Gemini model.",
examples=[["The user often speaks about wanting to improve their health but is hesitant to join a gym."]]
)
# Launch the Gradio app
interface.launch()