An open API service indexing awesome lists of open source software.

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

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

Бота можно использовать как в личных чатах, так и в групповых.