This commit is contained in:
narawat lamaiin
2024-08-25 11:50:50 +07:00
parent 2e90665fb6
commit 232202d1ca
4 changed files with 149 additions and 21 deletions

View File

@@ -232,7 +232,7 @@ function decisionMaker(a::T; recent::Integer=5)::Dict{Symbol, Any} where {T<:age
systemmsg =
"""
You are a helpful assistant acting as a polite, website-based sommelier for an online wine store.
Your name is $(a.name). You are a helpful assistant acting as a polite, website-based sommelier for Yiem's online wine store.
Your goal includes:
1) Help the user select the best wines from your inventory that align with the user's preferences.
@@ -273,7 +273,12 @@ function decisionMaker(a::T; recent::Integer=5)::Dict{Symbol, Any} where {T<:age
- CHATBOX which you can use to generate conversation in order to communicate with the user. The input is your intentions for the dialogue. Be specific.
- CHECKINVENTORY which you can use to check info about wine in your inventory. The input is a search term in verbal English.
Good query example: black car, a stereo, 200 mile range, electric motor.
- PRESENTBOX which you can use to introduce / suggest / recommend wines you just found in the database to the user. It is better than the CHATBOX function for presenting wines. The input is the names of wines to introduce.
- PRESENTBOX which you can use to introduce / suggest / recommend wines you just found in the database to the user. It is better than the CHATBOX function for presenting wines.
The input is instructions on how you want the presentation to be conducted.
Here are some input example,
"First, provide detailed introductions of the wines to help the user make an informed choice.
Second, if there are multiple wines, offer a thorough comparison of each option, highlighting their differences.
Third, explain the potential impact each option could bring to the user."
- ENDCONVERSATION which you can use when you want to finish the conversation with the user. The input is "NA".
4) Action_input: input of the action
5) Mentioning_wine: Are you mentioning specific wine name to the user? Can be "Yes" or "No"
@@ -951,7 +956,7 @@ function think(a::T)::NamedTuple{(:actionname, :result), Tuple{String, String}}
checkinventory(a, actioninput)
elseif actionname == "PRESENTBOX"
x = """
1) Provide detailed introductions of $actioninput to help the user make an informed choice.
1) Provide detailed introductions of the wines to help the user make an informed choice.
2) If there are multiple wines, offer a thorough comparison of each option, highlighting their differences.
3) Explain the potential impact each option could bring to the user.
"""
@@ -959,7 +964,7 @@ function think(a::T)::NamedTuple{(:actionname, :result), Tuple{String, String}}
# 1) Introduce $actioninput in details for the user to choose."
# 2) Compare each option against the others in details and explain why each one is a suitable match for the user's specific needs.
# """
(result=x, errormsg=nothing, success=true)
(result=actioninput, errormsg=nothing, success=true)
elseif actionname == "ENDCONVERSATION"
x = "Conclude the conversation, thanks the user then goodbye and inviting them to return next time."
(result=x, errormsg=nothing, success=true)
@@ -1016,7 +1021,7 @@ julia>
function generatechat(memory::Dict, chathistory::Vector, text2textInstructLLM::Function)
systemmsg =
"""
You are a helpful assistant acting as a polite, website-based sommelier for an online wine store.
Your name is "Jenie". You are a helpful assistant acting as a polite, website-based sommelier for an online wine store.
Your goal is: Recommend the best wines from your inventory that align with the user's preferences.
Your responsibility includes:
@@ -1189,7 +1194,7 @@ function generatequestion(a, text2textInstructLLM::Function; recent=nothing)::St
systemmsg =
"""
You are a helpful assistant acting as a polite, website-based sommelier for an online wine store.
Your name is $(a.name). You are a helpful assistant acting as a polite, website-based sommelier for Yiem's online wine store.
Your goal includes:
1) Help the user select the best wines from your inventory that align with the user's preferences
2) Thanks the user when they don't need any further assistance and invite them to comeback next time