feat(history): Implement map_db_messages_to_langchain utility
This commit is contained in:
29
backend/src/ea_chatbot/history/utils.py
Normal file
29
backend/src/ea_chatbot/history/utils.py
Normal 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
|
||||
Reference in New Issue
Block a user