This commit is contained in:
2026-07-17 10:06:32 +07:00
parent c5fbaabf42
commit da98baddb6
+21 -7
View File
@@ -395,15 +395,21 @@ function conversation(a::sommelier; userinput::Union{Dict{String, Any}, JSON.Obj
addNewMessage(a, "assistant", assistant_response; maximumMsg=maximumMsg) addNewMessage(a, "assistant", assistant_response; maximumMsg=maximumMsg)
items_info = [] items_info = []
send_item_ind = [] # index of the item being send to frontend
if haskey(a.memory["shortmem"], "items_info") if haskey(a.memory["shortmem"], "items_info")
for (i, item) in enumerate(a.memory["shortmem"]["items_info"]) for (i, item) in enumerate(a.memory["shortmem"]["items_info"])
if haskey(item, "wine_name") && occursin(item["wine_name"], thoughtdict["action_input"]) if haskey(item, "wine_name") && occursin(item["wine_name"], thoughtdict["action_input"])
push!(items_info, item) push!(items_info, deepcopy(item))
deleteat!(a.memory["shortmem"]["items_info"], i) push!(send_item_ind, i)
end end
end end
end # remove sent items
deleteat!(a.memory["shortmem"]["items_info"], send_item_ind)
end
response_to_frontend = Dict{String, Any}( response_to_frontend = Dict{String, Any}(
"role" => "assistant", "role" => "assistant",
"content" => [ "content" => [
@@ -431,15 +437,21 @@ function conversation(a::sommelier; userinput::Union{Dict{String, Any}, JSON.Obj
addNewMessage(a, "assistant", assistant_response; maximumMsg=maximumMsg) addNewMessage(a, "assistant", assistant_response; maximumMsg=maximumMsg)
items_info = [] items_info = []
send_item_ind = [] # index of the item being send to frontend
if haskey(a.memory["shortmem"], "items_info") if haskey(a.memory["shortmem"], "items_info")
for (i, item) in enumerate(a.memory["shortmem"]["items_info"]) for (i, item) in enumerate(a.memory["shortmem"]["items_info"])
if haskey(item, "wine_name") && occursin(item["wine_name"], thoughtdict["action_input"]) if haskey(item, "wine_name") && occursin(item["wine_name"], thoughtdict["action_input"])
push!(items_info, item) push!(items_info, deepcopy(item))
deleteat!(a.memory["shortmem"]["items_info"], i) push!(send_item_ind, i)
end end
end end
end # remove sent items
deleteat!(a.memory["shortmem"]["items_info"], send_item_ind)
end
response_to_frontend = Dict{String, Any}( response_to_frontend = Dict{String, Any}(
"role" => "assistant", "role" => "assistant",
"content" => [ "content" => [
@@ -527,7 +539,9 @@ function think(a::T)::NamedTuple{(:thoughtdict, :result_raw), Tuple{OrderedDict,
result_raw = nothing result_raw = nothing
if thoughtdict["action_name"] ["CHAT_BOX"] if thoughtdict["action_name"] ["CHAT_BOX"]
thoughtdict, result_raw = generatechat!(a) #WORKING sometime CHAT_BOX input is only a few word. if thoughtdict["action_input] <20
# use generatechat!()
thoughtdict, result_raw = generatechat!(a)
elseif thoughtdict["action_name"] == "END_CONVER_GUIDELINE" elseif thoughtdict["action_name"] == "END_CONVER_GUIDELINE"