update companion

This commit is contained in:
narawat lamaiin
2025-04-30 12:58:32 +07:00
parent affb96f0cf
commit 03de659c9b
2 changed files with 10 additions and 15 deletions

View File

@@ -1509,10 +1509,6 @@ end
# modify it to work with customer object # modify it to work with customer object
function generatechat(a::companion; converPartnerName::Union{String, Nothing}=nothing, maxattempt=10) function generatechat(a::companion; converPartnerName::Union{String, Nothing}=nothing, maxattempt=10)
# header = ["Dialogue:"]
# dictkey = ["dialogue"]
response = nothing # placeholder for show when error msg show up response = nothing # placeholder for show when error msg show up
errornote = "N/A" errornote = "N/A"
llmkwargs=Dict( llmkwargs=Dict(
@@ -1540,13 +1536,15 @@ function generatechat(a::companion; converPartnerName::Union{String, Nothing}=no
end end
# put in model format # put in model format
_prompt = GeneralUtils.formatLLMtext(_prompt, "granite3") _prompt = GeneralUtils.formatLLMtext(_prompt, a.llmFormatName)
# replace user and assistant with partner name
prompt = replace(_prompt, "|>user"=>"|>$(converPartnerName)") prompt = replace(_prompt, "|>user"=>"|>$(converPartnerName)")
prompt = replace(prompt, "|>assistant"=>"|>$(a.name)") prompt = replace(prompt, "|>assistant"=>"|>$(a.name)")
response = a.func[:text2textInstructLLM](prompt; llmkwargs=llmkwargs) response = a.func[:text2textInstructLLM](prompt; llmkwargs=llmkwargs, senderId=a.id)
response = replace(response, "<|im_start|>"=> "") response = replace(response, "<|im_start|>"=> "")
response = GeneralUtils.deFormatLLMtext(response, "granite3") response = GeneralUtils.deFormatLLMtext(response, a.llmFormatName)
# check whether LLM just repeat the previous dialogue # check whether LLM just repeat the previous dialogue
for msg in a.chathistory for msg in a.chathistory

View File

@@ -18,6 +18,7 @@ mutable struct companion <: agent
chathistory::Vector{Dict{Symbol, Any}} chathistory::Vector{Dict{Symbol, Any}}
memory::Dict{Symbol, Any} memory::Dict{Symbol, Any}
func::NamedTuple # NamedTuple of functions func::NamedTuple # NamedTuple of functions
llmFormatName::String
end end
function companion( function companion(
@@ -25,9 +26,10 @@ function companion(
; ;
systemmsg::Union{String, Nothing}= nothing, systemmsg::Union{String, Nothing}= nothing,
name::String= "Assistant", name::String= "Assistant",
id::String= string(uuid4()), id::String= GeneralUtils.uuid4snakecase(),
maxHistoryMsg::Integer= 20, maxHistoryMsg::Integer= 20,
chathistory::Vector{Dict{Symbol, String}} = Vector{Dict{Symbol, String}}(), chathistory::Vector{Dict{Symbol, String}} = Vector{Dict{Symbol, String}}(),
llmFormatName::String= "granite3"
) )
if systemmsg === nothing if systemmsg === nothing
@@ -41,12 +43,6 @@ function companion(
- Focus on the latest conversation. - Focus on the latest conversation.
- Your like to be short and concise. - Your like to be short and concise.
You should then respond to the user with:
Dialogue: Given the situation, what would you say to the user?
You should only respond format as described below:
Dialogue: ...
Let's begin! Let's begin!
""" """
end end
@@ -79,7 +75,8 @@ function companion(
maxHistoryMsg, maxHistoryMsg,
chathistory, chathistory,
memory, memory,
func func,
llmFormatName
) )
return newAgent return newAgent