in packages/blueprints/gen-ai-chatbot/static-assets/chatbot-genai-components/backend/python/app/usecases/chat.py [0:0]
def fetch_conversation(user_id: str, conversation_id: str) -> Conversation:
conversation = find_conversation_by_id(user_id, conversation_id)
message_map = {
message_id: MessageOutput(
role=message.role,
content=[
Content(
content_type=c.content_type,
body=c.body,
media_type=c.media_type,
)
for c in message.content
],
model=message.model,
children=message.children,
parent=message.parent,
feedback=(
FeedbackOutput(
thumbs_up=message.feedback.thumbs_up,
category=message.feedback.category,
comment=message.feedback.comment,
)
if message.feedback
else None
),
used_chunks=(
[
Chunk(
content=c.content,
content_type=c.content_type,
source=c.source,
rank=c.rank,
)
for c in message.used_chunks
]
if message.used_chunks
else None
),
)
for message_id, message in conversation.message_map.items()
}
# Omit instruction
if "instruction" in message_map:
for c in message_map["instruction"].children:
message_map[c].parent = "system"
message_map["system"].children = message_map["instruction"].children
del message_map["instruction"]
output = Conversation(
id=conversation_id,
title=conversation.title,
create_time=conversation.create_time,
last_message_id=conversation.last_message_id,
message_map=message_map,
bot_id=conversation.bot_id,
)
return output