From 34695f02fb5704343de1c6b9bc1786e8ca109ce4 Mon Sep 17 00:00:00 2001 From: takatost Date: Mon, 18 Mar 2024 18:25:46 +0800 Subject: [PATCH] add model config for conversation --- .../app/apps/advanced_chat/app_generator.py | 10 +++++++ api/models/model.py | 29 +++++++++++-------- 2 files changed, 27 insertions(+), 12 deletions(-) diff --git a/api/core/app/apps/advanced_chat/app_generator.py b/api/core/app/apps/advanced_chat/app_generator.py index b90d0e5bfa..8652d84cd5 100644 --- a/api/core/app/apps/advanced_chat/app_generator.py +++ b/api/core/app/apps/advanced_chat/app_generator.py @@ -97,12 +97,22 @@ class AdvancedChatAppGenerator(MessageBasedAppGenerator): extras=extras ) + is_first_conversation = False + if not conversation: + is_first_conversation = True + # init generate records ( conversation, message ) = self._init_generate_records(application_generate_entity, conversation) + if is_first_conversation: + # update conversation features + conversation.override_model_configs = workflow.features + db.session.commit() + db.session.refresh(conversation) + # init queue manager queue_manager = MessageBasedAppQueueManager( task_id=application_generate_entity.task_id, diff --git a/api/models/model.py b/api/models/model.py index af8057077c..25a6ec0afe 100644 --- a/api/models/model.py +++ b/api/models/model.py @@ -481,20 +481,25 @@ class Conversation(db.Model): @property def model_config(self): model_config = {} - if self.override_model_configs: - override_model_configs = json.loads(self.override_model_configs) - - if 'model' in override_model_configs: - app_model_config = AppModelConfig() - app_model_config = app_model_config.from_model_config_dict(override_model_configs) - model_config = app_model_config.to_dict() - else: - model_config['configs'] = override_model_configs + if self.mode == AppMode.ADVANCED_CHAT.value: + if self.override_model_configs: + override_model_configs = json.loads(self.override_model_configs) + model_config = override_model_configs else: - app_model_config = db.session.query(AppModelConfig).filter( - AppModelConfig.id == self.app_model_config_id).first() + if self.override_model_configs: + override_model_configs = json.loads(self.override_model_configs) - model_config = app_model_config.to_dict() + if 'model' in override_model_configs: + app_model_config = AppModelConfig() + app_model_config = app_model_config.from_model_config_dict(override_model_configs) + model_config = app_model_config.to_dict() + else: + model_config['configs'] = override_model_configs + else: + app_model_config = db.session.query(AppModelConfig).filter( + AppModelConfig.id == self.app_model_config_id).first() + + model_config = app_model_config.to_dict() model_config['model_id'] = self.model_id model_config['provider'] = self.model_provider