duroodia's picture
Update app.py
8e403db verified
import os
from dotenv import load_dotenv
import gradio as gr
from agents import Agent, Runner, AsyncOpenAI, OpenAIChatCompletionsModel
from agents.run import RunConfig
import asyncio
# Load environment variables from .env file
load_dotenv()
# Retrieve the Gemini API key from environment variables
gemini_api_key = os.getenv("GEMINI_API_KEY")
# Check if the API key is present; if not, raise an error
if not gemini_api_key:
raise ValueError("GEMINI_API_KEY is not set. Please ensure it is defined in your .env file.")
# Configure the AsyncOpenAI client for Gemini API
external_client = AsyncOpenAI(
api_key=gemini_api_key,
base_url="https://generativelanguage.googleapis.com/v1beta/openai/",
)
# Define the model
model = OpenAIChatCompletionsModel(
model="gemini-2.0-flash",
openai_client=external_client
)
# Configure the run settings
config = RunConfig(
model=model,
model_provider=external_client,
tracing_disabled=True
)
# Define the translation function
async def translate_urdu_to_english(urdu_text):
agent = Agent(
name="Translator",
instructions="You are a Translator, always translate Urdu sentences into English Language.",
model=model
)
result = await Runner.run(agent, urdu_text, run_config=config)
return result.final_output
# Gradio interface function
def gradio_translate(urdu_input):
# Run the async translation function within Gradio
return asyncio.run(translate_urdu_to_english(urdu_input))
# Create Gradio interface
iface = gr.Interface(
fn=gradio_translate,
inputs=gr.Textbox(label="Urdu Input", placeholder="Enter Urdu sentence here..."),
outputs=gr.Textbox(label="English Translation"),
title="Urdu to English Translator",
description="Enter an Urdu sentence to get its English translation using the Gemini API."
)
# Launch the Gradio app
if __name__ == "__main__":
iface.launch()