diff options
| author | huker667 <huker@tuta.io> | 2026-07-16 12:42:36 +0300 |
|---|---|---|
| committer | huker667 <huker@tuta.io> | 2026-07-16 12:42:36 +0300 |
| commit | b958bddcfb5cec9ff076522803e90181a96af7d0 (patch) | |
| tree | a6ad6c881248057b91cbb94e28a7659d34689e8c | |
| parent | 540aea2ec64acd05043c9b6ab9522e38f9cd6947 (diff) | |
| download | uzbekgpt-b958bddcfb5cec9ff076522803e90181a96af7d0.tar.gz uzbekgpt-b958bddcfb5cec9ff076522803e90181a96af7d0.tar.bz2 uzbekgpt-b958bddcfb5cec9ff076522803e90181a96af7d0.zip | |
add more errors parsing and fix some errors da
| -rw-r--r-- | helpers.py | 34 | ||||
| -rw-r--r-- | main.py | 61 | ||||
| -rw-r--r-- | supergenerator.py | 19 |
3 files changed, 63 insertions, 51 deletions
@@ -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) + @@ -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: |