server / main.py
saraht14's picture
add auth req
17cb536 verified
from flask import Flask, jsonify
app = Flask(__name__)
@app.route("/")
def hello():
return jsonify({"status": "running"})
from flask import Flask, jsonify, request
from datasets import load_dataset, Dataset
from huggingface_hub import hf_hub_download
import requests
import pandas as pd
import os
HF_TOKEN = os.environ.get("HF_TOKEN")
REPO_ID = "saraht14/responses"
@app.route("/leaderboard", methods=["GET"])
def get_leaderboard():
try:
ds = load_dataset(REPO_ID, split="train", token=HF_TOKEN)
df = ds.to_pandas()
df = df.sort_values(by=["Accuracy", "Execution Time (s)"], ascending=[False, True])
return jsonify(df.to_dict(orient="records"))
except Exception as e:
df = pd.DataFrame(columns=HEADERS)
return jsonify(df.to_dict(orient="records"))
HF_CACHE_DIR = "/tmp/hf"
@app.route("/file/<path:filename>", methods=["GET"])
def get_file(filename):
if request.headers.get("Authorization") != f"Bearer {HF_TOKEN}":
return jsonify({"error": "Unauthorized"}), 403
try:
local_path = hf_hub_download(
repo_id="saraht14/metadata",
filename=filename,
repo_type="dataset",
token=HF_TOKEN,
cache_dir=HF_CACHE_DIR
)
with open(local_path, "r") as f:
content = f.read()
return jsonify({
"filename": filename,
"content": content
})
except Exception as e:
return jsonify({"error": f"Failed to fetch file: {str(e)}"}), 500