diff options
Diffstat (limited to 'bot.go')
| -rw-r--r-- | bot.go | 65 |
1 files changed, 4 insertions, 61 deletions
@@ -23,8 +23,6 @@ import ( "strings" "sync" "time" - - "github.com/neurosnap/sentences/english" ) var ( @@ -753,62 +751,6 @@ func sendMsgToLLM(body io.Reader) { } } -func chatRagUse(qText string) (string, error) { - logger.Debug("Starting RAG query", "original_query", qText) - tokenizer, err := english.NewSentenceTokenizer(nil) - if err != nil { - logger.Error("failed to create sentence tokenizer", "error", err) - return "", err - } - // this where llm should find the questions in text and ask them - questionsS := tokenizer.Tokenize(qText) - questions := make([]string, len(questionsS)) - for i, q := range questionsS { - questions[i] = q.Text - logger.Debug("RAG question extracted", "index", i, "question", q.Text) - } - if len(questions) == 0 { - logger.Warn("No questions extracted from query text", "query", qText) - return "No related results from RAG vector storage.", nil - } - respVecs := []models.VectorRow{} - for i, q := range questions { - logger.Debug("Processing RAG question", "index", i, "question", q) - emb, err := ragger.LineToVector(q) - if err != nil { - logger.Error("failed to get embeddings for RAG", "error", err, "index", i, "question", q) - continue - } - logger.Debug("Got embeddings for question", "index", i, "question_len", len(q), "embedding_len", len(emb)) - // Create EmbeddingResp struct for the search - embeddingResp := &models.EmbeddingResp{ - Embedding: emb, - Index: 0, // Not used in search but required for the struct - } - vecs, err := ragger.SearchEmb(embeddingResp) - if err != nil { - logger.Error("failed to query embeddings in RAG", "error", err, "index", i, "question", q) - continue - } - logger.Debug("RAG search returned vectors", "index", i, "question", q, "vector_count", len(vecs)) - respVecs = append(respVecs, vecs...) - } - // get raw text - resps := []string{} - logger.Debug("RAG query final results", "total_vecs_found", len(respVecs)) - for _, rv := range respVecs { - resps = append(resps, rv.RawText) - logger.Debug("RAG result", "slug", rv.Slug, "filename", rv.FileName, "raw_text_len", len(rv.RawText)) - } - if len(resps) == 0 { - logger.Info("No RAG results found for query", "original_query", qText, "question_count", len(questions)) - return "No related results from RAG vector storage.", nil - } - result := strings.Join(resps, "\n") - logger.Debug("RAG query completed", "result_len", len(result), "response_count", len(resps)) - return result, nil -} - func roleToIcon(role string) string { return "<" + role + ">: " } @@ -838,11 +780,12 @@ func showSpinner() { time.Sleep(100 * time.Millisecond) spin := i % len(spinners) app.QueueUpdateDraw(func() { - if toolRunningMode { + switch { + case toolRunningMode: textArea.SetTitle(spinners[spin] + " tool") - } else if botRespMode { + case botRespMode: textArea.SetTitle(spinners[spin] + " " + botPersona) - } else { + default: textArea.SetTitle(spinners[spin] + " input") } }) |
