feat(history): Implement map_db_messages_to_langchain utility

This commit is contained in:
Yunxiao Xu
2026-02-15 03:23:07 -08:00
parent be687d0fa5
commit 6c6c3bc6c8
2 changed files with 72 additions and 0 deletions

View File

@@ -0,0 +1,29 @@
from typing import List
from langchain_core.messages import BaseMessage, HumanMessage, AIMessage, SystemMessage
from ea_chatbot.history.models import Message
def map_db_messages_to_langchain(db_messages: List[Message]) -> List[BaseMessage]:
"""
Converts a list of database Message models to LangChain BaseMessage objects.
Args:
db_messages: List of Message objects from the database.
Returns:
List of HumanMessage, AIMessage, or SystemMessage objects.
"""
lc_messages: List[BaseMessage] = []
for m in db_messages:
role = m.role.lower()
if role == "user":
lc_messages.append(HumanMessage(content=m.content))
elif role == "assistant":
lc_messages.append(AIMessage(content=m.content))
elif role == "system":
lc_messages.append(SystemMessage(content=m.content))
else:
# Default to HumanMessage for unknown roles
lc_messages.append(HumanMessage(content=m.content))
return lc_messages