diff --git a/src/interface.jl b/src/interface.jl index 2ede604..da5979f 100644 --- a/src/interface.jl +++ b/src/interface.jl @@ -35,10 +35,11 @@ end @kwdef mutable struct agent availableRole=["system", "user", "assistant"] + agentName="assistant" maxUserMsg::Int= 10 - llmAIRequestTopic_openblas = "llm/openblas/request" - llmAIRequestTopic_gpu = "llm/api/v0.0.1/gpu/request" - self_llmReceiveTopic = "chatbothub/llm/respond" + llmAIRequestMqttTopic_openblas= "llm/openblas/request" + llmAIRequestMqttTopic_gpu= "llm/api/v0.0.1/gpu/request" + self_llmReceiveMqttTopic= "chatbothub/llm/respond" """ Dict(Role=> Content) ; Role can be system, user, assistant Example: @@ -49,7 +50,28 @@ end ] """ # Ref: Chat prompt format https://huggingface.co/TheBloke/Llama-2-7B-Chat-GGML/discussions/3 - messages=[Dict(:role=>"system", :content=> "You are a helpful assistant.", :timestamp=> Dates.now()),] + messages= [Dict(:role=>"system", :content=> "You are a helpful assistant.", :timestamp=> Dates.now()),] +end + +function agent( + agentName::String, + systemMessage::String, # system message of an agent + llmAIRequestMqttTopic_openblas::String, + llmAIRequestMqttTopic_gpu::String, + self_llmReceiveMqttTopic::String; + availableRole::AbstractArray=["system", "user", "assistant"], + maxUserMsg::Int=10) + + newAgent= agent() + newAgent.llmAIRequestMqttTopic_openblas= llmAIRequestMqttTopic_openblas + newAgent.llmAIRequestMqttTopic_gpu= llmAIRequestMqttTopic_gpu + newAgent.self_llmReceiveMqttTopic= self_llmReceiveMqttTopic + newAgent.availableRole= availableRole + newAgent.maxUserMsg= maxUserMsg + systemMessage= "Your name is $agentName. " * systemMessage + newAgent.messages=[Dict(:role=>"system", :content=> systemMessage, :timestamp=> Dates.now()),] + + return newAgent end @kwdef mutable struct agentLangchain