summaryrefslogtreecommitdiffstats
path: root/src/rag
diff options
context:
space:
mode:
authorsigoden <sigoden@gmail.com>2024-07-02 09:20:40 +0800
committerGitHub <noreply@github.com>2024-07-02 09:20:40 +0800
commitbbe08d6d81c9d8aef87223082a70e2b8eaae1095 (patch)
tree3e6544f8627d67906f365c3adb05f56281427827 /src/rag
parent2f2b13c891d19e29b18ff09f7f540d7fded15887 (diff)
downloadaichat-bbe08d6d81c9d8aef87223082a70e2b8eaae1095.tar.gz
refactor: improve RAG (#676)
Diffstat (limited to 'src/rag')
-rw-r--r--src/rag/mod.rs10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/rag/mod.rs b/src/rag/mod.rs
index f5f68ae..e2f6ddd 100644
--- a/src/rag/mod.rs
+++ b/src/rag/mod.rs
@@ -316,8 +316,14 @@ impl Rag {
self.data.chunk_overlap,
&separator,
);
+
+ let metadata = metadata
+ .iter()
+ .map(|(k, v)| format!("{k}: {v}\n"))
+ .collect::<Vec<String>>()
+ .join("");
let split_options = SplitterChunkHeaderOptions::default().with_chunk_header(&format!(
- "<document_metadata>\npath: {path}</document_metadata>\n\n"
+ "<document_metadata>\npath: {path}\n{metadata}</document_metadata>\n\n"
));
let document = RagDocument::new(contents);
let splitted_documents = splitter.split_documents(&[document], &split_options);
@@ -354,7 +360,7 @@ impl Rag {
self.data.add(next_file_id, files, document_ids, embeddings);
self.data.document_paths = document_paths;
- progress(&spinner, "Building database".into());
+ progress(&spinner, "Building store".into());
self.hnsw = self.data.build_hnsw();
self.bm25 = self.data.build_bm25();