using Revise # remove when this package is completed
using YiemAgent, GeneralUtils, JSON3, MQTTClient, Dates, UUIDs
using Base.Threads
# ---------------------------------------------- 100 --------------------------------------------- #
config = copy(JSON3.read("config.json"))
instanceInternalTopic = config[:serviceInternalTopic][:value] * "/1"
client, connection = MakeConnection(config[:mqttBroker][:value], 1883)
msgMeta = GeneralUtils.generate_msgMeta(
"N/A",
replyTopic = config[:servicetopic][:value] # ask frontend reply to this instance_chat_topic
)
agentConfig = Dict(
:receiveprompt=>Dict(
:mqtttopic=> config[:servicetopic][:value], # topic to receive prompt i.e. frontend send msg to this topic
),
:receiveinternal=>Dict(
:mqtttopic=> instanceInternalTopic, # receive topic for model's internal
),
:text2text=>Dict(
:mqtttopic=> config[:text2text][:value],
),
)
# Instantiate an agent
tools=Dict( # update input format
"askbox"=> Dict(
:description => "Useful for when you need to ask the user for more context. Do not ask the user their own question.",
:input => """Input is a text in JSON format.{\"Q1\": \"How are you doing?\", \"Q2\": \"How may I help you?\"}""",
:output => "" ,
:func => nothing,
),
# "winestock"=> Dict(
# :description => "A handy tool for searching wine in your inventory that match the user preferences.",
# :input => """Input is a JSON-formatted string that contains a detailed and precise search query.{\"wine type\": \"rose\", \"price\": \"max 35\", \"sweetness level\": \"sweet\", \"intensity level\": \"light bodied\", \"Tannin level\": \"low\", \"Acidity level\": \"low\"}""",
# :output => """