import asyncio import time import vk_api from vk_api.longpoll import VkLongPoll, VkEventType from gigachat import GigaChat from gigachat.models import Chat, Messages # 1. Токены доступа VK_TOKEN = "VK_TOKEN" GIGACHAT_API_KEY = "GIGACHAT_API_KEY" # 2. Инициализация сессии VK vk_session = vk_api.VkApi(token=VK_TOKEN) vk = vk_session.get_api() longpoll = VkLongPoll(vk_session) # 3. Инициализация клиента GigaChat (здесь используется синхронный подход для простоты) giga = GigaChat( credentials=GIGACHAT_API_KEY, verify_ssl_certs=False, # Важно для работы с сертификатами scope="GIGACHAT_API_PERS" # или GIGACHAT_API_B2B для юрлиц/ИП ) # 4. Основной цикл обработки событий print("Бот запущен и ждет сообщений...") for event in longpoll.listen(): if event.type == VkEventType.MESSAGE_NEW and event.to_me: user_text = event.text user_id = event.user_id # Проверяем, что сообщение не пустое if not user_text: continue try: # Отправляем запрос в GigaChat # Простой вариант: передаем только текущий текст response = giga.chat(user_text) ai_answer = response.choices[0].message.content # Отправляем ответ пользователю vk.messages.send( user_id=user_id, message=ai_answer, random_id=0 # Уникальный идентификатор для защиты от повторной отправки ) except Exception as e: print(f"Ошибка: {e}") vk.messages.send( user_id=user_id, message="Извините, произошла ошибка. Попробуйте позже.", random_id=0 )