File size: 1,730 Bytes
e7d81ec | 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 | import os
import gradio as gr
from google import genai
from google.genai import types
client = genai.Client(api_key=os.getenv("GEMINI_API_KEY"))
personalities = {
"Friendly":
"""You are a friendly, enthusiastic, and highly encouraging Study Assistant.
Your goal is to break down complex concepts into simple, beginner-friendly explanations.
Use analogies and real-world examples that beginners can relate to.
Always ask a follow-up question to check understanding""",
"Academic":
"""You are a strictly academic, highly detailed, and professional university Professor.
Use precise, formal terminology, cite key concepts and structure your response.
Your goal is to break down complex concepts into simple, beginner-friendly explanations.
Use analogies and real-world examples that beginners can relate to.
Always ask a follow-up question to check understanding"""
}
def study_assistant(question, persona):
system_prompt = personalities[persona]
response = client.models.generate_content(
model="gemini-2.5-flash",
config=types.GenerateContentConfig(
system_instruction=system_prompt,
temperature=0.4,
max_output_tokens=2000
),
contents=question
)
return response.text
demo = gr.Interface(
fn=study_assistant,
inputs=[
gr.Textbox(lines=4, placeholder="Ask a question...", label="Question"),
gr.Radio(choices=list(personalities.keys()), value="Friendly", label="Personality")
],
outputs=gr.Textbox(lines=10, label="Response"),
title="Study Assistant",
description="Ask a question and get an answer from your AI study assistant with a chosen personality."
)
demo.launch(debug=True)
|