Spaces:
Paused
Paused
from langchain_huggingface import HuggingFacePipeline, ChatHuggingFace | |
from langchain_core.messages import BaseMessage | |
from typing import List | |
class HuggingFaceAI(ChatHuggingFace): | |
def _to_chat_prompt( | |
self, | |
messages: List[BaseMessage], | |
) -> str: | |
"""Convert a list of messages into a prompt format expected by wrapped LLM.""" | |
if not messages: | |
raise ValueError("At least one HumanMessage must be provided!") | |
if not isinstance(messages[-1], HumanMessage) and not isinstance(messages[-1], SystemMessage) : | |
raise ValueError("Last message must be a HumanMessage or SystemMessage!!!") | |
messages_dicts = [self._to_chatml_format(m) for m in messages] | |
return self.tokenizer.apply_chat_template( | |
messages_dicts, tokenize=False, add_generation_prompt=True | |
) |