chore: add stopping inference interface

This commit is contained in:
Louis 2023-11-21 13:47:30 +07:00
parent 62083c28f2
commit de562ecaed
3 changed files with 25 additions and 12 deletions

View File

@ -1,4 +1,4 @@
import { MessageRequest } from "../index";
import { MessageRequest, ThreadMessage } from "../index";
import { JanPlugin } from "../plugin";
/**
@ -16,10 +16,15 @@ export abstract class InferencePlugin extends JanPlugin {
*/
abstract stopModel(): Promise<void>;
/**
* Stops the streaming inference.
*/
abstract stopInference(): Promise<void>;
/**
* Processes an inference request.
* @param data - The data for the inference request.
* @returns The result of the inference request.
*/
abstract inferenceRequest(data: MessageRequest): Promise<any>;
abstract inferenceRequest(data: MessageRequest): Promise<ThreadMessage>;
}

View File

@ -70,23 +70,31 @@ export default class JanInferencePlugin implements InferencePlugin {
return executeOnMain(MODULE, "killSubprocess");
}
/**
* Stops streaming inference.
* @returns {Promise<void>} A promise that resolves when the streaming is stopped.
*/
async stopInference(): Promise<void> {
// TODO: Implementation
}
/**
* Makes a single response inference request.
* @param {MessageRequest} data - The data for the inference request.
* @returns {Promise<any>} A promise that resolves with the inference response.
*/
async inferenceRequest(data: MessageRequest): Promise<any> {
const message = {
...data,
message: "",
user: "assistant",
async inferenceRequest(data: MessageRequest): Promise<ThreadMessage> {
const message: ThreadMessage = {
threadId: data.threadId,
content: "",
createdAt: new Date().toISOString(),
status: MessageStatus.Ready,
};
return new Promise(async (resolve, reject) => {
requestInference(data.messages ?? []).subscribe({
next: (content) => {
message.message = content;
message.content = content;
},
complete: async () => {
resolve(message);

View File

@ -63,13 +63,13 @@ export default function useSendChatMessage() {
if (
currentConvo &&
currentConvo.id === newMessage.threadId &&
result?.message &&
result?.message?.trim().length > 0 &&
result.message.split(' ').length <= 10
result?.content &&
result?.content?.trim().length > 0 &&
result.content.split(' ').length <= 10
) {
const updatedConv = {
...currentConvo,
summary: result.message,
summary: result.content,
}
updateConversation(updatedConv)
pluginManager