This commit is contained in:
2024-12-22 20:40:13 +07:00
parent 00f1a6775b
commit 27944a178b
2 changed files with 36 additions and 30 deletions

View File

@@ -173,6 +173,7 @@ function decisionMaker(a::T; recent::Integer=5)::Dict{Symbol,Any} where {T<:agen
- All wines in your inventory are always in stock.
- If the user interrupts, prioritize the user
- Do not ask the user about wine's flavor e.g. floral, citrusy, nutty or some thing similar as these terms cannot be used to search the database.
- The best strategy for searching an inventory is to start broadly and then narrow down.
- Once the user has selected their wine, ask the user if they need any further assistance. Do not offer any additional services. If the user doesn't need any further assistance, say goodbye and invite them to come back next time.
Tips:
@@ -255,6 +256,7 @@ function decisionMaker(a::T; recent::Integer=5)::Dict{Symbol,Any} where {T<:agen
try
response = a.func[:text2textInstructLLM](prompt)
response = GeneralUtils.remove_french_accents(response)
responsedict = GeneralUtils.textToDict(response,
["Understanding", "Reasoning", "Plan", "Action_name", "Action_input"],
rightmarker=":", symbolkey=true, lowercasekey=true)
@@ -697,7 +699,7 @@ function conversation(a::sommelier, userinput::Dict)
# thinking loop until AI wants to communicate with the user
chatresponse = nothing
for i in 1:3
for i in 1:5
actionname, result = think(a)
if actionname ["CHATBOX", "PRESENTBOX", "ENDCONVERSATION"]
chatresponse = result
@@ -773,7 +775,7 @@ function think(a::T)::NamedTuple{(:actionname, :result),Tuple{String,String}} wh
# map action and input() to llm function
response =
if actionname == "CHATBOX"
input = thoughtDict[:plan]
input = thoughtDict[:action_input]
(result=input, errormsg=nothing, success=true)
elseif actionname == "CHECKINVENTORY"
checkinventory(a, actioninput)
@@ -1338,7 +1340,7 @@ function detectWineryName(a, text)
Text: a text describing the situation.
Tips:
- Winery usually contains Château, Chateau, Domaine, Côte, Cote, St. de, or a combination of these words.
- Winery usually contains Château, Chateau, Domaine, Côte, Cotes, St. de, or a combination of these words.
You should then respond to the user with:
Winery_names: A list of winery names mentioned in the text or "None" if no winery name is mentioned.
@@ -1347,7 +1349,7 @@ function detectWineryName(a, text)
Winery_names: ...
Here are some examples:
Winery_names: Domaine Courbis, Chateau Lafite Rothschild, Matarromera Domaine Roulot, Château
Winery_names: Domaine Courbis, Chateau Lafite Rothschild, Matarromera Domaine Roulot, Château, Cotes
Let's begin!
"""