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
|
AUDIO_SEGMENT_DURATION = 120 * 1000
|
||||||
|
|
||||||
API_PREFIX = "/api"
|
API_PREFIX = "/api"
|
||||||
CHAT_GPT_BASE_URI = "backend-api/v2/conversation"
|
CHAT_GPT_BASE_URI = "/backend-api/v2/conversation"
|
||||||
|
|
||||||
|
|
||||||
class BotStagesEnum(StrEnum):
|
class BotStagesEnum(StrEnum):
|
||||||
|
@ -37,9 +37,9 @@ async def about_bot(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
|
|||||||
if not update.effective_message:
|
if not update.effective_message:
|
||||||
return None
|
return None
|
||||||
await update.effective_message.reply_text(
|
await update.effective_message.reply_text(
|
||||||
"Бот использует бесплатную модель Chat-GPT3.5 для ответов на вопросы. "
|
f"Бот использует бесплатную модель {settings.GPT_MODEL} для ответов на вопросы. "
|
||||||
"Принимает запросы на разных языках. \n\nБот так же умеет переводить голосовые сообщения в текст. "
|
f"Принимает запросы на разных языках.\n\nБот так же умеет переводить русские голосовые сообщения в текст. "
|
||||||
"Просто пришлите голосовуху и получите поток сознания без запятых в виде текста",
|
f"Просто пришлите голосовуху и получите поток сознания в виде текста, но без знаков препинания",
|
||||||
parse_mode="Markdown",
|
parse_mode="Markdown",
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -15,6 +15,8 @@ TELEGRAM_API_TOKEN="123456789:AABBCCDDEEFFaabbccddeeff-1234567890"
|
|||||||
DOMAIN="https://mydomain.com"
|
DOMAIN="https://mydomain.com"
|
||||||
URL_PREFIX="/gpt"
|
URL_PREFIX="/gpt"
|
||||||
|
|
||||||
|
GPT_BASE_HOST="http://chat_service:8858"
|
||||||
|
|
||||||
# set to true to start with webhook. Else bot will start on polling method
|
# set to true to start with webhook. Else bot will start on polling method
|
||||||
START_WITH_WEBHOOK="false"
|
START_WITH_WEBHOOK="false"
|
||||||
|
|
||||||
@ -24,4 +26,26 @@ WORKERS_COUNT=1
|
|||||||
RELOAD="true"
|
RELOAD="true"
|
||||||
DEBUG="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 constants import BotStagesEnum
|
||||||
from core.bot import BotApplication, BotQueue
|
from core.bot import BotApplication, BotQueue
|
||||||
from main import Application
|
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.conftest import mocked_ask_question_api
|
||||||
from tests.integration.bot.networking import MockedRequest
|
from tests.integration.bot.networking import MockedRequest
|
||||||
from tests.integration.factories.bot import (
|
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(
|
async def test_about_me_callback_action(
|
||||||
main_application: Application,
|
main_application: Application,
|
||||||
test_settings: AppSettings,
|
test_settings: AppSettings,
|
||||||
@ -134,9 +168,9 @@ async def test_about_bot_callback_action(
|
|||||||
)
|
)
|
||||||
|
|
||||||
assert mocked_reply_text.call_args.args == (
|
assert mocked_reply_text.call_args.args == (
|
||||||
"Бот использует бесплатную модель Chat-GPT3.5 для ответов на вопросы. Принимает запросы на разных языках. "
|
f"Бот использует бесплатную модель {settings.GPT_MODEL} для ответов на вопросы. "
|
||||||
"\n\nБот так же умеет переводить голосовые сообщения в текст. Просто пришлите голосовуху и получите поток "
|
f"Принимает запросы на разных языках.\n\nБот так же умеет переводить русские голосовые сообщения в текст. "
|
||||||
"сознания без запятых в виде текста",
|
f"Просто пришлите голосовуху и получите поток сознания в виде текста, но без знаков препинания",
|
||||||
)
|
)
|
||||||
assert mocked_reply_text.call_args.kwargs == {"parse_mode": "Markdown"}
|
assert mocked_reply_text.call_args.kwargs == {"parse_mode": "Markdown"}
|
||||||
|
|
||||||
@ -178,3 +212,19 @@ async def test_ask_question_action(
|
|||||||
},
|
},
|
||||||
include=["text", "chat_id"],
|
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}
|
USER ${USER}
|
||||||
|
|
||||||
ENV PATH="/app/.venv/bin:$PATH"
|
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