update companion
This commit is contained in:
@@ -1509,10 +1509,6 @@ end
|
|||||||
|
|
||||||
# modify it to work with customer object
|
# modify it to work with customer object
|
||||||
function generatechat(a::companion; converPartnerName::Union{String, Nothing}=nothing, maxattempt=10)
|
function generatechat(a::companion; converPartnerName::Union{String, Nothing}=nothing, maxattempt=10)
|
||||||
|
|
||||||
# header = ["Dialogue:"]
|
|
||||||
# dictkey = ["dialogue"]
|
|
||||||
|
|
||||||
response = nothing # placeholder for show when error msg show up
|
response = nothing # placeholder for show when error msg show up
|
||||||
errornote = "N/A"
|
errornote = "N/A"
|
||||||
llmkwargs=Dict(
|
llmkwargs=Dict(
|
||||||
@@ -1540,13 +1536,15 @@ function generatechat(a::companion; converPartnerName::Union{String, Nothing}=no
|
|||||||
end
|
end
|
||||||
|
|
||||||
# put in model format
|
# put in model format
|
||||||
_prompt = GeneralUtils.formatLLMtext(_prompt, "granite3")
|
_prompt = GeneralUtils.formatLLMtext(_prompt, a.llmFormatName)
|
||||||
|
|
||||||
|
# replace user and assistant with partner name
|
||||||
prompt = replace(_prompt, "|>user"=>"|>$(converPartnerName)")
|
prompt = replace(_prompt, "|>user"=>"|>$(converPartnerName)")
|
||||||
prompt = replace(prompt, "|>assistant"=>"|>$(a.name)")
|
prompt = replace(prompt, "|>assistant"=>"|>$(a.name)")
|
||||||
|
|
||||||
response = a.func[:text2textInstructLLM](prompt; llmkwargs=llmkwargs)
|
response = a.func[:text2textInstructLLM](prompt; llmkwargs=llmkwargs, senderId=a.id)
|
||||||
response = replace(response, "<|im_start|>"=> "")
|
response = replace(response, "<|im_start|>"=> "")
|
||||||
response = GeneralUtils.deFormatLLMtext(response, "granite3")
|
response = GeneralUtils.deFormatLLMtext(response, a.llmFormatName)
|
||||||
|
|
||||||
# check whether LLM just repeat the previous dialogue
|
# check whether LLM just repeat the previous dialogue
|
||||||
for msg in a.chathistory
|
for msg in a.chathistory
|
||||||
|
|||||||
13
src/type.jl
13
src/type.jl
@@ -18,6 +18,7 @@ mutable struct companion <: agent
|
|||||||
chathistory::Vector{Dict{Symbol, Any}}
|
chathistory::Vector{Dict{Symbol, Any}}
|
||||||
memory::Dict{Symbol, Any}
|
memory::Dict{Symbol, Any}
|
||||||
func::NamedTuple # NamedTuple of functions
|
func::NamedTuple # NamedTuple of functions
|
||||||
|
llmFormatName::String
|
||||||
end
|
end
|
||||||
|
|
||||||
function companion(
|
function companion(
|
||||||
@@ -25,9 +26,10 @@ function companion(
|
|||||||
;
|
;
|
||||||
systemmsg::Union{String, Nothing}= nothing,
|
systemmsg::Union{String, Nothing}= nothing,
|
||||||
name::String= "Assistant",
|
name::String= "Assistant",
|
||||||
id::String= string(uuid4()),
|
id::String= GeneralUtils.uuid4snakecase(),
|
||||||
maxHistoryMsg::Integer= 20,
|
maxHistoryMsg::Integer= 20,
|
||||||
chathistory::Vector{Dict{Symbol, String}} = Vector{Dict{Symbol, String}}(),
|
chathistory::Vector{Dict{Symbol, String}} = Vector{Dict{Symbol, String}}(),
|
||||||
|
llmFormatName::String= "granite3"
|
||||||
)
|
)
|
||||||
|
|
||||||
if systemmsg === nothing
|
if systemmsg === nothing
|
||||||
@@ -41,12 +43,6 @@ function companion(
|
|||||||
- Focus on the latest conversation.
|
- Focus on the latest conversation.
|
||||||
- Your like to be short and concise.
|
- Your like to be short and concise.
|
||||||
|
|
||||||
You should then respond to the user with:
|
|
||||||
Dialogue: Given the situation, what would you say to the user?
|
|
||||||
|
|
||||||
You should only respond format as described below:
|
|
||||||
Dialogue: ...
|
|
||||||
|
|
||||||
Let's begin!
|
Let's begin!
|
||||||
"""
|
"""
|
||||||
end
|
end
|
||||||
@@ -79,7 +75,8 @@ function companion(
|
|||||||
maxHistoryMsg,
|
maxHistoryMsg,
|
||||||
chathistory,
|
chathistory,
|
||||||
memory,
|
memory,
|
||||||
func
|
func,
|
||||||
|
llmFormatName
|
||||||
)
|
)
|
||||||
|
|
||||||
return newAgent
|
return newAgent
|
||||||
|
|||||||
Reference in New Issue
Block a user