Compare commits

..

3 Commits

Author SHA1 Message Date
ca99215ac7 add server log 2023-04-17 23:28:00 +08:00
b7ba1cf4c1 delete chat history when deleting account 2023-04-17 22:55:37 +08:00
a4e718067d update requirements.txt 2023-04-17 22:49:08 +08:00
4 changed files with 40 additions and 2 deletions

View File

@ -10,6 +10,10 @@ app:
SQLALCHEMY_DATABASE_URI: sqlite:///sqlite.db
# SQLALCHEMY_DATABASE_URI: mysql://username:password@server/db
# LOGGING_LEVEL: CRITICAL | FATAL | ERROR | WARN | WARNING | INFO | DEBUG | NOTSET
LOGGING_LEVEL: INFO
network:
PROXY: http://127.0.0.1:7890

View File

@ -1,7 +1,10 @@
from flask import Flask
from flask import Flask, request
from flask_sqlalchemy import SQLAlchemy
from flask_login import LoginManager
import yaml
import logging
import time
import traceback
# init SQLAlchemy so we can use it later in our models
db = SQLAlchemy()
@ -19,6 +22,7 @@ def create_app():
app.config['OPENAI_API_KEY'] = conf['openai']['API_KEY']
app.config['OPENAI_MODEL_NAME'] = conf['openai']['MODEL_NAME']
app.config['OPENAI_PROMPT'] = conf['openai']['PROMPT']
app.config['LOGGING_LEVEL'] = conf['app']['LOGGING_LEVEL']
db.init_app(app)
login_manager = LoginManager()
@ -48,3 +52,29 @@ def create_app():
app = create_app()
logger = logging.getLogger('waitress')
logger.setLevel(app.config['LOGGING_LEVEL'])
@app.before_request
def before_request():
timestamp = time.strftime('[%Y-%b-%d %H:%M]')
logger.info('%s > %s %s %s %s', timestamp, request.remote_addr,
request.method, request.scheme, request.full_path)
@app.after_request
def after_request(response):
timestamp = time.strftime('[%Y-%b-%d %H:%M]')
logger.info('%s < %s %s %s %s %s', timestamp, request.remote_addr,
request.method, request.scheme, request.full_path, response.status)
return response
@app.errorhandler(Exception)
def exceptions(e):
tb = traceback.format_exc()
timestamp = time.strftime('[%Y-%b-%d %H:%M]')
logger.error('%s %s %s %s %s 5xx INTERNAL SERVER ERROR\n%s', timestamp,
request.remote_addr, request.method, request.scheme, request.full_path, tb)
return e.status_code

View File

@ -2,7 +2,7 @@ from flask_login import login_user, logout_user
from flask import Blueprint, render_template, redirect, url_for, request, flash
from werkzeug.security import generate_password_hash, check_password_hash
from flask_login import login_required, current_user, login_manager
from .models import User
from .models import User, Conversation
from . import db
import time
@ -119,6 +119,9 @@ def manage_post():
account = User.query.filter_by(
id=id, email=email, name=name, role=role, isActivated=isActivated).first()
if account:
db.session.query(Conversation).filter(
Conversation.userid == id).delete()
db.session.commit()
if db.session.query(User).filter(User.id == id).delete() and not db.session.commit():
time.sleep(0.05)
return "success"

View File

@ -2,5 +2,6 @@ Flask==2.2.3
Flask_Login==0.6.2
flask_sqlalchemy==3.0.3
openai==0.27.2
PyYAML==6.0
SQLAlchemy==2.0.7
Werkzeug==2.2.3