From 9641d915942aeda24a6629f40f5a3ac41bf70b82 Mon Sep 17 00:00:00 2001 From: narawat lamaiin Date: Sun, 28 Apr 2024 08:17:17 +0700 Subject: [PATCH] update --- src/util.jl | 105 ++++++++++++++++++++++++---------------------------- 1 file changed, 48 insertions(+), 57 deletions(-) diff --git a/src/util.jl b/src/util.jl index 8b79911..fd885d2 100644 --- a/src/util.jl +++ b/src/util.jl @@ -120,42 +120,37 @@ end """ Convert a single chat dictionary into LLM model instruct format. - Llama 3 instruct format example\n - ----- - <|begin_of_text|> - <|start_header_id|>system<|end_header_id|> - You are a helpful assistant. - <|eot_id|> - <|start_header_id|>user<|end_header_id|> - Get me an icecream. - <|eot_id|> - <|start_header_id|>assistant<|end_header_id|> - Go buy it yourself at 7-11. - <|eot_id|> +# Llama 3 instruct format example + <|begin_of_text|> + <|start_header_id|>system<|end_header_id|> + You are a helpful assistant. + <|eot_id|> + <|start_header_id|>user<|end_header_id|> + Get me an icecream. + <|eot_id|> + <|start_header_id|>assistant<|end_header_id|> + Go buy it yourself at 7-11. + <|eot_id|> - Arguments\n - ----- - name::T - message owner name e.f. "system", "user" or "assistant" - text::T +# Arguments + - `name::T` + message owner name e.f. "system", "user" or "assistant" + - `text::T` - Return\n - ----- - formattedtext::String - text formatted to model format +# Return + - `formattedtext::String` + text formatted to model format - Example\n - ----- - ```jldoctest - julia> using Revise - julia> using YiemAgent - julia> d = Dict(:name=> "system",:text=> "You are a helpful, respectful and honest assistant.",) - julia> formattedtext = YiemAgent.formatLLMtext_llama3instruct(d[:name], d[:text]) - "<|begin_of_text|>\n <|start_header_id|>system<|end_header_id|>\n You are a helpful, respectful and honest assistant.\n <|eot_id|>\n" - ``` +# Example +```jldoctest +julia> using Revise +julia> using YiemAgent +julia> d = Dict(:name=> "system",:text=> "You are a helpful, respectful and honest assistant.",) +julia> formattedtext = YiemAgent.formatLLMtext_llama3instruct(d[:name], d[:text]) +"<|begin_of_text|>\n <|start_header_id|>system<|end_header_id|>\n You are a helpful, respectful and honest assistant.\n <|eot_id|>\n" +``` - Signature\n - ----- +# Signature """ function formatLLMtext_llama3instruct(name::T, text::T) where {T<:AbstractString} formattedtext = @@ -180,34 +175,30 @@ end """ Convert a chat messages in vector of dictionary into LLM model instruct format. - Arguments\n - ----- - messages::Vector{Dict{Symbol, T}} - message owner name e.f. "system", "user" or "assistant" - formatname::T - format name to be used +# Arguments + - `messages::Vector{Dict{Symbol, T}}` + message owner name e.f. "system", "user" or "assistant" + - `formatname::T` + format name to be used - Return\n - ----- - formattedtext::String - text formatted to model format +# Return + - `formattedtext::String` + text formatted to model format - Example\n - ----- - ```jldoctest - julia> using Revise - julia> using YiemAgent - julia> chatmessage = [ - Dict(:name=> "system",:text=> "You are a helpful, respectful and honest assistant.",), - Dict(:name=> "user",:text=> "list me all planets in our solar system.",), - Dict(:name=> "assistant",:text=> "I'm sorry. I don't know. You tell me.",), - ] - julia> formattedtext = YiemAgent.formatLLMtext(chatmessage, "llama3instruct") - "<|begin_of_text|>\n <|start_header_id|>system<|end_header_id|>\n You are a helpful, respectful and honest assistant.\n <|eot_id|>\n <|start_header_id|>user<|end_header_id|>\n list me all planets in our solar system.\n <|eot_id|>\n <|start_header_id|>assistant<|end_header_id|>\n I'm sorry. I don't know. You tell me.\n <|eot_id|>\n" - ``` +# Example +```jldoctest +julia> using Revise +julia> using YiemAgent +julia> chatmessage = [ + Dict(:name=> "system",:text=> "You are a helpful, respectful and honest assistant.",), + Dict(:name=> "user",:text=> "list me all planets in our solar system.",), + Dict(:name=> "assistant",:text=> "I'm sorry. I don't know. You tell me.",), + ] +julia> formattedtext = YiemAgent.formatLLMtext(chatmessage, "llama3instruct") +"<|begin_of_text|>\n <|start_header_id|>system<|end_header_id|>\n You are a helpful, respectful and honest assistant.\n <|eot_id|>\n <|start_header_id|>user<|end_header_id|>\n list me all planets in our solar system.\n <|eot_id|>\n <|start_header_id|>assistant<|end_header_id|>\n I'm sorry. I don't know. You tell me.\n <|eot_id|>\n" +``` - Signature\n - ----- +# Signature """ function formatLLMtext(messages::Vector{Dict{Symbol, T}}, formatname::String="llama3instruct") where {T<:Any}