ZeroDayAi / app.py
shubhamrooter's picture
Update app.py
c7482e7 verified
import gradio as gr
import requests
import os
# Configuration
MODEL_NAME = "0dAI/0dAI-8x7b-0761"
HF_TOKEN = os.environ.get("HF_TOKEN", "")
def query_model(prompt, max_tokens=256, temperature=0.7):
"""Query the model using Hugging Face Inference API"""
# Check if token is available
if not HF_TOKEN:
return "❌ Error: Hugging Face token not found. Please add HF_TOKEN in Space settings → Repository secrets."
try:
API_URL = f"https://api-inference.huggingface.co/models/{MODEL_NAME}"
headers = {"Authorization": f"Bearer {HF_TOKEN}"}
payload = {
"inputs": prompt,
"parameters": {
"max_new_tokens": max_tokens,
"temperature": temperature,
"do_sample": True,
"return_full_text": False
}
}
response = requests.post(API_URL, headers=headers, json=payload)
if response.status_code == 200:
result = response.json()
if isinstance(result, list) and len(result) > 0:
return result[0].get('generated_text', 'No generated text found')
else:
return f"Unexpected response format: {result}"
elif response.status_code == 401:
return "❌ Error: Invalid Hugging Face token. Please check your HF_TOKEN in Space settings."
elif response.status_code == 503:
# Model is loading
return "🔄 Model is loading, please wait 20-30 seconds and try again..."
else:
error_msg = response.json().get('error', 'Unknown error')
return f"❌ API Error ({response.status_code}): {error_msg}"
except Exception as e:
return f"❌ Request failed: {str(e)}"
# Create Gradio interface
with gr.Blocks(title="0dAI 8x7B Model Demo", theme=gr.themes.Soft()) as demo:
gr.Markdown("""
# 🤖 0dAI 8x7B Model Demo
This Space uses the Hugging Face Inference API to run the [0dAI/0dAI-8x7b-0761](https://huggingface.co/0dAI/0dAI-8x7b-0761) model.
**Note:** Make sure you've added your Hugging Face token in Space settings!
""")
with gr.Row():
with gr.Column():
prompt_input = gr.Textbox(
label="Input Prompt",
lines=4,
placeholder="Enter your prompt here...",
value="Explain quantum computing in simple terms:"
)
with gr.Row():
max_tokens = gr.Slider(
minimum=50,
maximum=1024,
value=256,
step=10,
label="Max New Tokens"
)
temperature = gr.Slider(
minimum=0.1,
maximum=1.0,
value=0.7,
step=0.1,
label="Temperature"
)
generate_btn = gr.Button("🚀 Generate", variant="primary")
with gr.Column():
output = gr.Textbox(
label="Generated Text",
lines=8,
show_copy_button=True
)
# Examples
gr.Examples(
examples=[
["Explain quantum computing in simple terms:"],
["Write a short story about a robot learning to paint:"],
["What are the benefits of renewable energy?"],
["How does machine learning work?"],
["Write a Python function to calculate fibonacci sequence:"]
],
inputs=prompt_input,
label="Click any example to try:"
)
# Status information
gr.Markdown("""
### 🔧 Setup Instructions:
1. Get your Hugging Face token from [Settings → Tokens](https://huggingface.co/settings/tokens)
2. Add it to this Space in **Settings → Repository secrets** as `HF_TOKEN`
3. The model may take 20-30 seconds to load on first request
""")
generate_btn.click(
fn=query_model,
inputs=[prompt_input, max_tokens, temperature],
outputs=output
)
if __name__ == "__main__":
demo.launch(server_name="0.0.0.0", server_port=7860)