Skip to content

Commit fc333d4

Browse files
committed
feature: fixed followup questions issues
1 parent 26f35d3 commit fc333d4

File tree

12 files changed

+52
-22
lines changed

12 files changed

+52
-22
lines changed

clients/search-component/src/TrieveModal/Chat/ChatMessage.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -266,7 +266,7 @@ export const Message = ({
266266
: null}
267267
{props.followupQuestions && messages.length == idx + 1 &&
268268
<FollowupQueries /> }
269-
{isDoneReading && <div className="feedback-wrapper">
269+
{isDoneReading && messages.length == idx + 1 && <div className="feedback-wrapper">
270270
<span className="spacer"></span>
271271
<div className="feedback-icons">
272272
{copied ? (

clients/search-component/src/utils/hooks/modal-context.tsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,7 @@ export type ModalProps = {
109109
showFloatingSearchIcon?: boolean;
110110
showFloatingInput?: boolean;
111111
inlineHeader?: string;
112+
suggestedQueriesContext: string;
112113
};
113114

114115
const defaultProps = {
@@ -152,6 +153,7 @@ const defaultProps = {
152153
showFloatingInput: false,
153154
inline: false,
154155
inlineHeader: "AI Assistant by Trieve",
156+
suggestedQueriesContext: "You are an ecommerce sales assistant to help people buy items."
155157
};
156158

157159
const ModalContext = createContext<{

clients/search-component/src/utils/hooks/useFollowupQuestions.ts

Lines changed: 7 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,11 @@ import { useEffect, useState } from "react";
22
import { SuggestedQueriesResponse } from "trieve-ts-sdk";
33
import { getSuggestedQuestions } from "../trieve";
44
import { useModalState } from "./modal-context";
5+
import { useChatState } from "./chat-context";
56

67
export const useFollowupQuestions = () => {
7-
const { query, trieveSDK, currentGroup, props } = useModalState();
8+
const { trieveSDK, currentGroup, props } = useModalState();
9+
const { currentQuestion } = useChatState();
810
const [isLoading, setIsLoading] = useState(false);
911
const [suggestedQuestions, setSuggestedQuestions] = useState<
1012
SuggestedQueriesResponse["queries"]
@@ -14,11 +16,12 @@ export const useFollowupQuestions = () => {
1416
setIsLoading(true);
1517
const queries = await getSuggestedQuestions({
1618
trieve: trieveSDK,
17-
query,
19+
query: currentQuestion,
1820
count: props.numberOfSuggestions ?? 3,
21+
context: props.suggestedQueriesContext,
1922
group: currentGroup
2023
});
21-
setSuggestedQuestions(queries.queries.splice(0, 3));
24+
setSuggestedQuestions(queries.queries);
2225
setIsLoading(false);
2326
};
2427

@@ -31,16 +34,7 @@ export const useFollowupQuestions = () => {
3134
const abortController = new AbortController();
3235

3336
const timeoutId = setTimeout(async () => {
34-
const queries = await getSuggestedQuestions({
35-
trieve: trieveSDK,
36-
abortController,
37-
group: currentGroup,
38-
query,
39-
count: props.numberOfSuggestions ?? 3,
40-
context: "You are an assistant searching through a docs website"
41-
});
42-
setSuggestedQuestions(queries.queries);
43-
setIsLoading(false);
37+
getQuestions();
4438
});
4539

4640
return () => {

clients/search-component/src/utils/hooks/useSuggestedQueries.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ export const useSuggestedQueries = () => {
2121
trieve: trieveSDK,
2222
query,
2323
count: props.numberOfSuggestions ?? 3,
24+
context: props.suggestedQueriesContext,
2425
abortController,
2526
});
2627
setSuggestedQueries(queries.queries);

clients/search-component/src/utils/hooks/useSuggestedQuestions.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ export const useSuggestedQuestions = () => {
1515
const queries = await getSuggestedQuestions({
1616
trieve: trieveSDK,
1717
count: props.numberOfSuggestions ?? 3,
18+
context: props.suggestedQueriesContext,
1819
query,
1920
});
2021
setSuggestedQuestions(queries.queries);
@@ -38,6 +39,7 @@ export const useSuggestedQuestions = () => {
3839
const queries = await getSuggestedQuestions({
3940
trieve: trieveSDK,
4041
count: props.numberOfSuggestions ?? 3,
42+
context: props.suggestedQueriesContext,
4143
abortController,
4244
query,
4345
});

clients/search-component/src/utils/trieve.ts

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -259,11 +259,13 @@ export const getSuggestedQueries = async ({
259259
trieve,
260260
query,
261261
count,
262+
context,
262263
abortController,
263264
}: {
264265
query: string;
265266
trieve: TrieveSDK;
266267
count: number;
268+
context: string;
267269
abortController?: AbortController;
268270
}) => {
269271
return trieve.suggestedQueries(
@@ -272,7 +274,7 @@ export const getSuggestedQueries = async ({
272274
suggestion_type: "keyword",
273275
suggestions_to_create: count,
274276
search_type: "semantic",
275-
context: "You are a user searching through a docs website",
277+
context: context
276278
},
277279
abortController?.signal
278280
);
@@ -288,22 +290,17 @@ export const getSuggestedQuestions = async ({
288290
}: {
289291
trieve: TrieveSDK;
290292
abortController?: AbortController;
291-
context?: string;
293+
context: string;
292294
query?: string;
293295
count: number;
294296
group?: ChunkGroup | null;
295297
}) => {
296-
let suggestedQueriesContext =
297-
"You are a user searching through a docs website";
298-
if (context) {
299-
suggestedQueriesContext = context;
300-
}
301298
return trieve.suggestedQueries(
302299
{
303300
...(query && { query }),
304301
suggestion_type: "question",
305302
search_type: "semantic",
306-
context: suggestedQueriesContext,
303+
context: context,
307304
suggestions_to_create: count,
308305
...(group &&
309306
group?.tracking_id && {

clients/ts-sdk/openapi.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12718,6 +12718,10 @@
1271812718
"type": "boolean",
1271912719
"nullable": true
1272012720
},
12721+
"suggestedQueriesContext": {
12722+
"type": "string",
12723+
"nullable": true
12724+
},
1272112725
"tabMessages": {
1272212726
"type": "array",
1272312727
"items": {

clients/ts-sdk/src/types.gen.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2119,6 +2119,7 @@ export type PublicPageParameters = {
21192119
showFloatingSearchIcon?: (boolean) | null;
21202120
singleProductOptions?: ((SingleProductOptions) | null);
21212121
suggestedQueries?: (boolean) | null;
2122+
suggestedQueriesContext?: (string) | null;
21222123
tabMessages?: Array<PublicPageTabMessage> | null;
21232124
tags?: Array<PublicPageTag> | null;
21242125
theme?: ((PublicPageTheme) | null);

frontends/dashboard/src/pages/dataset/PublicPageSettings.tsx

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1073,6 +1073,21 @@ const PublicPageControls = () => {
10731073
/>
10741074
</div>
10751075

1076+
<div class="flex gap-4 pb-2 pt-2">
1077+
<div class="grow">
1078+
<label class="block">Suggested Queries Context</label>
1079+
<textarea
1080+
cols={2}
1081+
placeholder="You are an ecommerce sales assistant to help people buy items."
1082+
value={ extraParams.suggestedQueriesContext || ""}
1083+
onInput={(e) => {
1084+
setExtraParams("suggestedQueriesContext", e.currentTarget.value)
1085+
}}
1086+
class="block w-full rounded border border-neutral-300 px-3 py-1.5 shadow-sm placeholder:text-neutral-400 focus:outline-magenta-500 sm:text-sm sm:leading-6"
1087+
/>
1088+
</div>
1089+
</div>
1090+
10761091
<div class="grid grid-cols-2 gap-4">
10771092
<div class="flex gap-2">
10781093
<div class="flex items-center gap-1">

server/src/data/models.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3297,6 +3297,9 @@ impl DatasetConfigurationDTO {
32973297
inline_header: page_parameters_self
32983298
.inline_header
32993299
.or(page_parameters_curr.inline_header),
3300+
suggested_queries_context: page_parameters_self
3301+
.suggested_queries_context
3302+
.or(page_parameters_curr.suggested_queries_context),
33003303
}),
33013304
},
33023305
DISABLE_ANALYTICS: self

0 commit comments

Comments
 (0)