mirror of https://github.com/velour/catbase.git
llm: cull history and use a prompt
This commit is contained in:
parent
276f6c188e
commit
f5fc3b542e
|
@ -38,6 +38,12 @@ func New(b bot.Bot) *LLMPlugin {
|
|||
|
||||
func (p *LLMPlugin) register() {
|
||||
p.h = bot.HandlerTable{
|
||||
{
|
||||
Kind: bot.Message, IsCmd: true,
|
||||
Regex: regexp.MustCompile(`(?is)^gpt-prompt: (?P<text>.*)`),
|
||||
HelpText: "set the ChatGPT prompt",
|
||||
Handler: p.setPromptMessage,
|
||||
},
|
||||
{
|
||||
Kind: bot.Message, IsCmd: true,
|
||||
Regex: regexp.MustCompile(`(?is)^llm (?P<text>.*)`),
|
||||
|
@ -56,12 +62,6 @@ func (p *LLMPlugin) register() {
|
|||
HelpText: "chat completion",
|
||||
Handler: p.chatMessageForce,
|
||||
},
|
||||
{
|
||||
Kind: bot.Message, IsCmd: true,
|
||||
Regex: regexp.MustCompile(`(?is)^gpt-prompt: (?P<text>.*)`),
|
||||
HelpText: "set the ChatGPT prompt",
|
||||
Handler: p.setPromptMessage,
|
||||
},
|
||||
}
|
||||
p.b.RegisterTable(p, p.h)
|
||||
}
|
||||
|
@ -89,6 +89,10 @@ func (p *LLMPlugin) chatMessageForce(r bot.Request) bool {
|
|||
Role: "user",
|
||||
Content: r.Values["text"],
|
||||
})
|
||||
maxHist := p.c.GetInt("gpt.maxhist", 10)
|
||||
if len(p.chatHistory) > maxHist {
|
||||
p.chatHistory = p.chatHistory[len(p.chatHistory)-maxHist:]
|
||||
}
|
||||
chatResp, err := p.llama()
|
||||
if err == nil {
|
||||
p.chatHistory = append(p.chatHistory, chatResp)
|
||||
|
|
|
@ -23,9 +23,16 @@ func (g *LLMPlugin) llama() (chatEntry, error) {
|
|||
return chatEntry{}, fmt.Errorf("could not find llama model")
|
||||
}
|
||||
|
||||
prompt := g.c.Get("gpt.lastprompt", g.c.Get("gpt.prompt", ""))
|
||||
hist := []chatEntry{{
|
||||
Role: "system",
|
||||
Content: prompt,
|
||||
}}
|
||||
hist = append(hist, g.chatHistory...)
|
||||
|
||||
req := llamaRequest{
|
||||
Model: llamaModel,
|
||||
Messages: g.chatHistory,
|
||||
Messages: hist,
|
||||
Stream: false,
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue