store.ts 919 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. import { type ChatCompletionResponseMessage } from "openai";
  2. export type Message = ChatCompletionResponseMessage;
  3. interface ChatConfig {
  4. maxToken: number;
  5. }
  6. class ChatSession {
  7. constructor(private id: string) {}
  8. public async onChatMessage(message: Message) {
  9. if (message.role === "assistant") {
  10. // do nothing
  11. } else if (message.role === "user") {
  12. // TODO: request open chat
  13. this.makeRequest();
  14. } else throw Error("Only assistant or users message allowed here.");
  15. this.historyMessages.push(message);
  16. this.summarize();
  17. this.save();
  18. }
  19. public async summarize() {}
  20. public save() {}
  21. public delete() {}
  22. private makeRequest() {}
  23. private topic = "";
  24. private memoryPrompt = "";
  25. private historyMessages: Message[] = [];
  26. private messageWordCount = 0;
  27. }
  28. class ChatSessionManager {
  29. private entryId = "chatgpt-next-web-sessions";
  30. }
  31. export const store = {};