ContentAgent / ContentGradio.py
yetessam's picture
Update ContentGradio.py
9424140 verified
raw
history blame
3.67 kB
import gradio as gr
import os
# Function for Main content (takes user input and returns a response)
def process_input(user_input):
return f"You entered: {user_input}"
# Function to generate predefined examples
def get_example():
# Define the path to the 'examples' directory
example_root = os.path.join(os.path.dirname(__file__), "examples")
# Get list of all example text file paths
example_files = [os.path.join(example_root, _) for _ in os.listdir(example_root) if _.endswith("txt")]
# Read the content of each file (assuming they're plain text files)
examples = []
for file_path in example_files:
example_content = ""
with open(file_path, "r", encoding="utf-8", errors="ignore") as f:
example_content = f.read()
examples.append(example_content) # Append the content to the list
return examples
# Create the header section
def create_header():
agent_header = """
# Content Agent
"""
with gr.Row():
gr.Markdown("<div id='header'>" + agent_header + "</div>")
# Create the user guidance section
def create_user_guidance():
guidance = """
Please enter text below to get started. The AI Agent will try to determine whether language is polite and uses the following classification:
- polite
- somewhat polite
- neutral
- impolite.
App is running `deepseek-ai/DeepSeek-R1-Distill-Qwen-32B` text generation model.
Uses Intel's Polite Guard NLP library.
Compute is GCP · Nvidia L4 · 4x GPUs · 96 GB
"""
with gr.Row():
gr.Markdown("<div id='user-guidance'>" + guidance+ "</div>")
# Create the main content section
def create_main():
with gr.Row():
with gr.Column():
user_input = gr.Textbox(label="Your Input", placeholder="Enter something here...")
submit_button = gr.Button("Submit")
output = gr.Textbox(label="Content feedback", interactive=False, lines=10, max_lines=20 )
# Define the function to be called when the button is clicked or Enter is pressed
submit_button.click(process_input, inputs=user_input, outputs=output)
user_input.submit(process_input, inputs=user_input, outputs=output)
return user_input, output # Return both input and output components
# Create the examples section
def create_examples(user_input):
# Fetch examples by calling get_example() here
examples = get_example()
example_radio = gr.Radio(choices=examples, label="Try one of these examples:")
# When an example is selected, populate the input field
example_radio.change(fn=lambda example: example, inputs=example_radio, outputs=user_input)
# Create the footer section
def create_footer():
with gr.Row():
gr.Markdown("<div id='footer'>Thanks for trying it out!</div>")
# Main function to bring all sections together
def ContentAgentUI():
# Set the path to the external CSS file
css_path = os.path.join(os.getcwd(), "ui", "styles.css")
with gr.Blocks(css=css_path) as ca_gui:
create_header() # Create the header
create_user_guidance() # Create user guidance section
user_input, output = create_main() # Create the main section (returns the input/output components)
create_examples(user_input) # Create the examples section
create_footer() # Create the footer section
# Launch the Gradio interface
ca_gui.launch()