openai-openapi-template / app /mapper /conversation_mapper.py
cevheri's picture
feat: conversation/completion_id api implementation completed
87dbdac
# ChatCompletion to ConversationItem
from app.mapper.base_mapper import BaseMapper
from app.model.chat_model import ChatCompletion
from app.schema.conversation_schema import ConversationItemResponse
class ConversationMapper(BaseMapper[ChatCompletion, ConversationItemResponse]):
"""Mapper for converting between ChatCompletion model and ConversationItem schema."""
def to_schema(self, model: ChatCompletion) -> ConversationItemResponse:
"""Convert ChatCompletion model to ConversationItem schema."""
# Get the first message content as title if title is not set
title = model.title
if not title and model.messages:
first_message = model.messages[0]
title = first_message.content[:20] + "..." if len(first_message.content) > 20 else first_message.content
return ConversationItemResponse(
completion_id=model.completion_id,
title=title,
create_time=model.created_date,
update_time=model.last_updated_date,
is_archived=model.is_archived,
is_starred=model.is_starred,
)
def to_model(self, schema: ConversationItemResponse) -> ChatCompletion:
raise NotImplementedError("ConversationMapper.to_model is not implemented")