Ai-Descripter / index.html
Patelcoder's picture
Update index.html
9e92d26 verified
Raw
History Blame Contribute Delete
2.66 kB
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>AI Descriptor Agent</title>
<script type="module" crossorigin src="https://gradio-lite-previews.s3.amazonaws.com/PINNED_HF_HUB/dist/lite.js"></script>
<link rel="stylesheet" href="https://gradio-lite-previews.s3.amazonaws.com/PINNED_HF_HUB/dist/lite.css" />
<style>
body {
background-color: #0f172a;
color: #f8fafc;
font-family: 'Inter', system-ui, -apple-system, sans-serif;
margin: 0;
padding: 20px;
}
</style>
</head>
<body>
<gradio-lite theme="dark">
<gradio-requirements>
openai==1.39.0
</gradio-requirements>
<gradio-file name="app.py" entrypoint>
import gradio as gr
from openai import OpenAI
def run_descriptor_agent(openai_key, user_prompt):
if not openai_key:
return "Please enter your OpenAI API Key first!"
try:
# Initialize the OpenAI client inside the browser environment
client = OpenAI(api_key=openai_key)
# Simple agent descriptor call
response = client.chat.completions.create(
model="gpt-4o-mini",
messages=[
{"role": "system", "content": "You are a professional AI Descriptor agent. Provide structured, clear summaries and descriptions based on user requests."},
{"role": "user", "content": user_prompt}
]
)
return response.choices[0].message.content
except Exception as e:
return f"Error: {str(e)}"
# Define the Gradio UI
with gr.Blocks(theme=gr.themes.Soft(primary_hue="blue", secondary_hue="indigo")) as demo:
gr.Markdown("# 🤖 AI Descriptor Agent")
gr.Markdown("This runs entirely in your browser. Your OpenAI key is safe and is not stored anywhere on Hugging Face.")
with gr.Row():
key_input = gr.Textbox(
label="1. Enter your OpenAI API Key",
placeholder="sk-proj-...",
type="password"
)
with gr.Row():
prompt_input = gr.Textbox(
label="2. Ask the Agent anything",
placeholder="Describe what you want me to analyze..."
)
submit_btn = gr.Button("Run Agent", variant="primary")
output_text = gr.Textbox(label="Agent Response", interactive=False)
submit_btn.click(
fn=run_descriptor_agent,
inputs=[key_input, prompt_input],
outputs=output_text
)
demo.launch()
</gradio-file>
</gradio-lite>
</body>
</html>