add model config for conversation

This commit is contained in:
takatost 2024-03-18 18:25:46 +08:00
parent aa421269c4
commit 34695f02fb
2 changed files with 27 additions and 12 deletions

View File

@ -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,

View File

@ -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