Spaces:
Runtime error
Runtime error
app is in beta and ready for testing
Browse files- app.py +13 -32
- gpt_summary.py +1 -1
- main.py +9 -1
app.py
CHANGED
@@ -1,13 +1,10 @@
|
|
1 |
-
from fastapi import FastAPI, Request
|
2 |
from fastapi.responses import RedirectResponse
|
3 |
from fastapi.responses import HTMLResponse
|
4 |
from fastapi.staticfiles import StaticFiles
|
5 |
from google_manager.constants import SCOPES
|
6 |
-
from google_manager.auth import get_oauth_url
|
7 |
from pages.auth_page import html_content
|
8 |
import google_auth_oauthlib.flow
|
9 |
-
|
10 |
-
# from fastapi_sessions import SessionMiddleware, get_session
|
11 |
from starlette.middleware.sessions import SessionMiddleware
|
12 |
|
13 |
import gradio as gr
|
@@ -20,46 +17,36 @@ app.mount("/assets", StaticFiles(directory="assets"), name="assets")
|
|
20 |
|
21 |
|
22 |
@app.get("/", response_class=HTMLResponse)
|
23 |
-
async def home():
|
24 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
25 |
|
26 |
|
27 |
@app.get("/auth")
|
28 |
async def integreate_google(request: Request):
|
29 |
-
# url = get_oauth_url(SCOPES, "http://127.0.0.1:8000/auth_callback")
|
30 |
flow = google_auth_oauthlib.flow.Flow.from_client_secrets_file(
|
31 |
"credentials.json", scopes=SCOPES
|
32 |
)
|
33 |
|
34 |
-
# flow.redirect_uri = "http://127.0.0.1:8000/gradio/?__theme=dark"
|
35 |
-
# flow.redirect_uri = app.url_path_for(redirect_url)
|
36 |
flow.redirect_uri = "http://127.0.0.1:8000/auth_callback"
|
37 |
|
38 |
-
# Generate URL for request to Google's OAuth 2.0 server.
|
39 |
-
# Use kwargs to set optional request parameters.
|
40 |
authorization_url, state = flow.authorization_url(
|
41 |
-
# Enable offline access so that you can refresh an access token without
|
42 |
-
# re-prompting the user for permission. Recommended for web server apps.
|
43 |
access_type="offline",
|
44 |
-
# Enable incremental authorization. Recommended as a best practice.
|
45 |
include_granted_scopes="true",
|
46 |
)
|
47 |
request.session["state"] = state
|
48 |
-
print("authorization_url")
|
49 |
-
print(authorization_url)
|
50 |
return RedirectResponse(url=authorization_url)
|
51 |
|
52 |
|
53 |
@app.get("/auth_callback")
|
54 |
async def auth_callback(request: Request):
|
55 |
-
# url = get_oauth_url(SCOPES)
|
56 |
-
print("request")
|
57 |
-
# print(request["code"])
|
58 |
-
# return {"callback": "here"}
|
59 |
-
|
60 |
-
# Specify the state when creating the flow in the callback so that it can
|
61 |
-
# verified in the authorization server response.
|
62 |
-
# if False:
|
63 |
state = request.session["state"]
|
64 |
|
65 |
flow = google_auth_oauthlib.flow.Flow.from_client_secrets_file(
|
@@ -71,15 +58,9 @@ async def auth_callback(request: Request):
|
|
71 |
authorization_response = str(request.url)
|
72 |
|
73 |
flow.fetch_token(authorization_response=authorization_response)
|
74 |
-
if False:
|
75 |
-
# flow.fetch_token(authorization_response=authorization_response)
|
76 |
-
|
77 |
-
# Store credentials in the session.
|
78 |
-
# ACTION ITEM: In a production app, you likely want to save these
|
79 |
-
# credentials in a persistent database instead.
|
80 |
-
credentials = flow.credentials
|
81 |
-
request.session["credentials"] = credentials_to_dict(credentials)
|
82 |
|
|
|
|
|
83 |
return RedirectResponse("/gradio")
|
84 |
|
85 |
|
|
|
1 |
+
from fastapi import FastAPI, Request
|
2 |
from fastapi.responses import RedirectResponse
|
3 |
from fastapi.responses import HTMLResponse
|
4 |
from fastapi.staticfiles import StaticFiles
|
5 |
from google_manager.constants import SCOPES
|
|
|
6 |
from pages.auth_page import html_content
|
7 |
import google_auth_oauthlib.flow
|
|
|
|
|
8 |
from starlette.middleware.sessions import SessionMiddleware
|
9 |
|
10 |
import gradio as gr
|
|
|
17 |
|
18 |
|
19 |
@app.get("/", response_class=HTMLResponse)
|
20 |
+
async def home(request: Request):
|
21 |
+
print("request session")
|
22 |
+
print(request.session)
|
23 |
+
state = request.session.get("state", None)
|
24 |
+
print("state")
|
25 |
+
print(state)
|
26 |
+
if state:
|
27 |
+
return RedirectResponse("/gradio")
|
28 |
+
else:
|
29 |
+
return HTMLResponse(content=html_content, status_code=200)
|
30 |
|
31 |
|
32 |
@app.get("/auth")
|
33 |
async def integreate_google(request: Request):
|
|
|
34 |
flow = google_auth_oauthlib.flow.Flow.from_client_secrets_file(
|
35 |
"credentials.json", scopes=SCOPES
|
36 |
)
|
37 |
|
|
|
|
|
38 |
flow.redirect_uri = "http://127.0.0.1:8000/auth_callback"
|
39 |
|
|
|
|
|
40 |
authorization_url, state = flow.authorization_url(
|
|
|
|
|
41 |
access_type="offline",
|
|
|
42 |
include_granted_scopes="true",
|
43 |
)
|
44 |
request.session["state"] = state
|
|
|
|
|
45 |
return RedirectResponse(url=authorization_url)
|
46 |
|
47 |
|
48 |
@app.get("/auth_callback")
|
49 |
async def auth_callback(request: Request):
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
50 |
state = request.session["state"]
|
51 |
|
52 |
flow = google_auth_oauthlib.flow.Flow.from_client_secrets_file(
|
|
|
58 |
authorization_response = str(request.url)
|
59 |
|
60 |
flow.fetch_token(authorization_response=authorization_response)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
61 |
|
62 |
+
credentials = flow.credentials
|
63 |
+
request.session["credentials"] = credentials_to_dict(credentials)
|
64 |
return RedirectResponse("/gradio")
|
65 |
|
66 |
|
gpt_summary.py
CHANGED
@@ -64,7 +64,7 @@ user:
|
|
64 |
summary:
|
65 |
{answer}
|
66 |
"""
|
67 |
-
Fassade.upload_to_drive(doc_content)
|
68 |
|
69 |
history.append((transcription, answer))
|
70 |
response = history
|
|
|
64 |
summary:
|
65 |
{answer}
|
66 |
"""
|
67 |
+
# Fassade.upload_to_drive(doc_content)
|
68 |
|
69 |
history.append((transcription, answer))
|
70 |
response = history
|
main.py
CHANGED
@@ -1,6 +1,14 @@
|
|
1 |
import uvicorn
|
2 |
from pathlib import Path
|
|
|
|
|
|
|
|
|
3 |
|
4 |
|
5 |
if __name__ == "__main__":
|
6 |
-
uvicorn.run(
|
|
|
|
|
|
|
|
|
|
1 |
import uvicorn
|
2 |
from pathlib import Path
|
3 |
+
import os
|
4 |
+
|
5 |
+
os.environ["OAUTHLIB_INSECURE_TRANSPORT"] = "1"
|
6 |
+
os.environ["OAUTHLIB_RELAX_TOKEN_SCOPE"] = "1"
|
7 |
|
8 |
|
9 |
if __name__ == "__main__":
|
10 |
+
uvicorn.run(
|
11 |
+
f"app:app",
|
12 |
+
port=8000,
|
13 |
+
reload=True,
|
14 |
+
)
|