loimaroc / app /routes /chat.py
aymanemalih's picture
Upload 25 files
91ca409 verified
from flask import Blueprint, request, jsonify
from flask_jwt_extended import jwt_required, get_jwt_identity
from app.services.chatbot import ask
from app.models import Question, db
from datetime import datetime
bp = Blueprint('chat', __name__, url_prefix='/chat')
@bp.route('/ask', methods=['POST'])
@jwt_required()
def ask_question():
user_id = str(get_jwt_identity())
data = request.get_json()
question_text = data.get('question')
if not question_text:
return jsonify({'error': 'Missing question'}), 400
question = Question(
user_id=user_id,
content=question_text,
status='pending'
)
db.session.add(question)
db.session.commit()
try:
k = int(data.get("k", 6)) # if k is missing, fallback to 6
results = ask(question_text, k=k)
question.status = 'answered'
except Exception as e:
results = []
question.status = 'error'
question.updated_at = datetime.utcnow()
db.session.commit()
return jsonify({
"question": {
"id": question.id,
"user_id": question.user_id,
"content": question.content,
"date": question.date.isoformat(),
"status": question.status,
"updated_at": question.updated_at.isoformat()
},
"results": results
}), 200