rahul2121 commited on
Commit
72bf9a8
·
verified ·
1 Parent(s): 93e4529
Files changed (3) hide show
  1. Dockerfile +16 -0
  2. app.py +42 -0
  3. requirements.txt +3 -0
Dockerfile ADDED
@@ -0,0 +1,16 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Read the doc: https://huggingface.co/docs/hub/spaces-sdks-docker
2
+ # you will also find guides on how best to write your Dockerfile
3
+
4
+ FROM python:3.9
5
+
6
+ RUN useradd -m -u 1000 user
7
+ USER user
8
+ ENV PATH="/home/user/.local/bin:$PATH"
9
+
10
+ WORKDIR /app
11
+
12
+ COPY --chown=user ./requirements.txt requirements.txt
13
+ RUN pip install --no-cache-dir --upgrade -r requirements.txt
14
+
15
+ COPY --chown=user . /app
16
+ CMD ["uvicorn", "app:app", "--host", "0.0.0.0", "--port", "7860"]
app.py ADDED
@@ -0,0 +1,42 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import os
2
+ import requests
3
+ from flask import Flask, request, jsonify
4
+
5
+ app = Flask(__name__)
6
+
7
+ # Load HF API token from environment variable
8
+ HF_TOKEN = os.environ.get("HF_TOKEN")
9
+ if not HF_TOKEN:
10
+ raise Exception("HF_TOKEN is missing. Add it in Space Secrets.")
11
+
12
+ API_URL = "https://api-inference.huggingface.co/models/castorini/t5-base-canard"
13
+ HEADERS = {"Authorization": f"Bearer {HF_TOKEN}"}
14
+
15
+ @app.route("/")
16
+ def home():
17
+ return "CANARD Rewrite API running on HuggingFace Spaces!"
18
+
19
+ @app.route("/rewrite", methods=["POST"])
20
+ def rewrite():
21
+ data = request.get_json()
22
+ queries = data.get("queries")
23
+
24
+ if not isinstance(queries, list):
25
+ return jsonify({"error": "queries must be a list"}), 400
26
+
27
+ results = []
28
+
29
+ for q in queries:
30
+ payload = {"inputs": q}
31
+ r = requests.post(API_URL, headers=HEADERS, json=payload)
32
+ output = r.json()
33
+
34
+ if isinstance(output, list) and len(output) > 0 and "generated_text" in output[0]:
35
+ results.append(output[0]["generated_text"])
36
+ else:
37
+ results.append(f"Error: {output}")
38
+
39
+ return jsonify({"results": results})
40
+
41
+ if __name__ == "__main__":
42
+ app.run(host="0.0.0.0", port=7860)
requirements.txt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ flask
2
+ requests
3
+ gunicorn