diff --git a/Project.toml b/Project.toml index fd80752..6be28fb 100644 --- a/Project.toml +++ b/Project.toml @@ -1,7 +1,7 @@ name = "GeneralUtils" uuid = "c6c72f09-b708-4ac8-ac7c-2084d70108fe" authors = ["tonaerospace "] -version = "0.2.2" +version = "0.2.3" [deps] CSV = "336ed68f-0bac-5ca0-87d4-7b16caf5d00b" diff --git a/src/llmUtil.jl b/src/llmUtil.jl index b0a90f7..ef9511c 100644 --- a/src/llmUtil.jl +++ b/src/llmUtil.jl @@ -68,25 +68,7 @@ function formatLLMtext_llama3instruct(name::T, text::T; return formattedtext end -# function formatLLMtext_llama3instruct(name::T, text::T) where {T<:AbstractString} -# formattedtext = -# if name == "system" -# """ -# <|begin_of_text|> -# <|start_header_id|>$name<|end_header_id|> -# $text -# <|eot_id|> -# """ -# else -# """ -# <|start_header_id|>$name<|end_header_id|> -# $text -# <|eot_id|> -# """ -# end -# return formattedtext -# end function formatLLMtext_qwen(name::T, text::T; assistantStarter::Bool=true) where {T<:AbstractString} @@ -116,6 +98,35 @@ function formatLLMtext_qwen(name::T, text::T; end +function formatLLMtext_phi4(name::T, text::T; + assistantStarter::Bool=true) where {T<:AbstractString} + formattedtext = + if name == "system" + """ + <|im_start|>$name<|im_sep|> + $text + <|im_end|> + """ + else + """ + <|im_start|>$name<|im_sep|> + $text + <|im_end|> + """ + end + + if assistantStarter + formattedtext *= + """ + <|im_start|>assistant<|im_sep|> + """ + end + + return formattedtext +end + + + """ Convert a chat messages in vector of dictionary into LLM model instruct format. # Arguments @@ -153,6 +164,8 @@ function formatLLMtext(messages::Vector{Dict{Symbol, T}}; formatname::String="ll # not define yet elseif formatname == "qwen" formatLLMtext_qwen + elseif formatname == "phi4" + formatLLMtext_phi4 else error("$formatname template not define yet") end