2024-02-15 01:01:35 +03:00
|
|
|
from typing import Dict, List, Tuple
|
2023-08-25 15:03:57 +03:00
|
|
|
|
|
|
|
from langchain.schema import AIMessage, BaseMessage, HumanMessage, SystemMessage
|
2024-02-15 01:01:35 +03:00
|
|
|
from modules.chat.dto.outputs import GetChatHistoryOutput
|
2023-08-18 11:32:22 +03:00
|
|
|
|
|
|
|
|
2024-02-15 01:01:35 +03:00
|
|
|
def format_chat_history(
|
|
|
|
history: List[GetChatHistoryOutput],
|
|
|
|
) -> List[Dict[str, str]]:
|
|
|
|
"""Format the chat history into a list of HumanMessage and AIMessage"""
|
|
|
|
formatted_history = []
|
|
|
|
for chat in history:
|
|
|
|
formatted_history.append(HumanMessage(chat.user_message))
|
|
|
|
formatted_history.append(AIMessage(chat.assistant))
|
|
|
|
return formatted_history
|
2023-08-18 11:32:22 +03:00
|
|
|
|
|
|
|
|
2023-08-25 15:03:57 +03:00
|
|
|
def format_history_to_openai_mesages(
|
|
|
|
tuple_history: List[Tuple[str, str]], system_message: str, question: str
|
|
|
|
) -> List[BaseMessage]:
|
2023-08-18 11:32:22 +03:00
|
|
|
"""Format the chat history into a list of Base Messages"""
|
|
|
|
messages = []
|
|
|
|
messages.append(SystemMessage(content=system_message))
|
|
|
|
for human, ai in tuple_history:
|
|
|
|
messages.append(HumanMessage(content=human))
|
|
|
|
messages.append(AIMessage(content=ai))
|
|
|
|
messages.append(HumanMessage(content=question))
|
|
|
|
return messages
|