108 lines
1.1 KiB
Julia
108 lines
1.1 KiB
Julia
module interface
|
|
|
|
|
|
# export
|
|
|
|
using JSON3, DataStructures
|
|
|
|
#------------------------------------------------------------------------------------------------100
|
|
|
|
|
|
|
|
@kwdef mutable struct agent
|
|
sessionId::Int= 1
|
|
maxConversation::Int= 10
|
|
|
|
""" Dict(Role=> Content) ; Role can be system, user, assistant
|
|
Example:
|
|
messages=[
|
|
Dict(:role=>"system", :content=> "You are a helpful assistant."),
|
|
Dict(:role=>"assistant", :content=> "How may I help you"),
|
|
Dict(:role=>"user", :content=> "Hello, how are you"),
|
|
]
|
|
"""
|
|
# Ref: https://huggingface.co/TheBloke/Llama-2-7B-Chat-GGML/discussions/3
|
|
#
|
|
messages=[Dict(:role=>"system", :content=> "You are a helpful assistant."),]
|
|
end
|
|
|
|
function addNewMessage(a::agent, role::String, content::String)
|
|
d = Dict(:role=> role, :content=> content)
|
|
push!(a.messages, d)
|
|
end
|
|
|
|
function clearMessage(a::agent)
|
|
for i in eachindex(a.messages)
|
|
pop!(a.messages)
|
|
end
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
end # module |