From 505de28319ecaaad011c0660218fc5221969544f Mon Sep 17 00:00:00 2001 From: t Date: Thu, 4 Jan 2024 15:13:46 +0300 Subject: [PATCH] Add logging, fix some bugs, move fix from minigpt.py to api.py --- api.py | 33 ++++++++++++++++++++++++++++++--- minigpt.py | 15 ++++++++++----- 2 files changed, 40 insertions(+), 8 deletions(-) diff --git a/api.py b/api.py index 37fdaa9..bfb28fd 100644 --- a/api.py +++ b/api.py @@ -13,7 +13,7 @@ def predict(prompt, client, model = "0.1"): elif model == "0.2": result = client.predict( prompt, - 0.05, # 'Temperature' + 0.5, # 'Temperature' 128, # 'Max new tokens' 0.8, # 'Top-p (nucleus sampling)' 1.8, # 'Repetition penalty' @@ -22,13 +22,39 @@ def predict(prompt, client, model = "0.1"): return result +# Detect code +def iscode(text): + langs = ['sql','php','js','java','c','cpp','python','go'] + is_code = False + for i in langs: + if i + r'\n' in text: + is_code = True + break + spec = ['section .'] + if not is_code: + for i in spec: + if i in text: + is_code = True + break + return is_code + # text IN language IN def translate(text, source): if source == "ru": target = "en" elif source == "en": target = "ru" - out = GoogleTranslator(source = source, target = target).translate(text) + + # Fix code translate + if '```' in text: + out = '' + for i in text.split('```'): + if iscode(i): + out += '```' + i + '```' + else: + out += GoogleTranslator(source = source, target = target).translate(i) + else: + out = GoogleTranslator(source = source, target = target).translate(text) return out iddb = {} @@ -55,4 +81,5 @@ def gen(text, id, model): except: pass - return translate(predicted, "en") + fixed = predicted.replace(r'\n', '\n').replace('\\ n', '\n') + return translate(fixed, "en") diff --git a/minigpt.py b/minigpt.py index 13740f2..36ea778 100755 --- a/minigpt.py +++ b/minigpt.py @@ -34,15 +34,20 @@ __ Список кратких команд: /prompt - /p /cprompt - /cp -Канал разработчика: @justuser31 Ещё проекты: @just_openbots (тут много интересного) {telebot.formatting.hlink("Исходный код","https://gitea.gulyaipole.fun/justuser/just_minigpt")} """, parse_mode = "HTML") + bot.send_message(message.chat.id, f"""Также настоятельно рекомендую подписаться на канал бота: @justuser31 + +Обратная связь ( @just_anonchat_bot ) : {telebot.formatting.hcode(":justuser")}""", parse_mode = "HTML") ### MAIN ### from api import * +import traceback +import logging + setted_models = {} system_prompts = {} onoff = {} @@ -123,11 +128,11 @@ def echo_message(message): st = bot.send_message(message.chat.id, "Печатает...") predicted = gen(prompt, message.chat.id, setted_models[id]) - fixed = predicted.replace(r'\n', '\n').replace('\\ n', '\n') try: - bot.reply_to(message, fixed, parse_mode="Markdown") - except: - bot.reply_to(message, fixed, parse_mode="HTML") + bot.reply_to(message, predicted, parse_mode="Markdown") + except Exception as e: + bot.reply_to(message, predicted, parse_mode="HTML") + logging.error(traceback.format_exc()) bot.delete_message(message.chat.id, st.id)