Починена обработка личных сообщений.
This commit is contained in:
parent
555b4bc0b5
commit
66fdbc3360
2 changed files with 23 additions and 15 deletions
|
|
@ -1,12 +1,13 @@
|
||||||
from functools import partial
|
from functools import partial
|
||||||
|
|
||||||
from aiogram import Router, F
|
from aiogram import Router, F
|
||||||
from aiogram.enums import ChatType
|
from aiogram.enums import ChatType, ContentType
|
||||||
from aiogram.filters import Command, CommandObject, CommandStart
|
from aiogram.filters import Command, CommandObject, CommandStart
|
||||||
from aiogram.types import Message
|
from aiogram.types import Message
|
||||||
|
|
||||||
import ai_agent
|
import ai_agent
|
||||||
import utils
|
import utils
|
||||||
|
from messages import *
|
||||||
|
|
||||||
import tg.tg_database as database
|
import tg.tg_database as database
|
||||||
from .default import ACCEPTED_CONTENT_TYPES
|
from .default import ACCEPTED_CONTENT_TYPES
|
||||||
|
|
@ -43,11 +44,16 @@ async def reset_context_handler(message: Message):
|
||||||
@router.message(F.content_type.in_(ACCEPTED_CONTENT_TYPES), F.chat.type == ChatType.PRIVATE)
|
@router.message(F.content_type.in_(ACCEPTED_CONTENT_TYPES), F.chat.type == ChatType.PRIVATE)
|
||||||
async def any_message_handler(message: Message):
|
async def any_message_handler(message: Message):
|
||||||
chat_id = message.chat.id
|
chat_id = message.chat.id
|
||||||
chat = database.DB.create_chat_if_not_exists(chat_id)
|
|
||||||
chat_prompt = chat['ai_prompt']
|
|
||||||
|
|
||||||
await message.answer(
|
if message.content_type != ContentType.TEXT:
|
||||||
await utils.run_with_progress(
|
await message.answer(MESSAGE_NOT_TEXT)
|
||||||
partial(ai_agent.agent.get_private_chat_reply, chat_id, chat_prompt, message.text),
|
return
|
||||||
|
|
||||||
|
answer, success = await utils.run_with_progress(
|
||||||
|
partial(ai_agent.agent.get_private_chat_reply, chat_id, message.text, message.message_id),
|
||||||
partial(message.bot.send_chat_action, chat_id, 'typing'),
|
partial(message.bot.send_chat_action, chat_id, 'typing'),
|
||||||
interval=4))
|
interval=4)
|
||||||
|
|
||||||
|
answer_id = (await message.answer(answer)).message_id
|
||||||
|
if success:
|
||||||
|
ai_agent.agent.set_last_response_id(chat_id, answer_id)
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,7 @@ from vkbottle.framework.labeler import BotLabeler
|
||||||
|
|
||||||
import ai_agent
|
import ai_agent
|
||||||
import utils
|
import utils
|
||||||
|
from messages import *
|
||||||
|
|
||||||
import vk.vk_database as database
|
import vk.vk_database as database
|
||||||
|
|
||||||
|
|
@ -41,15 +42,16 @@ async def reset_context_handler(message: Message):
|
||||||
@labeler.private_message()
|
@labeler.private_message()
|
||||||
async def any_message_handler(message: Message):
|
async def any_message_handler(message: Message):
|
||||||
chat_id = message.peer_id
|
chat_id = message.peer_id
|
||||||
chat = database.DB.create_chat_if_not_exists(chat_id)
|
|
||||||
|
|
||||||
if len(message.text) == 0:
|
if len(message.text) == 0:
|
||||||
|
await message.answer(MESSAGE_NOT_TEXT)
|
||||||
return
|
return
|
||||||
|
|
||||||
chat_prompt = chat['ai_prompt']
|
answer, success = await utils.run_with_progress(
|
||||||
|
partial(ai_agent.agent.get_private_chat_reply, chat_id, message.text, message.message_id),
|
||||||
await message.answer(
|
|
||||||
await utils.run_with_progress(
|
|
||||||
partial(ai_agent.agent.get_private_chat_reply, chat_id, chat_prompt, message.text),
|
|
||||||
partial(message.ctx_api.messages.set_activity, peer_id=chat_id, type='typing'),
|
partial(message.ctx_api.messages.set_activity, peer_id=chat_id, type='typing'),
|
||||||
interval=4))
|
interval=4)
|
||||||
|
|
||||||
|
answer_id = (await message.answer(answer)).message_id
|
||||||
|
if success:
|
||||||
|
ai_agent.agent.set_last_response_id(chat_id, answer_id)
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue