pull/21694/merge
taozuinb 7 months ago committed by GitHub
commit 8aff0d1cb1
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -124,7 +124,7 @@ class AdvancedChatAppGenerator(MessageBasedAppGenerator):
conversation_id = args.get("conversation_id") conversation_id = args.get("conversation_id")
if conversation_id: if conversation_id:
conversation = ConversationService.get_conversation( conversation = ConversationService.get_conversation(
app_model=app_model, conversation_id=conversation_id, user=user app_model=app_model, conversation_id=conversation_id, user=user,invoke_from=invoke_from
) )
# parse files # parse files

@ -145,19 +145,32 @@ class ConversationService:
return conversation return conversation
@classmethod @classmethod
def get_conversation(cls, app_model: App, conversation_id: str, user: Optional[Union[Account, EndUser]]): def get_conversation(cls, app_model: App, conversation_id: str, user: Optional[Union[Account, EndUser]], invoke_from: InvokeFrom = None):
conversation = ( if invoke_from and invoke_from == InvokeFrom.SERVICE_API:
db.session.query(Conversation) conversation = (
.filter( db.session.query(Conversation)
Conversation.id == conversation_id, .filter(
Conversation.app_id == app_model.id, Conversation.id == conversation_id,
Conversation.from_source == ("api" if isinstance(user, EndUser) else "console"), Conversation.app_id == app_model.id,
Conversation.from_end_user_id == (user.id if isinstance(user, EndUser) else None), Conversation.from_source == "api",
Conversation.from_account_id == (user.id if isinstance(user, Account) else None), Conversation.from_end_user_id == user.id ,
Conversation.is_deleted == False, Conversation.is_deleted == False,
)
.first()
)
else:
conversation = (
db.session.query(Conversation)
.filter(
Conversation.id == conversation_id,
Conversation.app_id == app_model.id,
Conversation.from_source == ("api" if isinstance(user, EndUser) else "console"),
Conversation.from_end_user_id == (user.id if isinstance(user, EndUser) else None),
Conversation.from_account_id == (user.id if isinstance(user, Account) else None),
Conversation.is_deleted == False,
)
.first()
) )
.first()
)
if not conversation: if not conversation:
raise ConversationNotExistsError() raise ConversationNotExistsError()

Loading…
Cancel
Save