GenderInclusive / app.py
Unit4IAI's picture
Upload app.py
c942562 verified
Raw History Blame Contribute Delete
2.17 kB
# ==============================
# app.py β€” Gradio UI Entry Point
# ==============================
from dotenv import load_dotenv
load_dotenv(dotenv_path=".env", override=True)
import os
import gradio as gr
USERNAME = os.environ.get("APP_USERNAME")
PASSWORD = os.environ.get("APP_PASSWORD")
# --- Sanity check (safe to remove later) ---
print("OPENAI_API_KEY exists:", bool(os.getenv("OPENAI_API_KEY")))
from inclusive_writer.run_pipeline import generate_inclusive_text
DESCRIPTION = """
### 🌍 Gender-Inclusive Writing Assistant
Developed using **CrewAI + RAG-based Inclusive Glossary**.
"""
def run_inclusive_writer(user_input: str):
if not user_input or not user_input.strip():
return "", "", "⚠️ Please enter some text."
try:
result = generate_inclusive_text(user_input.strip())
return (
result["analysis"],
result["guidance"],
result["inclusive_output"]
)
except Exception as e:
return "", "", f"❌ Error: {str(e)}"
with gr.Blocks() as demo:
gr.Markdown("# ✍️ Inclusive Writing Assistant")
gr.Markdown(DESCRIPTION)
input_text = gr.Textbox(
label="Input Text",
placeholder="Enter your text here...",
lines=5
)
submit_btn = gr.Button("Generate Inclusive Version")
with gr.Accordion("🧠 Analysis (Bias & Intent Detection)", open=False):
analysis_box = gr.Textbox(lines=8, label="Analysis")
with gr.Accordion("πŸ“Œ Guidance (Inclusion Strategy)", open=False):
guidance_box = gr.Textbox(lines=8, label="Guidance")
gr.Markdown("### βœ… Inclusive & Professional Output")
output_box = gr.Textbox(lines=10, label="Inclusive Output")
submit_btn.click(
fn=run_inclusive_writer,
inputs=input_text,
outputs=[analysis_box, guidance_box, output_box]
)
# app = demo.launch(auth=(USERNAME, PASSWORD))
if __name__ == "__main__":
port = int(os.getenv("PORT", 7860))
demo.launch(
auth=(USERNAME, PASSWORD),
server_name="0.0.0.0",
server_port=port
)