浏览代码

Merge pull request #439 from ollama-webui/rag-context-management

feat: better rag context management
Timothy Jaeryang Baek 1 年之前
父节点
当前提交
358f79f533
共有 2 个文件被更改,包括 22 次插入10 次删除
  1. 11 5
      src/routes/(app)/+page.svelte
  2. 11 5
      src/routes/(app)/c/[id]/+page.svelte

+ 11 - 5
src/routes/(app)/+page.svelte

@@ -288,9 +288,9 @@
 				...messages
 			]
 				.filter((message) => message)
-				.map((message) => ({
+				.map((message, idx, arr) => ({
 					role: message.role,
-					content: message?.raContent ?? message.content,
+					content: arr.length - 2 !== idx ? message.content : message?.raContent ?? message.content,
 					...(message.files && {
 						images: message.files
 							.filter((file) => file.type === 'image')
@@ -472,14 +472,17 @@
 				...messages
 			]
 				.filter((message) => message)
-				.map((message) => ({
+				.map((message, idx, arr) => ({
 					role: message.role,
 					...(message.files
 						? {
 								content: [
 									{
 										type: 'text',
-										text: message?.raContent ?? message.content
+										text:
+											arr.length - 1 !== idx
+												? message.content
+												: message?.raContent ?? message.content
 									},
 									...message.files
 										.filter((file) => file.type === 'image')
@@ -491,7 +494,10 @@
 										}))
 								]
 						  }
-						: { content: message?.raContent ?? message.content })
+						: {
+								content:
+									arr.length - 1 !== idx ? message.content : message?.raContent ?? message.content
+						  })
 				})),
 			seed: $settings?.options?.seed ?? undefined,
 			stop: $settings?.options?.stop ?? undefined,

+ 11 - 5
src/routes/(app)/c/[id]/+page.svelte

@@ -299,9 +299,9 @@
 				...messages
 			]
 				.filter((message) => message)
-				.map((message) => ({
+				.map((message, idx, arr) => ({
 					role: message.role,
-					content: message?.raContent ?? message.content,
+					content: arr.length - 2 !== idx ? message.content : message?.raContent ?? message.content,
 					...(message.files && {
 						images: message.files
 							.filter((file) => file.type === 'image')
@@ -483,14 +483,17 @@
 				...messages
 			]
 				.filter((message) => message)
-				.map((message) => ({
+				.map((message, idx, arr) => ({
 					role: message.role,
 					...(message.files
 						? {
 								content: [
 									{
 										type: 'text',
-										text: message?.raContent ?? message.content
+										text:
+											arr.length - 1 !== idx
+												? message.content
+												: message?.raContent ?? message.content
 									},
 									...message.files
 										.filter((file) => file.type === 'image')
@@ -502,7 +505,10 @@
 										}))
 								]
 						  }
-						: { content: message?.raContent ?? message.content })
+						: {
+								content:
+									arr.length - 1 !== idx ? message.content : message?.raContent ?? message.content
+						  })
 				})),
 			seed: $settings?.options?.seed ?? undefined,
 			stop: $settings?.options?.stop ?? undefined,