Skip to content

Commit f7f4459

Browse files
authored
Disable data collection features on opt-out (#3425)
- Prevents draft messages from being generated when a user opts-out from data for a chat - Hides the thumbs up and down buttons - Disables encourage message
1 parent e1ed96a commit f7f4459

File tree

3 files changed

+37
-20
lines changed

3 files changed

+37
-20
lines changed

website/src/components/Chat/ChatConversation.tsx

Lines changed: 27 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -52,22 +52,26 @@ export const ChatConversation = memo(function ChatConversation({ chatId, getConf
5252

5353
const toast = useToast();
5454

55-
const { isLoading: isLoadingMessages } = useSWR<ChatItem>(chatId ? API_ROUTES.GET_CHAT(chatId) : null, get, {
56-
onSuccess(data) {
57-
setMessages(data.messages.sort((a, b) => Date.parse(a.created_at) - Date.parse(b.created_at)));
58-
setActiveThreadTailMessageId(data.active_thread_tail_message_id);
59-
},
60-
onError: (err) => {
61-
if (err instanceof OasstError && err.httpStatusCode === 404) {
62-
// chat does not exist, probably deleted
63-
return router.push("/chat");
64-
}
65-
toast({
66-
title: "Failed to load chat",
67-
status: "error",
68-
});
69-
},
70-
});
55+
const { isLoading: isLoadingMessages, data: chatData } = useSWR<ChatItem>(
56+
chatId ? API_ROUTES.GET_CHAT(chatId) : null,
57+
get,
58+
{
59+
onSuccess(data) {
60+
setMessages(data.messages.sort((a, b) => Date.parse(a.created_at) - Date.parse(b.created_at)));
61+
setActiveThreadTailMessageId(data.active_thread_tail_message_id);
62+
},
63+
onError: (err) => {
64+
if (err instanceof OasstError && err.httpStatusCode === 404) {
65+
// chat does not exist, probably deleted
66+
return router.push("/chat");
67+
}
68+
toast({
69+
title: "Failed to load chat",
70+
status: "error",
71+
});
72+
},
73+
}
74+
);
7175

7276
const createAndFetchAssistantMessage = useCallback(
7377
async ({ parentId, chatId }: { parentId: string; chatId: string }) => {
@@ -306,7 +310,11 @@ export const ChatConversation = memo(function ChatConversation({ chatId, getConf
306310
setReytryingParentId(params.parentId);
307311

308312
const { plugins } = getConfigValues();
309-
if ((!ENABLE_DRAFTS_WITH_PLUGINS && plugins.length !== 0) || NUM_GENERATED_DRAFTS <= 1) {
313+
if (
314+
(!ENABLE_DRAFTS_WITH_PLUGINS && plugins.length !== 0) ||
315+
NUM_GENERATED_DRAFTS <= 1 ||
316+
!chatData.allow_data_use
317+
) {
310318
await createAndFetchAssistantMessage(params);
311319
setReytryingParentId(null);
312320
} else {
@@ -320,6 +328,7 @@ export const ChatConversation = memo(function ChatConversation({ chatId, getConf
320328
ENABLE_DRAFTS_WITH_PLUGINS,
321329
NUM_GENERATED_DRAFTS,
322330
createAndFetchAssistantMessage,
331+
chatData?.allow_data_use,
323332
]
324333
);
325334
const handleOnVote: ChatMessageEntryProps["onVote"] = useCallback(
@@ -470,6 +479,7 @@ export const ChatConversation = memo(function ChatConversation({ chatId, getConf
470479
onEditPrompt={handleEditPrompt}
471480
showEncourageMessage={showEncourageMessage}
472481
onEncourageMessageClose={setShowEncourageMessage.off}
482+
showFeedbackOptions={chatData?.allow_data_use}
473483
></ChatConversationTree>
474484
{isSending && streamedResponse && <PendingMessageEntry isAssistant content={streamedResponse} />}
475485
{(isSending || isAwaitingMessageSelect) &&

website/src/components/Chat/ChatMessageEntry.tsx

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ export type ChatMessageEntryProps = {
3838
"data-id"?: string;
3939
showEncourageMessage: boolean;
4040
onEncourageMessageClose: () => void;
41+
showFeedbackOptions: boolean;
4142
};
4243

4344
export const ChatMessageEntry = memo(function ChatMessageEntry({
@@ -50,6 +51,7 @@ export const ChatMessageEntry = memo(function ChatMessageEntry({
5051
canRetry,
5152
showEncourageMessage,
5253
onEncourageMessageClose,
54+
showFeedbackOptions,
5355
...props
5456
}: ChatMessageEntryProps) {
5557
const { t } = useTranslation("common");
@@ -179,8 +181,12 @@ export const ChatMessageEntry = memo(function ChatMessageEntry({
179181
) : (
180182
<BaseMessageEmojiButton emoji={Check} />
181183
)}
182-
<BaseMessageEmojiButton emoji={ThumbsUp} checked={score === 1} onClick={handleThumbsUp} />
183-
<BaseMessageEmojiButton emoji={ThumbsDown} checked={score === -1} onClick={handleThumbsDown} />
184+
{showFeedbackOptions && (
185+
<BaseMessageEmojiButton emoji={ThumbsUp} checked={score === 1} onClick={handleThumbsUp} />
186+
)}
187+
{showFeedbackOptions && (
188+
<BaseMessageEmojiButton emoji={ThumbsDown} checked={score === -1} onClick={handleThumbsDown} />
189+
)}
184190
</>
185191
)}
186192
</MessageInlineEmojiRow>
@@ -189,7 +195,7 @@ export const ChatMessageEntry = memo(function ChatMessageEntry({
189195
)}
190196
{work_parameters && <WorkParametersDisplay parameters={work_parameters} />}
191197
</PendingMessageEntry>
192-
{state === "complete" && isAssistant && showEncourageMessage && (
198+
{state === "complete" && isAssistant && showEncourageMessage && showFeedbackOptions && (
193199
<EncourageMessage
194200
onThumbsUp={handleThumbsUp}
195201
onThumbsDown={handleThumbsDown}

website/src/types/Chat.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ export interface ChatItem {
2121
created_at: string; //timestamp
2222
modified_at: string; //timestamp
2323
messages: InferenceMessage[];
24+
allow_data_use: boolean;
2425

2526
// those are not available when you first create a chat
2627
title?: string;

0 commit comments

Comments
 (0)