From 8df1bd3cec409f675c36cb5fdfc3a237af828904 Mon Sep 17 00:00:00 2001 From: TBS093A Date: Tue, 20 May 2025 18:19:29 +0200 Subject: [PATCH] fix(openai): adjustments - --- src/config.py | 7 ++++--- src/handlers.py | 9 +++++---- src/openai_utils.py | 6 ++---- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/src/config.py b/src/config.py index aac9ab2..c0d0a18 100644 --- a/src/config.py +++ b/src/config.py @@ -39,8 +39,9 @@ if not YOUTUBE_TRANSCRIPT_API_TOKEN: # Inne ustawienia TRANSCRIPT_LANGUAGES = ['pl', 'en'] # Priorytet języków transkrypcji -SUMMARY_PROMPT = """Streść poniższy transkrypt filmu z YouTube w zwięzły sposób w języku polskim. -prosiłbym o dokonanie tego streszczenia w formacie Markdown. +SUMMARY_PROMPT = """Dokonaj przeformułowania do bardziej czytelnej formy z zachowaniem wszystkich nawet najmniejszych szczegółów poniższego transkryptu w języku polskim z podziałem na sekcje tematyczne. +Użyj formatu Markdown dla lepszej czytelności. +Upewnij się, że wszystkie znaki specjalne Markdown (*, _, [], (), #, `, ~) są poprawnie escapowane (poprzedzone znakiem \). -Transkrypt: +Przetłumaczony transkrypt: {transcript}""" \ No newline at end of file diff --git a/src/handlers.py b/src/handlers.py index 3407892..5b968b4 100644 --- a/src/handlers.py +++ b/src/handlers.py @@ -9,7 +9,7 @@ from .db import save_video_summary, check_if_url_exists from .config import TRANSCRIPT_LANGUAGES # Stała dla maksymalnej długości wiadomości Telegram -MAX_MESSAGE_LENGTH = 4096 +MAX_MESSAGE_LENGTH = 3900 # 4096 logger = logging.getLogger(__name__) @@ -78,7 +78,7 @@ async def handle_message(update: Update, context: ContextTypes.DEFAULT_TYPE): context.bot, chat_id=chat_id, text=f"*Rozpoczynam przetwarzanie filmu:*\n{title}\n\n*Link:* {url}", - parse_mode="Markdown", + parse_mode=None, disable_web_page_preview=True ) @@ -99,6 +99,7 @@ async def handle_message(update: Update, context: ContextTypes.DEFAULT_TYPE): context.bot, chat_id=chat_id, text=f"Film jest długi, podzielono transkrypcję na {len(chunks)} części. Przetwarzam każdą z nich...", + parse_mode=None, disable_web_page_preview=True ) @@ -121,7 +122,7 @@ async def handle_message(update: Update, context: ContextTypes.DEFAULT_TYPE): context.bot, chat_id=chat_id, text=response_text, - parse_mode="Markdown", + parse_mode=None, disable_web_page_preview=True ) except Exception as e: @@ -178,7 +179,7 @@ async def handle_message(update: Update, context: ContextTypes.DEFAULT_TYPE): context.bot, chat_id=chat_id, text=final_text, - parse_mode="Markdown", + parse_mode=None, disable_web_page_preview=True ) diff --git a/src/openai_utils.py b/src/openai_utils.py index 54d7392..97b2683 100644 --- a/src/openai_utils.py +++ b/src/openai_utils.py @@ -236,9 +236,7 @@ async def summarize_text(text: str, is_partial: bool = False, part_num: int = 0, Połączone streszczenia: {text}""" elif is_partial: - prompt = f"""Streść poniższy fragment transkryptu filmu z YouTube (część {part_num} z {total_parts}) - w zwięzły sposób w języku polskim. Skup się na głównych tematach i wnioskach. - Użyj formatu markdown. + prompt = f"""{SUMMARY_PROMPT.format(transcript=text)} Fragment transkryptu (część {part_num}/{total_parts}): {text}""" @@ -256,7 +254,7 @@ async def summarize_text(text: str, is_partial: bool = False, part_num: int = 0, {"role": "user", "content": prompt} ], temperature=0.2, # Niższa temperatura dla bardziej spójnych streszczeń - max_tokens=50000, # Ogranicz długość odpowiedzi + max_tokens=16384, # Ogranicz długość odpowiedzi ) summary = response.choices[0].message.content.strip()