"Правильно настроенный бот с интеграцией нейросетей — это уже не просто дополнительный сотрудник, а интеллектуальный ассистент, способный принимать решения на основе контекста и предыдущего опыта"
from aiogram import Bot, Dispatcher, types
from aiogram.contrib.fsm_storage.memory import MemoryStorage
import openai
import logging
import json
# Настройка логирования
logging.basicConfig(level=logging.INFO)
# Инициализация бота
bot = Bot(token='YOUR_TELEGRAM_TOKEN')
storage = MemoryStorage()
dp = Dispatcher(bot, storage=storage)
# Настройка OpenAI
openai.api_key = 'YOUR_OPENAI_API_KEY'
# Хранение контекста общения
user_context = {}
@dp.message_handler(commands=['start'])
async def start_command(message: types.Message):
await message.answer("Привет! Я бот с интеграцией нейросети. Чем могу помочь?")
user_context[message.from_user.id] = []
@dp.message_handler()
async def handle_messages(message: types.Message):
user_id = message.from_user.id
# Обновляем контекст пользователя
if user_id not in user_context:
user_context[user_id] = []
# Ограничиваем контекст последними 5 сообщениями
user_context[user_id].append({"role": "user", "content": message.text})
if len(user_context[user_id]) > 10:
user_context[user_id] = user_context[user_id][-10:]
try:
# Отправляем запрос в GPT с сохранением контекста
response = openai.ChatCompletion.create(
model="gpt-4-turbo",
messages=[
{"role": "system", "content": "Вы — полезный ассистент в Telegram-боте компании."},
*user_context[user_id]
],
max_tokens=500,
temperature=0.7
)
# Получаем и отправляем ответ
bot_response = response.choices[0].message.content
user_context[user_id].append({"role": "assistant", "content": bot_response})
await message.answer(bot_response)
except Exception as e:
logging.error(f"Error in OpenAI API: {e}")
await message.answer("Извините, возникла проблема. Попробуйте позже.")
if __name__ == '__main__':
from aiogram import executor
executor.start_polling(dp, skip_updates=True)
"Лучший бот — не тот, что использует самые передовые нейросети, а тот, что решает реальные проблемы пользователей максимально эффективно"