Skip to content

Commit f4aec0c

Browse files
committed
chore: prevent re-sending requests
1 parent 26291d1 commit f4aec0c

File tree

1 file changed

+14
-6
lines changed

1 file changed

+14
-6
lines changed

packages/compass-assistant/src/docs-provider-transport.ts

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -33,22 +33,30 @@ export class DocsProviderTransport implements ChatTransport<AssistantMessage> {
3333
this.instructions = instructions;
3434
}
3535

36+
static emptyStream = new ReadableStream<UIMessageChunk>({
37+
start(controller) {
38+
controller.close();
39+
},
40+
});
41+
3642
sendMessages({
3743
messages,
3844
abortSignal,
3945
}: Parameters<ChatTransport<AssistantMessage>['sendMessages']>[0]) {
46+
// If the most recent message is a message that is meant to be excluded
47+
// then we do not need to send this request to the assistant API as it's likely
48+
// redundant otherwise.
49+
if (shouldExcludeMessage(messages[messages.length - 1])) {
50+
return Promise.resolve(DocsProviderTransport.emptyStream);
51+
}
52+
4053
const filteredMessages = messages.filter(
4154
(message) => !shouldExcludeMessage(message)
4255
);
4356

4457
// If no messages remain after filtering, return an empty stream
4558
if (filteredMessages.length === 0) {
46-
const emptyStream = new ReadableStream<UIMessageChunk>({
47-
start(controller) {
48-
controller.close();
49-
},
50-
});
51-
return Promise.resolve(emptyStream);
59+
return Promise.resolve(DocsProviderTransport.emptyStream);
5260
}
5361

5462
const result = streamText({

0 commit comments

Comments
 (0)