i gotta pass prompt...
parent
68b9010ed5
commit
242bf0a746
|
|
@ -90,7 +90,7 @@ func config(ctx context.Context) {
|
|||
|
||||
flag.IntVar(&Config.Port, "p", 37070, "port to listen on")
|
||||
flag.StringVar(&Config.ChatBot.SessionD, "chatbot-session-d", d, "dir to store chat bot sessions")
|
||||
flag.StringVar(&Config.ChatBot.PromptDelimiter, "chatbot-rp", "> ", "prompt delimiter prefixed by NAME/YOU")
|
||||
flag.StringVar(&Config.ChatBot.PromptDelimiter, "chatbot-rp", "> ", "prompt delimiter prefixed by NAME")
|
||||
flag.StringVar(&Config.ChatBot.WD, "chatbot-working-d", "./llama.cpp", "working directory for chatbot")
|
||||
flag.StringVar(&Config.ChatBot.Command, "chatbot-cmd", "./main -m ./models/ggml-vic7b-uncensored-q5_1.bin --repeat_penalty 1.0", "chatbot cmd prefix")
|
||||
flag.IntVar(&Config.ChatBot.N, "chatbot-n", 256, "chatbot items to gen")
|
||||
|
|
@ -350,14 +350,13 @@ func handleAPIChatBotPut(w http.ResponseWriter, r *http.Request) error {
|
|||
reversePrompt = reversePrompt[:8]
|
||||
}
|
||||
reversePrompt = reversePrompt + Config.ChatBot.PromptDelimiter
|
||||
forwardPrompt := "YOU" + Config.ChatBot.PromptDelimiter
|
||||
if err := copyFile(inputF, promptF); err != nil {
|
||||
return err
|
||||
}
|
||||
if err := chatBotGenerateInitCacheF(r.Context(), cacheF, inputF); err != nil {
|
||||
return err
|
||||
}
|
||||
if err := appendFile(inputF, reversePrompt+message+"\n"+forwardPrompt); err != nil {
|
||||
if err := appendFile(inputF, reversePrompt+message+"\n"); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
|
|
@ -365,7 +364,6 @@ func handleAPIChatBotPut(w http.ResponseWriter, r *http.Request) error {
|
|||
if err != nil {
|
||||
return err
|
||||
}
|
||||
//log.Printf("generated for %s via %s: [%s]", cookie.MyName(), r.URL.Path, justNew)
|
||||
if err := os.Rename(inputF, promptF); err != nil {
|
||||
return err
|
||||
}
|
||||
|
|
@ -425,8 +423,12 @@ func chatBotGenerateAndFillInputF(ctx context.Context, cacheF, inputF, reversePr
|
|||
commands[1:]...,
|
||||
)
|
||||
command.Dir = Config.ChatBot.WD
|
||||
command.Stderr = log.Writer()
|
||||
command.Stderr = io.Discard
|
||||
logf, err := os.Create(path.Join(Config.ChatBot.SessionD, "chatbot.stderr"))
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
defer logf.Close()
|
||||
command.Stderr = logf
|
||||
|
||||
stdout, err := command.StdoutPipe()
|
||||
if err != nil {
|
||||
|
|
@ -455,20 +457,21 @@ func chatBotGenerateAndFillInputF(ctx context.Context, cacheF, inputF, reversePr
|
|||
}
|
||||
justNew := oldAndNew[len(priorContent):]
|
||||
|
||||
if idx := bytes.Index(justNew, []byte(reversePrompt)); idx > 0 {
|
||||
justNew = justNew[:idx]
|
||||
trimmedReversePrompt := strings.TrimSpace(reversePrompt)
|
||||
if idx := bytes.Index(justNew, []byte(trimmedReversePrompt)); idx > -1 {
|
||||
justNew = justNew[:idx+len(trimmedReversePrompt)]
|
||||
} else if idx := bytes.LastIndex(
|
||||
append(priorContent, justNew...),
|
||||
[]byte(reversePrompt),
|
||||
); idx+len(reversePrompt) > len(priorContent) {
|
||||
justNew = justNew[:idx+len(reversePrompt)-len(priorContent)]
|
||||
[]byte(trimmedReversePrompt),
|
||||
); idx+len(trimmedReversePrompt) > len(priorContent) {
|
||||
justNew = justNew[:idx+len(trimmedReversePrompt)-len(priorContent)]
|
||||
}
|
||||
if err := _appendFile(inputF, string(justNew)); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
log.Printf("%s generated %q", reversePrompt, justNew)
|
||||
if !bytes.HasSuffix(append(priorContent, justNew...), []byte(reversePrompt)) {
|
||||
log.Printf("%s generated %q", trimmedReversePrompt, justNew)
|
||||
if !bytes.HasSuffix(append(priorContent, justNew...), []byte(trimmedReversePrompt)) {
|
||||
more, err := chatBotGenerateAndFillInputF(ctx, cacheF, inputF, reversePrompt, depth+1)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
|
|
|
|||
Loading…
Reference in New Issue