forked from open-webui/open-webui
		
	Merge pull request #675 from HenryHolloway/ollama-webui-full-search
feat: full-context search
This commit is contained in:
		
						commit
						9fccf72bfc
					
				
					 1 changed files with 28 additions and 11 deletions
				
			
		|  | @ -11,6 +11,7 @@ | |||
| 	import { | ||||
| 		deleteChatById, | ||||
| 		getChatList, | ||||
| 		getChatById, | ||||
| 		getChatListByTagName, | ||||
| 		updateChatById | ||||
| 	} from '$lib/apis/chats'; | ||||
|  | @ -31,16 +32,24 @@ | |||
| 		if (window.innerWidth > 1280) { | ||||
| 			show = true; | ||||
| 		} | ||||
| 
 | ||||
| 		await chats.set(await getChatList(localStorage.token)); | ||||
| 
 | ||||
| 		tags.subscribe(async (value) => { | ||||
| 			if (value.length === 0) { | ||||
| 				await chats.set(await getChatList(localStorage.token)); | ||||
| 			} | ||||
| 		}); | ||||
| 	}); | ||||
| 
 | ||||
| 	// Helper function to fetch and add chat content to each chat | ||||
| 	const enrichChatsWithContent = async (chatList) => { | ||||
| 		const enrichedChats = await Promise.all( | ||||
| 			chatList.map(async (chat) => { | ||||
| 				const chatDetails = await getChatById(localStorage.token, chat.id).catch((error) => null); // Handle error or non-existent chat gracefully | ||||
| 				if (chatDetails) { | ||||
| 					chat.chat = chatDetails.chat; // Assuming chatDetails.chat contains the chat content | ||||
| 				} | ||||
| 				return chat; | ||||
| 			}) | ||||
| 		); | ||||
| 
 | ||||
| 		await chats.set(enrichedChats); | ||||
| 	}; | ||||
| 
 | ||||
| 	const loadChat = async (id) => { | ||||
| 		goto(`/c/${id}`); | ||||
| 	}; | ||||
|  | @ -271,6 +280,9 @@ | |||
| 						class="w-full rounded-r py-1.5 pl-2.5 pr-4 text-sm text-gray-300 bg-gray-950 outline-none" | ||||
| 						placeholder="Search" | ||||
| 						bind:value={search} | ||||
| 						on:focus={() => { | ||||
| 							enrichChatsWithContent($chats); | ||||
| 						}} | ||||
| 					/> | ||||
| 
 | ||||
| 					<!-- <div class="self-center pr-3 py-2  bg-gray-900"> | ||||
|  | @ -323,11 +335,16 @@ | |||
| 						let title = chat.title.toLowerCase(); | ||||
| 						const query = search.toLowerCase(); | ||||
| 
 | ||||
| 						if (title.includes(query)) { | ||||
| 							return true; | ||||
| 						} else { | ||||
| 							return false; | ||||
| 						let contentMatches = false; | ||||
| 						// Access the messages within chat.chat.messages | ||||
| 						if (chat.chat && chat.chat.messages && Array.isArray(chat.chat.messages)) { | ||||
| 							contentMatches = chat.chat.messages.some((message) => { | ||||
| 								// Check if message.content exists and includes the search query | ||||
| 								return message.content && message.content.toLowerCase().includes(query); | ||||
| 							}); | ||||
| 						} | ||||
| 
 | ||||
| 						return title.includes(query) || contentMatches; | ||||
| 					} | ||||
| 				}) as chat, i} | ||||
| 					<div class=" w-full pr-2 relative"> | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Timothy Jaeryang Baek
						Timothy Jaeryang Baek