chore: abort inference stream implementation
This commit is contained in:
parent
b5717e03fe
commit
664806e7f1
@ -4,7 +4,7 @@ import { Observable } from "rxjs";
|
||||
* @param recentMessages - An array of recent messages to use as context for the inference.
|
||||
* @returns An Observable that emits the generated response as a string.
|
||||
*/
|
||||
export function requestInference(recentMessages: any[]): Observable<string> {
|
||||
export function requestInference(recentMessages: any[], controller?: AbortController): Observable<string> {
|
||||
return new Observable((subscriber) => {
|
||||
const requestBody = JSON.stringify({
|
||||
messages: recentMessages,
|
||||
@ -20,6 +20,7 @@ export function requestInference(recentMessages: any[]): Observable<string> {
|
||||
"Access-Control-Allow-Origin": "*",
|
||||
},
|
||||
body: requestBody,
|
||||
signal: controller?.signal
|
||||
})
|
||||
.then(async (response) => {
|
||||
const stream = response.body;
|
||||
|
||||
@ -28,6 +28,7 @@ import { fs } from "@janhq/core";
|
||||
* It also subscribes to events emitted by the @janhq/core package and handles new message requests.
|
||||
*/
|
||||
export default class JanInferencePlugin implements InferencePlugin {
|
||||
controller = new AbortController();
|
||||
/**
|
||||
* Returns the type of the plugin.
|
||||
* @returns {PluginType} The type of the plugin.
|
||||
@ -75,7 +76,7 @@ export default class JanInferencePlugin implements InferencePlugin {
|
||||
* @returns {Promise<void>} A promise that resolves when the streaming is stopped.
|
||||
*/
|
||||
async stopInference(): Promise<void> {
|
||||
// TODO: Implementation
|
||||
this.controller.abort();
|
||||
}
|
||||
|
||||
/**
|
||||
@ -121,7 +122,9 @@ export default class JanInferencePlugin implements InferencePlugin {
|
||||
};
|
||||
events.emit(EventName.OnNewMessageResponse, message);
|
||||
|
||||
requestInference(data.messages).subscribe({
|
||||
this.controller = new AbortController();
|
||||
|
||||
requestInference(data.messages, this.controller).subscribe({
|
||||
next: (content) => {
|
||||
message.content = content;
|
||||
events.emit(EventName.OnMessageResponseUpdate, message);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user