ChatGPT-Next-Web/app/store.ts

41 lines
919 B
TypeScript

import { type ChatCompletionResponseMessage } from "openai";
export type Message = ChatCompletionResponseMessage;
interface ChatConfig {
maxToken: number;
}
class ChatSession {
constructor(private id: string) {}
public async onChatMessage(message: Message) {
if (message.role === "assistant") {
// do nothing
} else if (message.role === "user") {
// TODO: request open chat
this.makeRequest();
} else throw Error("Only assistant or users message allowed here.");
this.historyMessages.push(message);
this.summarize();
this.save();
}
public async summarize() {}
public save() {}
public delete() {}
private makeRequest() {}
private topic = "";
private memoryPrompt = "";
private historyMessages: Message[] = [];
private messageWordCount = 0;
}
class ChatSessionManager {
private entryId = "chatgpt-next-web-sessions";
}
export const store = {};