Learner / app.py
Sahil
Update app.py
8e373fa verified
from flask import Flask, request, jsonify, send_file
from flask_cors import CORS
from datasets import Dataset
from huggingface_hub import HfApi
import os, json
app = Flask(__name__)
CORS(app)
DATASET_NAME = "sahil5112/ContinuumGPT-Dataset" # your dataset name
MAX_ENTRIES = 50
@app.route("/")
def index():
return send_file("index.html")
@app.route("/save", methods=["POST"])
def save():
data = request.get_json()
query = data.get("prompt")
response = data.get("response")
if not query or not response:
return jsonify({"error": "Missing data"}), 400
os.makedirs("data", exist_ok=True)
path = "data/memory.json"
if not os.path.exists(path):
with open(path, "w") as f: json.dump([], f)
with open(path, "r+") as f:
memory = json.load(f)
memory.append({
"query": query,
"response": response,
"summary": summarize(query, response),
"archived": False,
"level": 1
})
# archive older ones if exceeding limit
if len(memory) > MAX_ENTRIES:
archive_old(memory)
f.seek(0)
json.dump(memory, f, indent=2)
hf_token = os.environ.get("HF_TOKEN")
if hf_token:
try:
api = HfApi(token=hf_token)
try:
api.create_repo(repo_id=DATASET_NAME, repo_type="dataset")
except Exception:
pass
ds = Dataset.from_list(memory)
ds.push_to_hub(DATASET_NAME, token=hf_token)
except Exception as e:
print("HF push failed:", e)
return jsonify({"status": "saved"})
def summarize(q, r):
return f"{q[:40]}{r[:100]}..."
def archive_old(memory):
fresh = [m for m in memory if m["level"] == 1]
if len(fresh) > MAX_ENTRIES:
for m in fresh[:-MAX_ENTRIES]:
m["archived"] = True
m["level"] = 2
m["summary"] = summarize(m["query"], m["response"])
return memory
if __name__ == "__main__":
app.run(host="0.0.0.0", port=7860)