import os | |
import requests | |
import json | |
from io import BytesIO | |
from flask import Flask, jsonify, render_template, request, send_file | |
from flask import Flask, redirect, url_for, session, request, jsonify, render_template | |
from google.oauth2 import id_token | |
from google.auth.transport import requests as grequests | |
import os | |
from modules.inference import infer_t5 | |
from modules.dataset import query_emotion | |
# https://huggingface.co/settings/tokens | |
# https://huggingface.co/spaces/{username}/{space}/settings | |
API_TOKEN = os.getenv("BIG_GAN_TOKEN") | |
CLIENT_ID = "your_google_client_id" | |
CLIENT_SECRET = os.environ.get("GOOGLE_CLIENT_SECRET") | |
app = Flask(__name__) | |
app.secret_key = os.urandom(24) | |
def index(): | |
return render_template("index.html") | |
def login(): | |
return redirect("https://accounts.google.com/o/oauth2/auth?response_type=code&client_id={}&redirect_uri=http://localhost:3000/callback&scope=email%20profile&access_type=offline".format(CLIENT_ID)) | |
# @app.route("/infer_biggan") | |
# def biggan(): | |
# input = request.args.get("input") | |
# output = requests.request( | |
# "POST", | |
# "https://api-inference.huggingface.co/models/osanseviero/BigGAN-deep-128", | |
# headers={"Authorization": f"Bearer {API_TOKEN}"}, | |
# data=json.dumps(input), | |
# ) | |
# return send_file(BytesIO(output.content), mimetype="image/png") | |
# @app.route("/infer_t5") | |
# def t5(): | |
# input = request.args.get("input") | |
# output = infer_t5(input) | |
# return jsonify({"output": output}) | |
# @app.route("/query_emotion") | |
# def emotion(): | |
# start = request.args.get("start") | |
# end = request.args.get("end") | |
# print(start) | |
# print(end) | |
# output = query_emotion(int(start), int(end)) | |
# return jsonify({"output": output}) | |
if __name__ == "__main__": | |
app.run(host="0.0.0.0", port=7860) | |
# @app.route("/callback") | |
# def callback(): | |
# code = request.args.get("code") | |
# token_response = grequests.post("https://oauth2.googleapis.com/token", | |
# data={ | |
# "code": code, | |
# "client_id": CLIENT_ID, | |
# "client_secret": CLIENT_SECRET, | |
# "redirect_uri": "http://localhost:3000/callback", | |
# "grant_type": "authorization_code" | |
# }) | |
# token_data = token_response.json() | |
# access_token = token_data.get("access_token") | |
# id_info = id_token.verify_oauth2_token(token_data.get("id_token"), grequests.Request(), CLIENT_ID) | |
# # Store user information in session | |
# session['user'] = id_info | |
# return redirect(url_for("profile")) | |
# @app.route("/profile") | |
# def profile(): | |
# user = session.get('user') | |
# if user: | |
# return render_template("profile.html", user=user) | |
# else: | |
# return "User not authenticated" | |
# @app.route("/logout") | |
# def logout(): | |
# session.pop('user', None) | |
# return redirect(url_for("index")) | |
# if __name__ == "__main__": | |
# app.run(debug=True) | |