This commit is contained in:
narawat lamaiin
2024-10-13 06:38:43 +07:00
parent 015e7b757c
commit 2e2eccff8b
3 changed files with 11 additions and 4 deletions

View File

@@ -232,7 +232,7 @@ function decisionMaker(a::T; recent::Integer=5)::Dict{Symbol, Any} where {T<:age
systemmsg =
"""
Your name is $(a.name). You are a helpful assistant acting as a polite, website-based sommelier for Yiem's online wine store.
Your name is $(a.name). You are a helpful assistant acting as a polite, website-based sommelier for $(a.retailername) store.
Your goal includes:
1) Get to know the user preferences about wine
2) Help them select the best wines from your inventory that align with their preferences
@@ -1422,6 +1422,9 @@ function generatequestion(a, text2textInstructLLM::Function; recent=nothing)::St
q_number = count("Q", response)
if q_number < 3
error("too few questions only $q_number questions are generated ", @__FILE__, " ", @__LINE__)
# check whether "A1" is in the response, if not error.
elseif !occursin("A1", response)
error("no answer found in the response ", @__FILE__, " ", @__LINE__)
end
# response = string(split(response, "Please")[1]) # LLM usually add comments which is no need.
responsedict = GeneralUtils.textToDict(response,

View File

@@ -289,12 +289,13 @@ julia> result = checkinventory(agent, input)
"""
function checkinventory(a::T1, input::T2
)::NamedTuple{(:result, :success, :errormsg), Tuple{String, Bool, Union{String, Nothing}}} where {T1<:agent, T2<:AbstractString}
println("--> checkinventory order: $input ", @__FILE__, " ", @__LINE__)
println("~~~ checkinventory order: $input ", @__FILE__, " ", @__LINE__)
wineattributes_1 = extractWineAttributes_1(a, input)
wineattributes_2 = extractWineAttributes_2(a, input)
inventoryquery = "$wineattributes_1, $wineattributes_2"
println("--> checkinventory input: $inventoryquery ", @__FILE__, " ", @__LINE__)
inventoryquery = "retailer name: $(a.retailername), $wineattributes_1, $wineattributes_2"
println("~~~ checkinventory input: $inventoryquery ", @__FILE__, " ", @__LINE__)
result = SQLLLM.query(inventoryquery, a.executeSQL, a.text2textInstructLLM,
addSQLVectorDB=a.addSQLVectorDB,
querySQLVectorDB=a.querySQLVectorDB)

View File

@@ -130,6 +130,7 @@ julia> agent = YiemAgent.bsommelier(
mutable struct sommelier <: agent
name::String # agent name
id::String # agent id
retailername::String
tools::Dict
maxHistoryMsg::Integer # e.g. 21th and earlier messages will get summarized
@@ -160,6 +161,7 @@ function sommelier(
;
name::String= "Assistant",
id::String= string(uuid4()),
retailername::String= "retailer_name",
maxHistoryMsg::Integer= 20,
chathistory::Vector{Dict{Symbol, String}} = Vector{Dict{Symbol, String}}(),
)
@@ -192,6 +194,7 @@ function sommelier(
newAgent = sommelier(
name,
id,
retailername,
tools,
maxHistoryMsg,
chathistory,