@@ -206,7 +206,7 @@ class Chatgpt(SimpleService): prompt = [ { 'type': 'text', - 'text': f'Сгенерируй пару предложений, которые суммирует следующий текст. ' + 'text': f'Сгенерируй 2-3 предложения, которые суммирует следующий текст. ' f'Включи основную мысль текста и все значимые числовые данные. Текст: {chunk}', } ] @@ -216,9 +216,10 @@ class Chatgpt(SimpleService): response = AIMessage(content=invoked['response']) chunk_responses.append(response.content) combined_summary = ' '.join(chunk_responses) + user_prompt = input_message.content if input_message.content.split() else 'Суммируй текст' question_content = ( f'Вот краткое содержание каждого чанка:\n' - f'{combined_summary}\nОтветьте на вопрос по содержанию файла: {input_message.content}' + f'{combined_summary}\nОтветьте на вопрос по содержанию файла: {user_prompt}' ) input = HumanMessage(content=question_content) input_tokens = self.count_text_tokens(human_messages + [input]) @@ -444,7 +445,7 @@ class Chatgpt(SimpleService): ) def split_text_to_chunks( - self, raw_text: str, chunk_size: int = 20_000, overlap: int = 2000 + self, raw_text: str, chunk_size: int = 100_000, overlap: int = 300 ) -> list[HumanMessage]: """ Splitting file raw text to chunks