- RQC output of TRAICIE_SELECTION_SPECIALIST to EveAIDataCapsule
This commit is contained in:
@@ -94,6 +94,24 @@ class EveAIAsset(db.Model):
|
||||
last_used_at = db.Column(db.DateTime, nullable=True)
|
||||
|
||||
|
||||
class EveAIDataCapsule(db.Model):
|
||||
id = db.Column(db.Integer, primary_key=True)
|
||||
chat_session_id = db.Column(db.Integer, db.ForeignKey(ChatSession.id), nullable=False)
|
||||
type = db.Column(db.String(50), nullable=False, default="STANDARD_RAG")
|
||||
type_version = db.Column(db.String(20), nullable=True, default="1.0.0")
|
||||
configuration = db.Column(JSONB, nullable=True)
|
||||
data = db.Column(JSONB, nullable=True)
|
||||
|
||||
# Versioning Information
|
||||
created_at = db.Column(db.DateTime, nullable=False, server_default=db.func.now())
|
||||
created_by = db.Column(db.Integer, db.ForeignKey(User.id), nullable=True)
|
||||
updated_at = db.Column(db.DateTime, nullable=False, server_default=db.func.now(), onupdate=db.func.now())
|
||||
updated_by = db.Column(db.Integer, db.ForeignKey(User.id))
|
||||
|
||||
# Unieke constraint voor chat_session_id, type en type_version
|
||||
__table_args__ = (db.UniqueConstraint('chat_session_id', 'type', 'type_version', name='uix_data_capsule_session_type_version'),)
|
||||
|
||||
|
||||
class EveAIAgent(db.Model):
|
||||
id = db.Column(db.Integer, primary_key=True)
|
||||
specialist_id = db.Column(db.Integer, db.ForeignKey(Specialist.id), nullable=False)
|
||||
|
||||
25
common/services/interaction/capsule_services.py
Normal file
25
common/services/interaction/capsule_services.py
Normal file
@@ -0,0 +1,25 @@
|
||||
from datetime import datetime as dt, timezone as tz
|
||||
|
||||
from common.models.interaction import EveAIDataCapsule
|
||||
from common.extensions import db
|
||||
from common.utils.model_logging_utils import set_logging_information, update_logging_information
|
||||
|
||||
|
||||
class CapsuleServices:
|
||||
@staticmethod
|
||||
def push_capsule_data(chat_session_id: str, type: str, type_version: str, configuration: dict, data: dict):
|
||||
capsule = EveAIDataCapsule.query.filter_by(chat_session_id=chat_session_id, type=type, type_version=type_version).first()
|
||||
if capsule:
|
||||
# Update bestaande capsule als deze al bestaat
|
||||
capsule.configuration = configuration
|
||||
capsule.data = data
|
||||
update_logging_information(capsule, dt.now(tz.utc))
|
||||
else:
|
||||
# Maak nieuwe capsule aan als deze nog niet bestaat
|
||||
capsule = EveAIDataCapsule(chat_session_id=chat_session_id, type=type, type_version=type_version,
|
||||
configuration=configuration, data=data)
|
||||
set_logging_information(capsule, dt.now(tz.utc))
|
||||
db.session.add(capsule)
|
||||
|
||||
db.session.commit()
|
||||
return capsule
|
||||
11
common/utils/cache/config_cache.py
vendored
11
common/utils/cache/config_cache.py
vendored
@@ -7,7 +7,7 @@ from flask import current_app
|
||||
|
||||
from common.utils.cache.base import CacheHandler, CacheKey
|
||||
from config.type_defs import agent_types, task_types, tool_types, specialist_types, retriever_types, prompt_types, \
|
||||
catalog_types, partner_service_types, processor_types, customisation_types, specialist_form_types
|
||||
catalog_types, partner_service_types, processor_types, customisation_types, specialist_form_types, capsule_types
|
||||
|
||||
|
||||
def is_major_minor(version: str) -> bool:
|
||||
@@ -485,6 +485,15 @@ SpecialistFormConfigCacheHandler, SpecialistFormConfigVersionTreeCacheHandler, S
|
||||
)
|
||||
|
||||
|
||||
CapsuleConfigCacheHandler, CapsuleConfigVersionTreeCacheHandler, CapsuleConfigTypesCacheHandler = (
|
||||
create_config_cache_handlers(
|
||||
config_type='data_capsules',
|
||||
config_dir='config/data_capsules',
|
||||
types_module=capsule_types.CAPSULE_TYPES
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
def register_config_cache_handlers(cache_manager) -> None:
|
||||
cache_manager.register_handler(AgentConfigCacheHandler, 'eveai_config')
|
||||
cache_manager.register_handler(AgentConfigTypesCacheHandler, 'eveai_config')
|
||||
|
||||
Reference in New Issue
Block a user