diff --git a/internal/george/ollama.go b/internal/george/ollama.go index 94705be..d44e8e2 100644 --- a/internal/george/ollama.go +++ b/internal/george/ollama.go @@ -17,7 +17,7 @@ type Ollama struct { helixClient helixclient.Client } -func NewOllama(emoteservice *emoteservice.SevenTvClient) *Ollama { +func NewOllama(emoteservice *emoteservice.SevenTvClient, helixClient helixclient.Client) *Ollama { llm, err := ollama.New(ollama.WithModel("mistral")) if err != nil { log.Fatal(err) @@ -26,6 +26,7 @@ func NewOllama(emoteservice *emoteservice.SevenTvClient) *Ollama { return &Ollama{ llm: llm, emoteservice: emoteservice, + helixClient: helixClient, } } @@ -47,10 +48,13 @@ func (o *Ollama) AnalyzeUser(query string, channel string, username string, mont return fmt.Errorf("failed to get user data: %w", err) } - user, err := o.emoteservice.GetUser(userDataMap[username].ID) - if err != nil { - log.Errorf("failed to get user data from 7tv: %s", err) - return nil + var user emoteservice.User + if _, ok := userDataMap[username]; ok { + user, err = o.emoteservice.GetUser(userDataMap[username].ID) + if err != nil { + log.Errorf("failed to get user data from 7tv: %s", err) + return nil + } } fullQuery += "\nlogs:```\n" diff --git a/main.go b/main.go index 31b53cd..0c86011 100644 --- a/main.go +++ b/main.go @@ -41,7 +41,7 @@ func main() { seventvClient := emoteservice.NewSevenTvClient(db) - george := george.NewOllama(seventvClient) + george := george.NewOllama(seventvClient, helixClient) emoteChief := emotechief.NewEmoteChief(cfg, db, helixClient, seventvClient) channelPointManager := channelpoint.NewChannelPointManager(cfg, helixClient, db) wsHandler := ws.NewWsHandler(authClient)