enhanceQuery 增强查询
(originalQuery string, items []*RetrievalItem)
| 610 | |
| 611 | // enhanceQuery 增强查询 |
| 612 | func (r *RAG) enhanceQuery(originalQuery string, items []*RetrievalItem) string { |
| 613 | if len(items) == 0 { |
| 614 | return originalQuery |
| 615 | } |
| 616 | |
| 617 | // 使用检索结果中的关键词增强查询 |
| 618 | keywords := make(map[string]bool) |
| 619 | for _, item := range items[:min(3, len(items))] { |
| 620 | if item.Item.Title != "" { |
| 621 | words := strings.FieldsSeq(item.Item.Title) |
| 622 | for word := range words { |
| 623 | if len(word) > 2 { |
| 624 | keywords[strings.ToLower(word)] = true |
| 625 | } |
| 626 | } |
| 627 | } |
| 628 | } |
| 629 | |
| 630 | var enhancedKeywords []string |
| 631 | for keyword := range keywords { |
| 632 | enhancedKeywords = append(enhancedKeywords, keyword) |
| 633 | } |
| 634 | |
| 635 | if len(enhancedKeywords) > 0 { |
| 636 | return fmt.Sprintf("%s %s", originalQuery, strings.Join(enhancedKeywords, " ")) |
| 637 | } |
| 638 | |
| 639 | return originalQuery |
| 640 | } |
| 641 | |
| 642 | // expandQuery 扩展查询 |
| 643 | func (r *RAG) expandQuery(query string, item *KnowledgeItem) string { |