chore: add stopping inference interface
This commit is contained in:
parent
62083c28f2
commit
de562ecaed
@ -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>;
|
||||
}
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user