@Montezzz

Почему бот не хочет реагировать в беседах?

Вроде как все подключено, в беседе бот имеет доступ и админку, но выходить на связь не хочет. В личных сообщениях работает.
Сам код
def send_message(peer_id, message):
    vk.messages.send(
        peer_id=peer_id,
        message=message,
        random_id=random.getrandbits(32)
    )

for event in longpoll.listen():
    if event.type == VkEventType.MESSAGE_NEW:
        if event.from_user and not event.from_me and event.text.startswith('/mchatgpt'):
            if event.from_chat:
                peer_id = event.peer_id
            else:
                peer_id = event.user_id
            message = event.text.replace('/mchatgpt', '').strip()
            response = openai.Completion.create(
                engine="text-davinci-003",
                prompt=message,
                max_tokens=1024,
                n=1,
                stop=None,
                temperature=0.7,
            )
            answer = response.choices[0].text.strip()
            send_message(peer_id, answer)
  • Вопрос задан
  • 52 просмотра
Пригласить эксперта
Ответы на вопрос 1
drygdryg
@drygdryg
Python-разработчик
...
        if event.from_user and not event.from_me and event.text.startswith('/mchatgpt'):
...

Здесь вы проверяете, что сообщение пришло от пользователя. Если сообщение пришло из беседы, то event.from_user == False. Можно сделать так:

...
        if ((event.from_user or event.from_chat) and not event.from_me) and event.text.startswith('/mchatgpt'):
...


Если вы создаёте чат-ботов для ВКонтакте, то советую обратить внимание на фреймворк vkbottle: https://github.com/vkbottle/vkbottle
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы