aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorhuker667 <huker@tuta.io>2026-07-16 12:42:36 +0300
committerhuker667 <huker@tuta.io>2026-07-16 12:42:36 +0300
commitb958bddcfb5cec9ff076522803e90181a96af7d0 (patch)
treea6ad6c881248057b91cbb94e28a7659d34689e8c
parent540aea2ec64acd05043c9b6ab9522e38f9cd6947 (diff)
downloaduzbekgpt-b958bddcfb5cec9ff076522803e90181a96af7d0.tar.gz
uzbekgpt-b958bddcfb5cec9ff076522803e90181a96af7d0.tar.bz2
uzbekgpt-b958bddcfb5cec9ff076522803e90181a96af7d0.zip
add more errors parsing and fix some errors da
-rw-r--r--helpers.py34
-rw-r--r--main.py61
-rw-r--r--supergenerator.py19
3 files changed, 63 insertions, 51 deletions
diff --git a/helpers.py b/helpers.py
index 6f4a3bc..f7525ea 100644
--- a/helpers.py
+++ b/helpers.py
@@ -76,7 +76,6 @@ def is_replied_bot(message, is_channel, user_text, config=None):
return True
async def g_answer(
- data,
message,
text,
title="da",
@@ -95,15 +94,12 @@ async def g_answer(
input_message_content=InputRichMessageContent(
rich_message=InputRichMessage(markdown=text)
)
- return await data["bot"](
- AnswerGuestQuery(
- guest_query_id=message.guest_query_id,
- result=InlineQueryResultArticle(
- id=id,
- reply_markup=reply_markup,
- title=title,
- input_message_content=input_message_content
- )
+ return await message.answer_guest_query(
+ result=InlineQueryResultArticle(
+ id=id,
+ reply_markup=reply_markup,
+ title=title,
+ input_message_content=input_message_content
)
)
@@ -148,3 +144,21 @@ def send_to_vosk(audio):
)
return r.json()
+
+
+async def mans(message, text):
+ if message.guest_query_id:
+ return await message.answer_guest_query(
+ result=InlineQueryResultArticle(
+ id=1,
+ reply_markup=None,
+ title="da",
+ input_message_content=InputTextMessageContent(
+ message_text=text,
+ parse_mode="Markdown"
+ )
+ )
+ )
+ else:
+ return await message.reply_text(text)
+
diff --git a/main.py b/main.py
index 1554c78..3afe945 100644
--- a/main.py
+++ b/main.py
@@ -105,7 +105,7 @@ async def guest_middleware(handler, event, data):
return
if blocked:
if event.guest_message:
- await g_answer(data, message, text, title="ошибка врат")
+ await g_answer(text, title="ошибка врат")
elif event.message:
error_message = await message.reply(text)
await asyncio.sleep(7)
@@ -158,27 +158,32 @@ async def guest_middleware(handler, event, data):
da = "не врат не пойдёт такой длинный голосовой сообщение" \
". \nнадо меньше 60 секунд da✅"
if event.guest_message:
- await g_answer(data, message, da)
+ await g_answer(message, da)
else:
await message.reply(da)
buf = BytesIO()
- await bot.download(voice, destination=buf)
+ try:
+ brat = await bot.download(voice, destination=buf)
+ except Exception as e:
+ print(f"{YELLOW} -- voice err - {e}{RESET}")
buf.seek(0)
- result = await asyncio.to_thread(
- send_to_vosk,
- buf.read()
- )
-
- prompt = f"<голосовое сообщение>{result.get('text', 'не распознано')}</голосовое сообщение>{prompt}"
+ try:
+ if brat:
+ result = await asyncio.to_thread(
+ send_to_vosk,
+ buf.read()
+ )
+ except Exception as e:
+ prompt = f"<голосовое сообщение>ошибка подключения к api stt</голосовое сообщение>{prompt}"
+ print(f"{RED} -- voice err - {e}{RESET}")
+ else:
+ prompt = f"<голосовое сообщение>{result.get('text', 'не распознано')}</голосовое сообщение>{prompt}"
if message.document:
if message.document.file_size > 4096:
- if event.guest_message:
- await g_answer(data, message, "слишком много данных не хочу отвечать☝️☝️")
- elif event.message:
- await message.reply("слишком много данных не хочу отвечать☝️☝️")
+ await mans(message, "слишком много данных не хочу отвечать☝️☝️")
return
file_bytes = io.BytesIO()
@@ -193,25 +198,16 @@ async def guest_middleware(handler, event, data):
prompt = f"<файл>{file_content}</файл>{prompt}"
except UnicodeDecodeError:
- if event.guest_message:
- await g_answer(data, message, "файл не вошёл брат❌❌")
- elif event.message:
- await message.reply("файл не вошёл брат❌❌")
+ await mans(message, "файл не вошёл брат❌❌")
return
except Exception:
- if event.guest_message:
- await g_answer(data, message, "файл не вошёл ало ошибка❌❌")
- elif event.message:
- await message.reply("файл не вошёл ало ошибка❌❌")
+ await mans(message, "файл не вошёл ало ошибка❌❌")
return
if replied and replied.document:
if replied.document.file_size > 4096:
- if event.guest_message:
- await g_answer(data, message, "слишком много данных не хочу отвечать☝️☝️")
- elif event.message:
- await message.reply("слишком много данных не хочу отвечать☝️☝️")
+ await mans(message, "слишком много данных не хочу отвечать☝️☝️")
return
file_bytes = io.BytesIO()
@@ -222,10 +218,7 @@ async def guest_middleware(handler, event, data):
file_content = file_bytes.read().decode("utf-8", errors="ignore")
prompt = f"<файл>{file_content}</файл>{prompt}"
except UnicodeDecodeError:
- if event.guest_message:
- await g_answer(data, message, "файл не вошёл❌")
- elif event.message:
- await message.reply("файл не вошёл❌")
+ await mans(message, "файл не вошёл❌")
return
except Exception as e:
print(f"{RED} -- {e}{RESET}")
@@ -317,7 +310,7 @@ async def guest_middleware(handler, event, data):
]
)
if event.guest_message:
- await g_answer(data, message, alloh_one_text, reply_markup=reply_markup_url)
+ await g_answer(message, alloh_one_text, reply_markup=reply_markup_url)
elif event.message:
await message.reply_rich(InputRichMessage(markdown="# новый крутой стилёк\n*da*\n```\nтестовое сообщение врат\n```"))
await message.answer(alloh_text, reply_markup=reply_markup)
@@ -438,7 +431,7 @@ async def guest_middleware(handler, event, data):
)
except Exception as e:
if event.guest_message:
- await g_answer(data, message, "гостевой режим не работает с опросами. либо добавь меня " \
+ await g_answer(message, "гостевой режим не работает с опросами. либо добавь меня " \
"в группу, либо напиши мне в личку чтобы я выдал тебе опрос. ✅"
)
else:
@@ -446,7 +439,7 @@ async def guest_middleware(handler, event, data):
return
if result and event.guest_message:
- await g_answer(data, message, "отправил опрос в личку, так как гостевой режим не работает с " \
+ await g_answer(message, "отправил опрос в личку, так как гостевой режим не работает с " \
"опросами✅✅"
)
@@ -461,7 +454,7 @@ async def guest_middleware(handler, event, data):
try:
if event.guest_message:
- await g_answer(data, message, result, user_id=user_id)
+ await g_answer(message, result, user_id=user_id)
elif event.message:
if msg:
if stream == "native":
@@ -481,7 +474,7 @@ async def guest_middleware(handler, event, data):
kwargs["parse_mode"] = None
try:
if event.guest_message:
- await g_answer(data, message, result)
+ await g_answer(message, result)
elif event.message:
if msg:
if stream == "native":
diff --git a/supergenerator.py b/supergenerator.py
index b64994f..4131734 100644
--- a/supergenerator.py
+++ b/supergenerator.py
@@ -70,19 +70,19 @@ def clean_tail_repeats(text: str, max_repeat: int = 10):
def parse_response(text: str):
- if "Connection error." in text:
+ if "connection error." in text:
return {
"type": "connection",
"message": "ошибка подключения к провайдеру. подожди или смени провайдера в настройках узбекгпт.",
}
- elif "Model quota exceeded" in text:
+ elif "model quota exceeded" in text:
return {
"type": "quota",
"message": "лимит токенов закончился. подожди или смени модель.",
}
elif "tier capacity exceeded." in text:
return {"type": "tier", "message": "попробуй ещё раз!"}
- elif "Internal server" in text:
+ elif "internal server" in text:
return {
"type": "int",
"message": "произошла ошибка на стороне провайдера. подожди или смени провайдера в настройках узбекгпт.",
@@ -92,10 +92,15 @@ def parse_response(text: str):
"type": "incomplete",
"message": "сервер петух и оборвал соединение. подожди или смени провайдера в настройках узбекгпт.",
}
- elif "invalid token" in text:
+ elif "provider error" in text:
return {
- "type": "incomplete",
- "message": "указан неверный токен. смени провайдера или модель.",
+ "type": "provider",
+ "message": "врат ошибка на стороне провайдера модели. смени провайдера или модель.",
+ }
+ elif "rate limit" in text:
+ return {
+ "type": "quota",
+ "message": "лимит токенов закончился у провайдера врат. подожди или смени модель.",
}
else:
return {
@@ -406,7 +411,7 @@ async def openai_generate_text(
else:
text = completion.choices[0].message.content
except Exception as e:
- error = parse_response(str(e))
+ error = parse_response(str(e).lower())
print(f"{RED} -- {error['type']} - {e}{RESET}")
return error["message"]
else: