Skip to content

Commit 7b2cde9

Browse files
authored
Allow canceling llama-file requests (#14515)
fixed #14514 Signed-off-by: Jonas Helming <[email protected]>
1 parent 4b9db2a commit 7b2cde9

File tree

1 file changed

+6
-2
lines changed

1 file changed

+6
-2
lines changed

packages/ai-llamafile/src/common/llamafile-language-model.ts

+6-2
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
// *****************************************************************************
1616

1717
import { LanguageModel, LanguageModelRequest, LanguageModelResponse, LanguageModelStreamResponsePart } from '@theia/ai-core';
18-
18+
import { CancellationToken } from '@theia/core';
1919
export class LlamafileLanguageModel implements LanguageModel {
2020

2121
readonly providerId = 'llamafile';
@@ -28,7 +28,7 @@ export class LlamafileLanguageModel implements LanguageModel {
2828
return this.name;
2929
}
3030

31-
async request(request: LanguageModelRequest): Promise<LanguageModelResponse> {
31+
async request(request: LanguageModelRequest, cancellationToken?: CancellationToken): Promise<LanguageModelResponse> {
3232
try {
3333
let prompt = request.messages.map(message => {
3434
switch (message.actor) {
@@ -70,6 +70,10 @@ export class LlamafileLanguageModel implements LanguageModel {
7070
[Symbol.asyncIterator](): AsyncIterator<LanguageModelStreamResponsePart> {
7171
return {
7272
async next(): Promise<IteratorResult<LanguageModelStreamResponsePart>> {
73+
if (cancellationToken?.isCancellationRequested) {
74+
reader.cancel();
75+
return { value: undefined, done: true };
76+
}
7377
const { value, done } = await reader.read();
7478
if (done) {
7579
return { value: undefined, done: true };

0 commit comments

Comments
 (0)