- RQC output of TRAICIE_SELECTION_SPECIALIST to EveAIDataCapsule

This commit is contained in:
Josako
2025-07-25 04:27:19 +02:00
parent 8a85b4540f
commit ba523a95c5
11 changed files with 338 additions and 5 deletions

View File

@@ -15,7 +15,7 @@ from werkzeug.utils import secure_filename
from common.models.document import Embedding, DocumentVersion, Retriever
from common.models.interaction import (ChatSession, Interaction, InteractionEmbedding, Specialist, SpecialistRetriever,
EveAIAgent, EveAITask, EveAITool, EveAIAsset, SpecialistMagicLink)
EveAIAgent, EveAITask, EveAITool, EveAIAsset, SpecialistMagicLink, EveAIDataCapsule)
from common.extensions import db, cache_manager
from common.models.user import SpecialistMagicLinkTenant
@@ -32,7 +32,8 @@ from .interaction_forms import (SpecialistForm, EditSpecialistForm, EditEveAIAge
SpecialistMagicLinkForm, EditSpecialistMagicLinkForm)
from eveai_app.views.list_views.interaction_list_views import (get_specialists_list_view, get_assets_list_view,
get_magic_links_list_view, get_chat_sessions_list_view)
get_magic_links_list_view, get_chat_sessions_list_view,
get_eveai_data_capsules_list_view)
from eveai_app.views.list_views.list_view_utils import render_list_view
interaction_bp = Blueprint('interaction_bp', __name__, url_prefix='/interaction')
@@ -747,12 +748,42 @@ def handle_specialist_magic_link_selection():
# Routes for Asset Management ---------------------------------------------------------------------
@interaction_bp.route('/eveai_data_capsules', methods=['GET', 'POST'])
@roles_accepted('Super User', 'Partner Admin', 'Tenant Admin')
def eveai_data_capsules():
# Get configuration and render the list view
config = get_eveai_data_capsules_list_view()
return render_list_view('list_view.html', **config)
@interaction_bp.route('/assets', methods=['GET', 'POST'])
def assets():
config = get_assets_list_view()
return render_list_view('list_view.html', **config)
@interaction_bp.route('/handle_data_capsule_selection', methods=['POST'])
@roles_accepted('Super User', 'Partner Admin', 'Tenant Admin')
def handle_data_capsule_selection():
data_capsule_identification = request.form['selected_row']
capsule_id = ast.literal_eval(data_capsule_identification).get('value')
action = request.form['action']
# Get the data capsule
data_capsule = EveAIDataCapsule.query.get_or_404(capsule_id)
match action:
case 'view_data_capsule':
# For now, we'll just redirect to view_data_capsule
return redirect(prefixed_url_for('interaction_bp.view_data_capsule', data_capsule_id=capsule_id))
case 'view_chat_session':
# Redirect to the chat session
return redirect(prefixed_url_for('interaction_bp.view_chat_session', chat_session_id=data_capsule.chat_session_id))
# Default redirect back to the data capsules list
return redirect(prefixed_url_for('interaction_bp.eveai_data_capsules'))
@interaction_bp.route('/handle_asset_selection', methods=['POST'])
def handle_asset_selection():
action = request.form.get('action')
@@ -765,6 +796,20 @@ def handle_asset_selection():
return redirect(prefixed_url_for('interaction_bp.assets'))
@interaction_bp.route('/view_data_capsule/<int:data_capsule_id>', methods=['GET'])
@roles_accepted('Super User', 'Partner Admin', 'Tenant Admin')
def view_data_capsule(data_capsule_id):
# Get the data capsule
data_capsule = EveAIDataCapsule.query.get_or_404(data_capsule_id)
# Get the related chat session
chat_session = ChatSession.query.get_or_404(data_capsule.chat_session_id)
return render_template('interaction/view_data_capsule.html',
data_capsule=data_capsule,
chat_session=chat_session)
@interaction_bp.route('/edit_asset/<int:asset_id>', methods=['GET', 'POST'])
def edit_asset(asset_id):
asset = EveAIAsset.query.get_or_404(asset_id)