mirror of
https://github.com/infiniflow/ragflow.git
synced 2026-11-10 21:32:43 +08:00
Fix: keep metadata sorted, so that prompt could be the same (#21459)
This commit is contained in:
1 parent
914bcb0307
commit
f178ffed98
3 files changed
+23
-6
No files matched your search
@@ -2497,8 +2497,13 @@ func (s *ChatPipelineService) kbPrompt(kbinfos map[string]interface{}, maxTokens
|
||||
cnt += drawNode("Title", getMapString(ck, "docnm_kwd", "document_name"))
|
||||
cnt += drawNode("URL", getMapString(ck, "url"))
|
||||
if meta, ok := ck["document_metadata"].(map[string]interface{}); ok {
|
||||
for k, v := range meta {
|
||||
cnt += drawNode(k, v)
|
||||
keys := make([]string, 0, len(meta))
|
||||
for k := range meta {
|
||||
keys = append(keys, k)
|
||||
}
|
||||
sort.Strings(keys)
|
||||
for _, k := range keys {
|
||||
cnt += drawNode(k, meta[k])
|
||||
}
|
||||
}
|
||||
cnt += "\n└── Content:\n"
|
||||
|
||||
@@ -24,6 +24,7 @@ import (
|
||||
"io"
|
||||
"net/http"
|
||||
"regexp"
|
||||
"sort"
|
||||
"strings"
|
||||
"sync"
|
||||
"time"
|
||||
@@ -760,8 +761,13 @@ func kbPrompt(kbinfos map[string]interface{}, maxTokens int, hashID bool) []stri
|
||||
cnt += drawNode("URL", getMapString(m, "url"))
|
||||
|
||||
if meta, ok := m["document_metadata"].(map[string]interface{}); ok {
|
||||
for k, v := range meta {
|
||||
cnt += drawNode(k, v)
|
||||
keys := make([]string, 0, len(meta))
|
||||
for k := range meta {
|
||||
keys = append(keys, k)
|
||||
}
|
||||
sort.Strings(keys)
|
||||
for _, k := range keys {
|
||||
cnt += drawNode(k, meta[k])
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -18,6 +18,7 @@ package service
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"sort"
|
||||
"strings"
|
||||
|
||||
"ragflow/internal/tokenizer"
|
||||
@@ -103,8 +104,13 @@ func formatChunkEntry(ck SourcedChunk, index int) string {
|
||||
fmt.Fprintf(&b, "├── URL: %s\n", collapseNewlines(ck.URL))
|
||||
}
|
||||
if ck.DocumentMetadata != nil {
|
||||
for k, v := range ck.DocumentMetadata {
|
||||
fmt.Fprintf(&b, "├── %s: %v\n", k, collapseNewlines(fmt.Sprint(v)))
|
||||
keys := make([]string, 0, len(ck.DocumentMetadata))
|
||||
for k := range ck.DocumentMetadata {
|
||||
keys = append(keys, k)
|
||||
}
|
||||
sort.Strings(keys)
|
||||
for _, k := range keys {
|
||||
fmt.Fprintf(&b, "├── %s: %v\n", k, collapseNewlines(fmt.Sprint(ck.DocumentMetadata[k])))
|
||||
}
|
||||
}
|
||||
b.WriteString("└── Content:\n")
|
||||
|
||||
Reference in new issue
Block a user