Commit Graph

17 Commits

Author SHA1 Message Date
melod1n 1f96e3553e * environment variable to enable/disable processing links in messages (for downloading videos)
* bot will not automatically download video from youtube or load it from cache. It will fetch video info first, then suggest to download or get video from cache (with retry options)
* some rewriting in sending/editing/replying to messages
2026-03-03 00:01:44 +03:00
melod1n 82468cf61b chat with gemini now will use any first images 2026-02-12 14:48:13 +03:00
melod1n 9ba3d81a21 feat(ai): add configurable default provider + refactor telegram handlers
- add AiProvider enum and DEFAULT_AI_PROVIDER env var (fallback: OLLAMA)
- route chat execution based on selected provider (Ollama/Gemini/Mistral/OpenAI)
- move inline query / callback / edited message / my_chat_member handlers into utils
- minor cleanup (command requirements placement, whitespace)
2026-02-04 12:55:04 +03:00
melod1n a736f786c2 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
2026-02-03 13:39:01 +03:00
melod1n 9e30086af2 fix(images): cache Telegram photos by unique_id and pass base64 to LLM commands
Stop reading image files inside gemini/mistral commands; use pre-encoded image data from message parts

Rework loadImagesIfExists / loadImagesFromFileIds to return cached file_unique_ids and download only missing sizes

Encode cached images to base64 when assembling the reply chain

Make getPhotoMaxSize synchronous (returns PhotoSize), and map to URL only when needed

Await MessageStore.put / UserStore.put and prefetch single-image downloads on message receipt
2026-01-29 20:58:08 +03:00
melod1n b74e0a0f3e refactor(bot): centralize runtime state; support albums + safer vision handling
- make MessageStore.put() return StoredMessage and allow collectReplyChainText() to work with StoredMessage
- move muted users + answers loading into Environment (add Answers model + GEMINI_IMAGE_MODEL)
- extract message handling into processNewMessage() and add media-group (album) caching/downloading by unique_file_id
- for Ollama: check model capabilities before sending images; use replyToMessage helper consistently
- add /geminiGenImage command stub for Gemini image generation
2026-01-29 20:01:30 +03:00
melod1n 486a7a4f11 update gemini chat to interactions api 2026-01-28 18:19:53 +03:00
melod1n 63c64dfa8e update error logging
cutting all kind of prefixes for prompt making
2026-01-28 16:40:29 +03:00
melod1n 458e56dcb4 update streaming for Gemini and Mistral and update list gemini models and list mistral models commands 2026-01-28 12:29:52 +03:00
melod1n 32baaebb93 update regex matching - now bot responds only for base commands (like /ping) and with mention (like /ping@panfilovi4_bot) and ignores command if it mentions other bot;
Add ability to see, change and list gemini, mistral and ollama models
2026-01-20 08:31:05 +03:00
melod1n ad8e3115db add gemini and mistral models to environment 2026-01-16 19:03:21 +03:00
melod1n 97582881ea optional usage of names in prompt 2026-01-16 16:14:40 +03:00
melod1n c491329d4f optional usage of names in prompt 2026-01-16 16:13:10 +03:00
melod1n 7047a5fa15 add user's names to messages 2026-01-16 16:04:10 +03:00
melod1n 326cfcafc8 /mistral command for chat with Mistral AI 2026-01-16 15:40:15 +03:00
melod1n 6eff5d17ea test support for images (ollama vision models) 2026-01-12 19:19:08 +03:00
melod1n df9471a7e4 refactor!: rewrite bot core; add AI (Ollama, Gemini), DB, new commands 2026-01-12 15:32:50 +03:00