Rudycon's picture
Create app.py
364513c verified
import gradio as gr
import requests
import os
import json
# The model you want to use — you can swap this for another if needed
MODEL_ID = "deepseek-ai/deepseek-coder-1.3b-instruct"
# Hugging Face token (set in your Space's "Variables and secrets")
HF_TOKEN = os.environ.get("HF_TOKEN")
API_URL = f"https://api-inference.huggingface.co/models/{MODEL_ID}"
HEADERS = {"Authorization": f"Bearer {HF_TOKEN}"}
def format_json(json_text):
"""
Takes JSON text, sends it to the model, and returns formatted output.
"""
try:
# Validate JSON first
parsed = json.loads(json_text)
except json.JSONDecodeError:
return "❌ That’s not valid JSON. Please check your brackets and quotes."
# Create the prompt for the AI
prompt = (
"You are a document formatter. "
"Take the following JSON data and turn it into a neat, human-readable layout "
"that could be pasted into Google Docs with headings, bullet points, or tables:\n\n"
f"{json_text}"
)
payload = {"inputs": prompt}
# Send to Hugging Face Inference API
response = requests.post(API_URL, headers=HEADERS, json=payload)
try:
data = response.json()
if isinstance(data, list) and "generated_text" in data[0]:
return data[0]["generated_text"]
else:
return str(data)
except Exception as e:
return f"Error parsing model response: {e}"
# Gradio interface
demo = gr.Interface(
fn=format_json,
inputs=gr.Textbox(lines=12, placeholder="Paste your JSON here..."),
outputs="text",
title="DeepSeek JSON → Docs Formatter",
description="Paste JSON, get back neatly formatted text for Google Docs."
)
if __name__ == "__main__":
demo.launch()