https://github.com/yhdgms1/kakashi-hatake-ai-bot
OpenAI based Kakashi Katake telegram chat bot
https://github.com/yhdgms1/kakashi-hatake-ai-bot
ai chatbot cloudflare-workers grammy naruto openai telegram
Last synced: 3 months ago
JSON representation
OpenAI based Kakashi Katake telegram chat bot
- Host: GitHub
- URL: https://github.com/yhdgms1/kakashi-hatake-ai-bot
- Owner: yhdgms1
- Created: 2023-03-26T17:54:26.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2024-06-21T16:02:17.000Z (11 months ago)
- Last Synced: 2024-12-21T17:45:40.730Z (5 months ago)
- Topics: ai, chatbot, cloudflare-workers, grammy, naruto, openai, telegram
- Language: JavaScript
- Homepage:
- Size: 73.2 KB
- Stars: 1
- Watchers: 1
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Kakashi Katake AI telegram Bot
Бот работает на [grammY](https://grammy.dev/) - фреймворк для Telegram-ботов, а также использует [Cloudflare Workes](https://workers.cloudflare.com/) для размещение бота и [Cloudflare KV](https://developers.cloudflare.com/workers/runtime-apis/kv/) - для хранения временных данных. Сообщения сохраняются в KV хранилище, поскольку через telegram Bot API нельзя получить историю сообщений. История сообщений нужна, чтобы ChatGPT, получая контекст сообщений, мог участвовать в диалоге в этом контексте.
Процесс работы можно описать так:
- На установленный WebHook приходит обновление
- Cloudflare Workers запускает код, который использует grammY, он это обновление обрабатывает, и позволяет подписаться на текстовое сообщение
- Если сообщение отправил бот или в сообщении нет слова "Какаши" - обращения к боту, сообщение не является ответом на сообщение бота, или небольшой шанс на случайный ответ не сработал, то ответа от бота не поступит, но сообщение (за исключением сообщений ботов, в случае если "Какаши" добавлен в групповой чат) сохраняется в Cloudflare KV
- Удаляются старые сообщения, чтобы не выходить за рамки ограничений OpenAI по количеству отправляемого текста
- К OpenAI Chat completions создаётся запрос, в котором есть "system" сообщения, которые указывают ChatGPT как следует отвечать, и сообщения контекста (история сообщений)
- Ответ от OpenAI также добавляется в историю сообщений
- Бот отвечает в чат полученным текстом от OpenAIБота можно использовать как в личных чатах, так и в групповых.