Spaces:
Sleeping
Sleeping
File size: 4,678 Bytes
cfcf9e6 39d67a5 3b1501a 87524cd 93076d0 87524cd 8cc3a3b 87524cd 93076d0 39d67a5 87524cd 8cc3a3b 8a0ba03 87524cd 39d67a5 87524cd 39d67a5 87524cd 93076d0 87524cd 8a0ba03 93076d0 39d67a5 87524cd 39d67a5 87524cd 8cc3a3b 87524cd 93076d0 39d67a5 3b1501a 93076d0 87524cd 8cc3a3b 93076d0 87524cd 8cc3a3b bbb4028 87524cd bbb4028 87524cd 93076d0 bbb4028 93076d0 8cc3a3b 9a4f681 8cc3a3b cfcf9e6 87524cd 9a4f681 87524cd 39d67a5 93076d0 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 |
import gradio as gr
import os
import requests
# --------------------------
# Configuration
# --------------------------
HF_ENDPOINT_URL = "https://dqptyla9qxd15452.us-east-1.aws.endpoints.huggingface.cloud"
HF_TOKEN = os.environ.get("HF_TOKEN")
headers = {
"Authorization": f"Bearer {HF_TOKEN}",
"Content-Type": "application/json"
}
# --------------------------
# Function to Call Endpoint
# --------------------------
def generate_text(prompt, max_length=150, temperature=0.7):
payload = {
"inputs": prompt,
"parameters": {
"max_new_tokens": max_length,
"temperature": temperature,
"top_k": 50,
"top_p": 0.95,
"repetition_penalty": 1.5
}
}
try:
response = requests.post(HF_ENDPOINT_URL, headers=headers, json=payload)
if response.status_code == 200:
return response.json()[0]["generated_text"]
elif response.status_code == 404:
return "❌ Endpoint not found. Please check your HF_ENDPOINT_URL."
elif response.status_code == 403:
return "❌ Forbidden: Check your HF_TOKEN permissions."
elif response.status_code == 503:
return "❌ Service Unavailable: The endpoint may be starting up. Please wait and try again."
else:
return f"❌ Error {response.status_code}: {response.text}"
except Exception as e:
return f"❌ Failed to connect to endpoint: {str(e)}"
# --------------------------
# Gradio UI
# --------------------------
with gr.Blocks(title="Healthelic Burmese LLM (Hosted Inference Endpoint)") as demo:
gr.Markdown("## 🧠 Healthelic Burmese LLM")
gr.Markdown("This app connects to a Hugging Face Inference Endpoint to generate Burmese language text.\n\nEnter a prompt in Burmese, adjust settings, and click 'Generate Text'.")
with gr.Row():
with gr.Column(scale=3):
prompt = gr.Textbox(
lines=5,
placeholder="Enter your Burmese text here...",
label="Input Prompt"
)
with gr.Column(scale=1):
max_length = gr.Slider(
minimum=50,
maximum=500,
value=150,
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 Text")
output = gr.Textbox(lines=10, label="Generated Output")
generate_btn.click(
fn=generate_text,
inputs=[prompt, max_length, temperature],
outputs=output
)
with gr.Accordion("📌 Example Prompts", open=False):
gr.Markdown("Click on a prompt below to try it out:")
examples = [
["မင်္ဂလာပါ။ ကျွန်တော်က ကိုအောင်ပါ။ ရန်ကုန်မှာနေတယ်။ ဆရာလုပ်ပါတယ်။", 150, 0.7],
["မြန်မာနိုင်ငံမှာ မိုးရာသီမှာ မိုးဘယ်လောက်ကျလဲ။", 150, 0.6],
["အောင်မြင်တဲ့ကျောင်းသူတစ်ယောက်ဖြစ်ဖို့ ဘယ်လိုလေ့ကျင့်ရမလဲ။", 200, 0.8],
["မြန်မာ့ယဉ်ကျေးမှုအကြောင်း ပြောပြပါ။", 150, 0.7],
["သင်တောင်ကြီးသွားဖူးလား။ ဘယ်မှာသွားဖူးလဲ။", 150, 0.6]
]
for idx, ex in enumerate(examples):
example_btn = gr.Button(f"Example {idx+1}")
example_btn.click(
lambda e=ex: (e[0], e[1], e[2]),
inputs=[],
outputs=[prompt, max_length, temperature]
).then(
fn=generate_text,
inputs=[prompt, max_length, temperature],
outputs=output
)
gr.Markdown("""
---
### ℹ️ Troubleshooting
- If the app says "❌ Endpoint not found", double-check your `HF_ENDPOINT_URL`.
- If the model takes a few seconds to respond, it may be waking up from idle.
- Ensure your Hugging Face token is added as `HF_TOKEN` under **Settings → Secrets**.
""")
# --------------------------
# Launch the Space
# --------------------------
demo.launch(
show_error=True,
server_name="0.0.0.0",
share=False
)
|