From 323f3c516c6a1bdeae787969bd8277b8fd3833fc Mon Sep 17 00:00:00 2001 From: Zan <37948383+zandko@users.noreply.github.com> Date: Tue, 23 Jul 2024 10:06:33 +0800 Subject: [PATCH] perf: Optimize document filtering and sorting for performance --- src/agents/redditSearchAgent.ts | 6 +++--- src/agents/webSearchAgent.ts | 6 +++--- src/agents/youtubeSearchAgent.ts | 6 +++--- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/agents/redditSearchAgent.ts b/src/agents/redditSearchAgent.ts index 3c60c68..578e2bb 100644 --- a/src/agents/redditSearchAgent.ts +++ b/src/agents/redditSearchAgent.ts @@ -52,8 +52,8 @@ const basicRedditSearchResponsePrompt = ` Place these citations at the end of that particular sentence. You can cite the same sentence multiple times if it is relevant to the user's query like [number1][number2]. However you do not need to cite it using the same number. You can use different numbers to cite the same sentence multiple times. The number refers to the number of the search result (passed in the context) used to generate that part of the answer. - Anything inside the following \`context\` HTML block provided below is for your knowledge returned by Reddit and is not shared by the user. You have to answer question on the basis of it and cite the relevant information from it but you do not have to - talk about the context in your response. + Anything inside the following \`context\` HTML block provided below is for your knowledge returned by Reddit and is not shared by the user. You have to answer question on the basis of it and cite the relevant information from it but you do not have to + talk about the context in your response. {context} @@ -177,9 +177,9 @@ const createBasicRedditSearchAnsweringChain = ( }); const sortedDocs = similarity + .filter((sim) => sim.similarity > 0.3) .sort((a, b) => b.similarity - a.similarity) .slice(0, 15) - .filter((sim) => sim.similarity > 0.3) .map((sim) => docsWithContent[sim.index]); return sortedDocs; diff --git a/src/agents/webSearchAgent.ts b/src/agents/webSearchAgent.ts index 04de148..9818d01 100644 --- a/src/agents/webSearchAgent.ts +++ b/src/agents/webSearchAgent.ts @@ -52,8 +52,8 @@ const basicWebSearchResponsePrompt = ` Place these citations at the end of that particular sentence. You can cite the same sentence multiple times if it is relevant to the user's query like [number1][number2]. However you do not need to cite it using the same number. You can use different numbers to cite the same sentence multiple times. The number refers to the number of the search result (passed in the context) used to generate that part of the answer. - Anything inside the following \`context\` HTML block provided below is for your knowledge returned by the search engine and is not shared by the user. You have to answer question on the basis of it and cite the relevant information from it but you do not have to - talk about the context in your response. + Anything inside the following \`context\` HTML block provided below is for your knowledge returned by the search engine and is not shared by the user. You have to answer question on the basis of it and cite the relevant information from it but you do not have to + talk about the context in your response. {context} @@ -175,8 +175,8 @@ const createBasicWebSearchAnsweringChain = ( }); const sortedDocs = similarity - .sort((a, b) => b.similarity - a.similarity) .filter((sim) => sim.similarity > 0.5) + .sort((a, b) => b.similarity - a.similarity) .slice(0, 15) .map((sim) => docsWithContent[sim.index]); diff --git a/src/agents/youtubeSearchAgent.ts b/src/agents/youtubeSearchAgent.ts index 334f67e..4133157 100644 --- a/src/agents/youtubeSearchAgent.ts +++ b/src/agents/youtubeSearchAgent.ts @@ -52,8 +52,8 @@ const basicYoutubeSearchResponsePrompt = ` Place these citations at the end of that particular sentence. You can cite the same sentence multiple times if it is relevant to the user's query like [number1][number2]. However you do not need to cite it using the same number. You can use different numbers to cite the same sentence multiple times. The number refers to the number of the search result (passed in the context) used to generate that part of the answer. - Anything inside the following \`context\` HTML block provided below is for your knowledge returned by Youtube and is not shared by the user. You have to answer question on the basis of it and cite the relevant information from it but you do not have to - talk about the context in your response. + Anything inside the following \`context\` HTML block provided below is for your knowledge returned by Youtube and is not shared by the user. You have to answer question on the basis of it and cite the relevant information from it but you do not have to + talk about the context in your response. {context} @@ -177,9 +177,9 @@ const createBasicYoutubeSearchAnsweringChain = ( }); const sortedDocs = similarity + .filter((sim) => sim.similarity > 0.3) .sort((a, b) => b.similarity - a.similarity) .slice(0, 15) - .filter((sim) => sim.similarity > 0.3) .map((sim) => docsWithContent[sim.index]); return sortedDocs;