mirror of
https://github.com/Balshgit/gpt_chat_bot.git
synced 2025-09-11 22:30:41 +03:00
add start entry test (#20)
This commit is contained in:
parent
90ec8ccec1
commit
52df4d338f
@ -3,7 +3,7 @@ from enum import StrEnum
|
||||
AUDIO_SEGMENT_DURATION = 120 * 1000
|
||||
|
||||
API_PREFIX = "/api"
|
||||
CHAT_GPT_BASE_URI = "backend-api/v2/conversation"
|
||||
CHAT_GPT_BASE_URI = "/backend-api/v2/conversation"
|
||||
|
||||
|
||||
class BotStagesEnum(StrEnum):
|
||||
|
@ -37,9 +37,9 @@ async def about_bot(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
|
||||
if not update.effective_message:
|
||||
return None
|
||||
await update.effective_message.reply_text(
|
||||
"Бот использует бесплатную модель Chat-GPT3.5 для ответов на вопросы. "
|
||||
"Принимает запросы на разных языках. \n\nБот так же умеет переводить голосовые сообщения в текст. "
|
||||
"Просто пришлите голосовуху и получите поток сознания без запятых в виде текста",
|
||||
f"Бот использует бесплатную модель {settings.GPT_MODEL} для ответов на вопросы. "
|
||||
f"Принимает запросы на разных языках.\n\nБот так же умеет переводить русские голосовые сообщения в текст. "
|
||||
f"Просто пришлите голосовуху и получите поток сознания в виде текста, но без знаков препинания",
|
||||
parse_mode="Markdown",
|
||||
)
|
||||
|
||||
|
@ -15,6 +15,8 @@ TELEGRAM_API_TOKEN="123456789:AABBCCDDEEFFaabbccddeeff-1234567890"
|
||||
DOMAIN="https://mydomain.com"
|
||||
URL_PREFIX="/gpt"
|
||||
|
||||
GPT_BASE_HOST="http://chat_service:8858"
|
||||
|
||||
# set to true to start with webhook. Else bot will start on polling method
|
||||
START_WITH_WEBHOOK="false"
|
||||
|
||||
@ -24,4 +26,26 @@ WORKERS_COUNT=1
|
||||
RELOAD="true"
|
||||
DEBUG="true"
|
||||
|
||||
GPT_MODEL="gpt-3.5-turbo-stream-AItianhuSpace"
|
||||
GPT_MODEL="gpt-3.5-turbo-stream-DeepAi"
|
||||
|
||||
# "gpt-3.5-turbo-stream-openai"
|
||||
# "gpt-3.5-turbo-Aichat"
|
||||
# "gpt-4-ChatgptAi"
|
||||
# "gpt-3.5-turbo-weWordle"
|
||||
# "gpt-3.5-turbo-acytoo"
|
||||
# "gpt-3.5-turbo-stream-DeepAi"
|
||||
# "gpt-3.5-turbo-stream-H2o"
|
||||
# "gpt-3.5-turbo-stream-yqcloud"
|
||||
# "gpt-OpenAssistant-stream-HuggingChat"
|
||||
# "gpt-4-turbo-stream-you"
|
||||
# "gpt-3.5-turbo-AItianhu"
|
||||
# "gpt-3-stream-binjie"
|
||||
# "gpt-3.5-turbo-stream-CodeLinkAva"
|
||||
# "gpt-4-stream-ChatBase"
|
||||
# "gpt-3.5-turbo-stream-aivvm"
|
||||
# "gpt-3.5-turbo-16k-stream-Ylokh"
|
||||
# "gpt-3.5-turbo-stream-Vitalentum"
|
||||
# "gpt-3.5-turbo-stream-GptGo"
|
||||
# "gpt-3.5-turbo-stream-AItianhuSpace"
|
||||
# "gpt-3.5-turbo-stream-Aibn"
|
||||
# "gpt-3.5-turbo-ChatgptDuo"
|
||||
|
@ -12,7 +12,7 @@ from telegram import InlineKeyboardButton, InlineKeyboardMarkup, Update
|
||||
from constants import BotStagesEnum
|
||||
from core.bot import BotApplication, BotQueue
|
||||
from main import Application
|
||||
from settings.config import AppSettings
|
||||
from settings.config import AppSettings, settings
|
||||
from tests.integration.bot.conftest import mocked_ask_question_api
|
||||
from tests.integration.bot.networking import MockedRequest
|
||||
from tests.integration.factories.bot import (
|
||||
@ -101,6 +101,40 @@ async def test_help_command(
|
||||
)
|
||||
|
||||
|
||||
async def test_start_entry(
|
||||
main_application: Application,
|
||||
test_settings: AppSettings,
|
||||
) -> None:
|
||||
with mock.patch.object(
|
||||
telegram._bot.Bot, "send_message", return_value=lambda *args, **kwargs: (args, kwargs)
|
||||
) as mocked_send_message:
|
||||
bot_update = BotUpdateFactory(message=BotMessageFactory.create_instance(text="/start"))
|
||||
|
||||
await main_application.bot_app.application.process_update(
|
||||
update=Update.de_json(data=bot_update, bot=main_application.bot_app.bot)
|
||||
)
|
||||
|
||||
assert_that(mocked_send_message.call_args.kwargs).is_equal_to(
|
||||
{
|
||||
"text": "Выберете команду:",
|
||||
"chat_id": bot_update["message"]["chat"]["id"],
|
||||
"reply_markup": InlineKeyboardMarkup(
|
||||
inline_keyboard=(
|
||||
(
|
||||
InlineKeyboardButton(callback_data="about_me", text="Обо мне"),
|
||||
InlineKeyboardButton(callback_data="website", text="Веб версия"),
|
||||
),
|
||||
(
|
||||
InlineKeyboardButton(callback_data="help", text="Помощь"),
|
||||
InlineKeyboardButton(callback_data="about_bot", text="О боте"),
|
||||
),
|
||||
)
|
||||
),
|
||||
},
|
||||
include=["text", "chat_id", "reply_markup"],
|
||||
)
|
||||
|
||||
|
||||
async def test_about_me_callback_action(
|
||||
main_application: Application,
|
||||
test_settings: AppSettings,
|
||||
@ -134,9 +168,9 @@ async def test_about_bot_callback_action(
|
||||
)
|
||||
|
||||
assert mocked_reply_text.call_args.args == (
|
||||
"Бот использует бесплатную модель Chat-GPT3.5 для ответов на вопросы. Принимает запросы на разных языках. "
|
||||
"\n\nБот так же умеет переводить голосовые сообщения в текст. Просто пришлите голосовуху и получите поток "
|
||||
"сознания без запятых в виде текста",
|
||||
f"Бот использует бесплатную модель {settings.GPT_MODEL} для ответов на вопросы. "
|
||||
f"Принимает запросы на разных языках.\n\nБот так же умеет переводить русские голосовые сообщения в текст. "
|
||||
f"Просто пришлите голосовуху и получите поток сознания в виде текста, но без знаков препинания",
|
||||
)
|
||||
assert mocked_reply_text.call_args.kwargs == {"parse_mode": "Markdown"}
|
||||
|
||||
@ -178,3 +212,19 @@ async def test_ask_question_action(
|
||||
},
|
||||
include=["text", "chat_id"],
|
||||
)
|
||||
|
||||
|
||||
async def test_no_update_message(
|
||||
main_application: Application,
|
||||
test_settings: AppSettings,
|
||||
) -> None:
|
||||
with mock.patch.object(
|
||||
telegram._bot.Bot, "send_message", return_value=lambda *args, **kwargs: (args, kwargs)
|
||||
) as mocked_send_message:
|
||||
bot_update = BotUpdateFactory(message=None)
|
||||
|
||||
await main_application.bot_app.application.process_update(
|
||||
update=Update.de_json(data=bot_update, bot=main_application.bot_app.bot)
|
||||
)
|
||||
|
||||
assert mocked_send_message.called is False
|
||||
|
@ -63,23 +63,3 @@ COPY --from=compile-image /app/.venv /app/.venv
|
||||
USER ${USER}
|
||||
|
||||
ENV PATH="/app/.venv/bin:$PATH"
|
||||
|
||||
|
||||
##===================== chat-service ================================
|
||||
#FROM compile-image as chat-service
|
||||
#
|
||||
#RUN printf "================ Start build chat-service. with USER: ${USER} ==============="
|
||||
#
|
||||
#WORKDIR /app/
|
||||
#
|
||||
## Copying bot service
|
||||
#COPY --chown=${USER}:${USER} ../chat_gpt_microservice /app/
|
||||
#
|
||||
#COPY --from=compile-image /app/.venv /app/.venv
|
||||
#ENV PATH="/app/.venv/bin:$PATH"
|
||||
#
|
||||
#USER ${USER}
|
||||
#
|
||||
#RUN chmod -R 777 translations
|
||||
#
|
||||
#CMD ["python3", "./run.py"]
|
Loading…
x
Reference in New Issue
Block a user