Setting up the chat client functionality using SocketIO - Start

This commit is contained in:
Josako
2024-05-15 14:37:21 +02:00
parent 6f13d72261
commit ea23e8d327
10 changed files with 165 additions and 2 deletions

33
eveai_chat/__init__.py Normal file
View File

@@ -0,0 +1,33 @@
import logging
import logging.config
from flask import Flask
from flask_socketio import emit
from common.extensions import db, socketio
from config.logging_config import LOGGING
def create_app(config_file=None):
app = Flask(__name__)
if config_file is None:
app.config.from_object('config.config.DevConfig')
else:
app.config.from_object(config_file)
logging.config.dictConfig(LOGGING)
register_extensions(app)
return app
def register_extensions(app):
db.init_app(app)
socketio.init_app(app,
message_queue=app.config.get('SOCKETIO_MESSAGE_QUEUE'),
cors_allowed_origins=app.config.get('SOCKETIO_CORS_ALLOWED_ORIGINS'),
async_mode=app.config.get('SOCKETIO_ASYNC_MODE'),
logger=app.config.get('SOCKETIO_LOGGER'),
engineio_logger=app.config.get('SOCKETIO_ENGINEIO_LOGGER'),
)

View File

@@ -0,0 +1,34 @@
# from . import user_bp
import uuid
from datetime import datetime as dt, timezone as tz
from flask import request, redirect, url_for, flash, render_template, Blueprint, session, current_app
from flask_security import hash_password, roles_required, roles_accepted
from sqlalchemy.exc import SQLAlchemyError
from common.models.user import User, Tenant
from common.models.interaction import ChatSession, Interaction, InteractionEmbedding
from common.models.document import Embedding
from common.extensions import db, socketio
from common.utils.database import Database
chat_bp = Blueprint('chat_bp', __name__, url_prefix='/chat')
@chat_bp.route('/', methods=['GET', 'POST'])
def chat():
return render_template('chat.html')
@chat.record_once
def on_register(state):
# TODO: write initialisation code when the blueprint is registered (only once)
# socketio.init_app(state.app)
pass
@socketio.on('message', namespace='/chat')
def handle_message(message):
# TODO: write message handling code to actually realise chat
# print('Received message:', message)
# socketio.emit('response', {'data': message}, namespace='/chat')
pass