radius / app.py
Batnini's picture
Update app.py
07a1c4f verified
import gradio as gr
from tools.arabic_generator import ArabicTextGenerator
from tools.tool_agent import ToolCallingAgent
# Initialize models
text_gen = ArabicTextGenerator()
tool_agent = ToolCallingAgent()
TOOLS = [
{
"name": "generate_text",
"description": "Generate Arabic text",
"parameters": {
"prompt": {"type": "string"},
"length": {"type": "integer", "max": 150}
}
}
]
def format_output(result):
return str(result)
with gr.Blocks(title="الأدوات العربية") as app:
# Tab 1: Arabic Generator
with gr.Tab("🖊️ مولد النصوص"):
with gr.Row():
with gr.Column():
arabic_input = gr.Textbox(label="النص الأولي")
length_slider = gr.Slider(50, 300, value=100, label="طول النص")
generate_btn = gr.Button("توليد")
arabic_output = gr.Textbox(label="النص المولد", lines=10)
generate_btn.click(
text_gen.generate,
inputs=[arabic_input, length_slider],
outputs=arabic_output
)
# Tab 2: Tool Agent (only text generation now)
with gr.Tab("🛠️ مساعد ذكي"):
with gr.Row():
with gr.Column():
tool_input = gr.Textbox(label="اكتب طلبك هنا")
run_btn = gr.Button("تشغيل")
tool_output = gr.Textbox(label="النتيجة", lines=10)
def process_tool(input_text):
try:
tool_call = tool_agent.generate(input_text, TOOLS)
if tool_call["tool_name"] == "generate_text":
return text_gen.generate(
tool_call["parameters"]["prompt"],
tool_call["parameters"]["length"]
)
return "لم يتم التعرف على الأداة"
except Exception as e:
return f"خطأ: {str(e)}"
run_btn.click(
lambda x: format_output(process_tool(x)),
inputs=tool_input,
outputs=tool_output
)
if __name__ == "__main__":
app.launch()