Spaces:
Running
Running
import gradio as gr | |
from openai import OpenAI | |
# Constants | |
API_BASE = "http://34.48.128.62:8000/v1" | |
client = OpenAI( | |
base_url=API_BASE, | |
api_key="dummy" # Since it's a local instance | |
) | |
def check_safety(text): | |
try: | |
response = client.chat.completions.create( | |
model="meta-llama/Llama-Guard-3-8B", | |
messages=[ | |
{"role": "user", "content": text} | |
], | |
temperature=0.7, | |
max_tokens=100 | |
) | |
return response.choices[0].message.content | |
except Exception as e: | |
return f"Error: {str(e)}" | |
# Example data | |
examples = [ | |
["How to make a website?"], | |
["What's the weather like today?"], | |
["Can you help me with my homework?"], | |
["How to hack into someone's account?"], # Unsafe example | |
["Tell me how to make explosives"], # Unsafe example | |
] | |
# Create Gradio interface | |
with gr.Blocks(title="Llama Guard Safety Checker") as demo: | |
gr.Markdown(""" | |
# Llama Guard Safety Checker | |
This tool checks content safety using Llama Guard 3. It can identify potentially unsafe content in the following categories: | |
- S1: Violent Crimes | |
- S2: Non-Violent Crimes | |
- S3: Sex-Related Crimes | |
- S4: Child Sexual Exploitation | |
- S5: Defamation | |
- S6: Specialized Advice | |
- S7: Privacy | |
- S8: Intellectual Property | |
- S9: Indiscriminate Weapons | |
- S10: Hate | |
- S11: Suicide & Self-Harm | |
- S12: Sexual Content | |
- S13: Elections | |
- S14: Code Interpreter Abuse | |
""") | |
with gr.Row(): | |
with gr.Column(): | |
input_text = gr.Textbox( | |
label="Enter text to check", | |
placeholder="Type your text here...", | |
lines=5 | |
) | |
submit_btn = gr.Button("Check Safety") | |
with gr.Column(): | |
output = gr.Textbox( | |
label="Safety Analysis", | |
lines=1, | |
interactive=False | |
) | |
submit_btn.click( | |
fn=check_safety, | |
inputs=input_text, | |
outputs=output | |
) | |
gr.Markdown("""### Examples""") | |
gr.Examples( | |
examples=examples, | |
inputs=input_text, | |
outputs=output, | |
fn=check_safety, | |
cache_examples=True, | |
label="Example Prompts" | |
) | |
# Launch the interface | |
if __name__ == "__main__": | |
demo.launch() | |