quivr/backend/repository/chat/format_chat_history.py

20 lines
810 B
Python
Raw Normal View History

from typing import List, Tuple
from langchain.schema import AIMessage, HumanMessage, SystemMessage
def format_chat_history(history) -> List[Tuple[str, str]]:
"""Format the chat history into a list of tuples (human, ai)"""
return [(chat.user_message, chat.assistant) for chat in history]
def format_history_to_openai_mesages(tuple_history: List[Tuple[str, str]], system_message: str, question: str) -> List[SystemMessage | HumanMessage | AIMessage]:
"""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