feat(openai): add chat streaming and model commands

- add /openai (/chatgpt) chat command using OpenAI Responses API (streaming + incremental edits)
- add /openAIListModels, /openAIGetModel, /openAISetModel
- introduce base Command class and migrate non-chat commands to it
- wire OpenAI client + env vars (OPENAI_API_KEY, OPENAI_MODEL)
- bump deps (@google/genai, systeminformation, @types/node) and add openai
This commit is contained in:
2026-02-03 13:39:01 +03:00
parent 810151263d
commit a736f786c2
58 changed files with 512 additions and 211 deletions
+10
View File
@@ -39,6 +39,9 @@ export class Environment {
static MISTRAL_API_KEY?: string;
static MISTRAL_MODEL: string;
static OPENAI_API_KEY?: string;
static OPENAI_MODEL: string;
static waitText = "⏳ Дайте-ка подумать...";
static analyzingPictureText = "🔍 Внимательно изучаю изображение...";
static analyzingPicturesText = "🔍 Внимательно изучаю изображения...";
@@ -75,6 +78,9 @@ export class Environment {
Environment.MISTRAL_API_KEY = process.env.MISTRAL_API_KEY;
Environment.MISTRAL_MODEL = process.env.MISTRAL_MODEL || "mistral-small-latest";
Environment.OPENAI_API_KEY = process.env.OPENAI_API_KEY;
Environment.OPENAI_MODEL = process.env.OPENAI_MODEL || "gpt-4o-mini";
}
static setAdmins(admins: Set<number>) {
@@ -135,4 +141,8 @@ export class Environment {
static setMistralModel(newModel: string) {
Environment.MISTRAL_MODEL = newModel;
}
static setOpenAIModel(newModel: string) {
Environment.OPENAI_MODEL = newModel;
}
}