From 820400e0e4b1e635b7c39d849af29d8845819dd4 Mon Sep 17 00:00:00 2001 From: Vidyoot Senthil Date: Fri, 30 May 2025 13:11:18 -0700 Subject: [PATCH] refactor: cleanup chat-context to work with agentic search --- .../example/src/routes/ecommerce.tsx | 2 +- .../TrieveModal/Chat/SuggestedQuestions.tsx | 39 +- .../TrieveModal/Search/SuggestedQueries.tsx | 15 +- .../src/TrieveModal/index.tsx | 9 +- .../src/utils/hooks/chat-context.tsx | 631 ++---------------- .../src/pages/dataset/PublicPageSettings.tsx | 4 +- 6 files changed, 124 insertions(+), 576 deletions(-) diff --git a/clients/search-component/example/src/routes/ecommerce.tsx b/clients/search-component/example/src/routes/ecommerce.tsx index ffeb9f7ce4..4bb26cace0 100644 --- a/clients/search-component/example/src/routes/ecommerce.tsx +++ b/clients/search-component/example/src/routes/ecommerce.tsx @@ -25,7 +25,7 @@ export default function ECommerce() { import.meta.env.VITE_SHOW_FLOATING_SEARCH_ICON == "true"; const showFloatingInput = import.meta.env.VITE_SHOW_FLOATING_INPUT == "true"; const usePagefind = import.meta.env.VITE_USE_PAGEFIND == "true"; - const defaultSearchQueries: any= ( + const defaultSearchQueries: any = ( import.meta.env.VITE_DEFAULT_SEARCH_QUERIES ?? "" ).split(","); const defaultTags: any[] = JSON.parse( diff --git a/clients/search-component/src/TrieveModal/Chat/SuggestedQuestions.tsx b/clients/search-component/src/TrieveModal/Chat/SuggestedQuestions.tsx index 43af9e4966..1072308c1c 100644 --- a/clients/search-component/src/TrieveModal/Chat/SuggestedQuestions.tsx +++ b/clients/search-component/src/TrieveModal/Chat/SuggestedQuestions.tsx @@ -22,8 +22,7 @@ export const SuggestedQuestions = ({ const { suggestedQuestions, isLoadingSuggestedQueries, getQuestions } = useSuggestedQuestions(); - const { props, trieveSDK, fingerprint, abTreatment } = - useModalState(); + const { props, trieveSDK, fingerprint, abTreatment } = useModalState(); const [parent] = useAutoAnimate({ duration: 100 }); if (messages.length) { @@ -33,7 +32,13 @@ export const SuggestedQuestions = ({ const handleSuggestedQuestion = async ( q: AiQuestion | DefaultSearchQuery | string, ) => { - setCurrentQuestion(isAiQuestion(q) ? q.questionText : isDefaultSearchQuery(q) ? q.query ?? "" : q); + setCurrentQuestion( + isAiQuestion(q) + ? q.questionText + : isDefaultSearchQuery(q) + ? (q.query ?? "") + : q, + ); if (!isDefaultSearchQuery(q)) { askQuestion( @@ -44,7 +49,11 @@ export const SuggestedQuestions = ({ ); } else { askQuestion( - isAiQuestion(q) ? q.questionText : isDefaultSearchQuery(q) ? q.query ?? "" : q, + isAiQuestion(q) + ? q.questionText + : isDefaultSearchQuery(q) + ? (q.query ?? "") + : q, undefined, isAiQuestion(q) ? (q.products?.map((p) => p.groupId) ?? []) : undefined, isAiQuestion(q) && q.promptForAI !== "" ? q.promptForAI : undefined, @@ -63,7 +72,11 @@ export const SuggestedQuestions = ({ user_id: fingerprint, location: window.location.href, metadata: { - followup_query: isAiQuestion(q) ? q.questionText : isDefaultSearchQuery(q) ? q.query ?? "" : q, + followup_query: isAiQuestion(q) + ? q.questionText + : isDefaultSearchQuery(q) + ? (q.query ?? "") + : q, component_props: props, ab_treatment: abTreatment, }, @@ -117,17 +130,27 @@ export const SuggestedQuestions = ({ onClick={() => { handleSuggestedQuestion(q); }} - key={isAiQuestion(q) ? q.questionText : isDefaultSearchQuery(q) ? q.query ?? "": q} + key={ + isAiQuestion(q) + ? q.questionText + : isDefaultSearchQuery(q) + ? (q.query ?? "") + : q + } className={`suggested-question tv-flex tv-gap-1 tv-items-center${ isLoadingSuggestedQueries ? " loading" : "" }`} > - {isAiQuestion(q) ? q.questionText : isDefaultSearchQuery(q) ? q.query ?? "": q} + {isAiQuestion(q) + ? q.questionText + : isDefaultSearchQuery(q) + ? (q.query ?? "") + : q} ))} ); -}; \ No newline at end of file +}; diff --git a/clients/search-component/src/TrieveModal/Search/SuggestedQueries.tsx b/clients/search-component/src/TrieveModal/Search/SuggestedQueries.tsx index 5b99d74264..70eedc1675 100644 --- a/clients/search-component/src/TrieveModal/Search/SuggestedQueries.tsx +++ b/clients/search-component/src/TrieveModal/Search/SuggestedQueries.tsx @@ -1,6 +1,9 @@ import React, { useCallback, useEffect, useState } from "react"; import { cn } from "../../utils/styles"; -import { useModalState, isDefaultSearchQuery } from "../../utils/hooks/modal-context"; +import { + useModalState, + isDefaultSearchQuery, +} from "../../utils/hooks/modal-context"; import { DefaultSearchQuery } from "trieve-ts-sdk"; import { getSuggestedQueries } from "../../utils/trieve"; @@ -42,9 +45,11 @@ export const SuggestedQueries = () => { useEffect(() => { const defaultQueries = - props.defaultSearchQueries && props.defaultSearchQueries.length > 0 && isDefaultSearchQuery(props.defaultSearchQueries[0]) + props.defaultSearchQueries && + props.defaultSearchQueries.length > 0 && + isDefaultSearchQuery(props.defaultSearchQueries[0]) ? props.defaultSearchQueries - : props.defaultSearchQueries?.filter((q) => q !== "") ?? []; + : (props.defaultSearchQueries?.filter((q) => q !== "") ?? []); if (props.defaultSearchQueries?.length) { setSuggestedQueries(defaultQueries); @@ -79,7 +84,9 @@ export const SuggestedQueries = () => {
Loading...
) : ( suggestedQueries.map((q) => { - let query = isDefaultSearchQuery(q) ? q.query?.replace(/^-|\*$/g, "") : q.replace(/^-|\*$/g, ""); + let query = isDefaultSearchQuery(q) + ? q.query?.replace(/^-|\*$/g, "") + : q.replace(/^-|\*$/g, ""); query = query?.trim(); return (