John6666's picture
Upload 31 files
46d591b verified
Raw
History Blame Contribute Delete
2.68 kB
class LazyMessagesFormatterType:
def __getattr__(self, name):
return LazyLlamaAgentValue("MessagesFormatterType", name)
class LazyLlamaAgentValue:
def __init__(self, source, name):
self.source = source
self.name = name
def resolve(self):
if self.source == "MessagesFormatterType":
from llama_cpp_agent import MessagesFormatterType
return getattr(MessagesFormatterType, self.name)
if self.source == "custom_formatter":
return build_mistral_formatter(self.name)
raise ValueError(f"Unknown lazy llama agent value source: {self.source}")
def __repr__(self):
return f"<LazyLlamaAgentValue {self.source}.{self.name}>"
def __eq__(self, other):
return (
isinstance(other, LazyLlamaAgentValue)
and self.source == other.source
and self.name == other.name
)
def __hash__(self):
return hash((self.source, self.name))
MessagesFormatterType = LazyMessagesFormatterType()
def build_mistral_formatter(name):
from llama_cpp_agent.messages_formatter import MessagesFormatter, PromptMarkers, Roles
if name == "mistral_v1":
markers = {
Roles.system: PromptMarkers(""" [INST]""", """ [/INST]"""),
Roles.user: PromptMarkers(""" [INST]""", """ [/INST]"""),
Roles.assistant: PromptMarkers(""" """, """</s>"""),
Roles.tool: PromptMarkers("", ""),
}
return MessagesFormatter("", markers, False, ["</s>"])
if name == "mistral_v2":
markers = {
Roles.system: PromptMarkers("""[INST] """, """[/INST]"""),
Roles.user: PromptMarkers("""[INST] """, """[/INST]"""),
Roles.assistant: PromptMarkers(""" """, """</s>"""),
Roles.tool: PromptMarkers("", ""),
}
return MessagesFormatter("", markers, False, ["</s>"])
if name == "mistral_v3_tekken":
markers = {
Roles.system: PromptMarkers("""[INST]""", """[/INST]"""),
Roles.user: PromptMarkers("""[INST]""", """[/INST]"""),
Roles.assistant: PromptMarkers("""""", """</s>"""),
Roles.tool: PromptMarkers("", ""),
}
return MessagesFormatter("", markers, False, ["</s>"])
raise ValueError(f"Unknown Mistral formatter: {name}")
mistral_v1_formatter = LazyLlamaAgentValue("custom_formatter", "mistral_v1")
mistral_v2_formatter = LazyLlamaAgentValue("custom_formatter", "mistral_v2")
mistral_v3_tekken_formatter = LazyLlamaAgentValue("custom_formatter", "mistral_v3_tekken")