From ce392814f2e8af204d8df341a25ce5aa40b1dc49 Mon Sep 17 00:00:00 2001 From: kercre123 Date: Sat, 6 Apr 2024 19:09:57 -0500 Subject: [PATCH] Fall back to gpt-3.5 if gpt-4 isn't available --- chipper/pkg/wirepod/config-ws/webserver.go | 4 ++++ chipper/pkg/wirepod/ttr/kgsim.go | 26 +++++++++++++++------- chipper/webroot/initial.html | 2 +- chipper/webroot/setup.html | 4 ++-- 4 files changed, 25 insertions(+), 11 deletions(-) diff --git a/chipper/pkg/wirepod/config-ws/webserver.go b/chipper/pkg/wirepod/config-ws/webserver.go index ee28aa47..7bd478fe 100755 --- a/chipper/pkg/wirepod/config-ws/webserver.go +++ b/chipper/pkg/wirepod/config-ws/webserver.go @@ -196,6 +196,10 @@ func apiHandler(w http.ResponseWriter, r *http.Request) { vars.APIConfig.Knowledge.Model = kgModel vars.APIConfig.Knowledge.ID = kgAPIID } + if kgModel == "" && kgProvider == "together" { + logger.Println("Together model wasn't provided, using default meta-llama/Llama-2-70b-chat-hf") + kgModel = "meta-llama/Llama-2-70b-chat-hf" + } if kgProvider == "openai" || kgProvider == "together" { if strings.TrimSpace(r.FormValue("openai_prompt")) != "" { vars.APIConfig.Knowledge.OpenAIPrompt = r.FormValue("openai_prompt") diff --git a/chipper/pkg/wirepod/ttr/kgsim.go b/chipper/pkg/wirepod/ttr/kgsim.go index de37285c..31cd593f 100644 --- a/chipper/pkg/wirepod/ttr/kgsim.go +++ b/chipper/pkg/wirepod/ttr/kgsim.go @@ -88,7 +88,7 @@ func StreamingKGSim(req interface{}, esn string, transcribedText string) (string } else { robName = "Vector" } - defaultPrompt := "You are a helpful robot called " + robName + ". You will be given a question asked by a user and you must provide the best answer you can. It may not be punctuated or spelled correctly as the STT model is small. The answer will be put through TTS, so it should be a speakable string. Keep the answer concise yet informative." + defaultPrompt := "You are a helpful robot called " + robName + ". The prompt may not be punctuated or spelled correctly as the STT model is small. The answer will be put through TTS, so it should be a speakable string. Keep the answer concise yet informative." var nChat []openai.ChatCompletionMessage @@ -118,16 +118,26 @@ func StreamingKGSim(req interface{}, esn string, transcribedText string) (string Stream: true, } if vars.APIConfig.Knowledge.Provider == "openai" { - logger.Println("Using " + openai.GPT4Turbo1106) aireq.Model = openai.GPT4Turbo1106 + logger.Println("Using " + aireq.Model) } else { logger.Println("Using " + vars.APIConfig.Knowledge.Model) aireq.Model = vars.APIConfig.Knowledge.Model } stream, err := c.CreateChatCompletionStream(ctx, aireq) if err != nil { - fmt.Printf("ChatCompletionStream error: %v\n", err) - return "", err + if strings.Contains(err.Error(), "does not exist") && vars.APIConfig.Knowledge.Provider == "openai" { + logger.Println("GPT-4 model cannot be accessed with this API key. You likely need to add more than $5 dollars of funds to your OpenAI account.") + aireq.Model = openai.GPT3Dot5Turbo + logger.Println("Falling back to " + aireq.Model) + stream, err = c.CreateChatCompletionStream(ctx, aireq) + if err != nil { + logger.Println("OpenAI still not returning a response even after falling back. Erroring.") + return "", err + } + } else { + return "", err + } } //defer stream.Close() @@ -148,12 +158,12 @@ func StreamingKGSim(req interface{}, esn string, transcribedText string) (string Remember(transcribedText, newStr, esn) } logger.LogUI("LLM response for " + esn + ": " + newStr) - fmt.Println("LLM stream finished") + logger.Println("LLM stream finished") return } if err != nil { - fmt.Printf("Stream error: %v\n", err) + logger.Println("Stream error: " + err.Error()) return } @@ -255,7 +265,7 @@ func StreamingKGSim(req interface{}, esn string, transcribedText string) (string }, }, ); err != nil { - log.Println(err) + logger.Println(err) return } return @@ -310,7 +320,7 @@ func StreamingKGSim(req interface{}, esn string, transcribedText string) (string break } } - fmt.Println(respSlice[numInResp]) + logger.Println(respSlice[numInResp]) _, err := robot.Conn.SayText( ctx, &vectorpb.SayTextRequest{ diff --git a/chipper/webroot/initial.html b/chipper/webroot/initial.html index 6fd7a31e..467b96e1 100644 --- a/chipper/webroot/initial.html +++ b/chipper/webroot/initial.html @@ -106,7 +106,7 @@

Knowledge Graph Setup



- +
Would you like to enable the intent graph feature? This forwards the request to Together if the regular intent processor didn't understand what you said.
diff --git a/chipper/webroot/setup.html b/chipper/webroot/setup.html index ac16561b..f6ea2b1b 100644 --- a/chipper/webroot/setup.html +++ b/chipper/webroot/setup.html @@ -71,7 +71,7 @@

Knowledge Graph Setup