From fedc748e17a53485f32fabfcae38f0cd3cd6d71d Mon Sep 17 00:00:00 2001 From: Your Name Date: Fri, 24 Mar 2023 16:25:40 +0800 Subject: [PATCH] =?UTF-8?q?=E7=94=A8gpt=E7=BB=99=E8=87=AA=E5=B7=B1?= =?UTF-8?q?=E7=94=9F=E6=88=90=E6=B3=A8=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- toolbox.py | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/toolbox.py b/toolbox.py index 5fbbc47..cc6b193 100644 --- a/toolbox.py +++ b/toolbox.py @@ -3,6 +3,9 @@ from show_math import convert as convert_math from functools import wraps def write_results_to_file(history, file_name=None): + """ + 将对话记录history以Markdown格式写入文件中。如果没有指定文件名,则使用当前时间生成文件名。 + """ import os, time if file_name is None: file_name = time.strftime("chatGPT分析报告%Y-%m-%d-%H-%M-%S", time.localtime()) + '.md' @@ -18,12 +21,18 @@ def write_results_to_file(history, file_name=None): return res def regular_txt_to_markdown(text): + """ + 将普通文本转换为Markdown格式的文本。 + """ text = text.replace('\n', '\n\n') text = text.replace('\n\n\n', '\n\n') text = text.replace('\n\n\n', '\n\n') return text def CatchException(f): + """ + 装饰器函数,捕捉函数f中的异常并封装到一个生成器中返回,并显示到聊天当中。 + """ @wraps(f) def decorated(txt, top_p, temperature, chatbot, history, systemPromptTxt, WEB_PORT): try: @@ -39,10 +48,16 @@ def CatchException(f): return decorated def report_execption(chatbot, history, a, b): + """ + 向chatbot中添加错误信息 + """ chatbot.append((a, b)) history.append(a); history.append(b) def text_divide_paragraph(text): + """ + 将文本按照段落分隔符分割开,生成带有段落标签的HTML代码。 + """ if '```' in text: # careful input return text @@ -55,6 +70,9 @@ def text_divide_paragraph(text): return text def markdown_convertion(txt): + """ + 将Markdown格式的文本转换为HTML格式。如果包含数学公式,则先将公式转换为HTML格式。 + """ if ('$' in txt) and ('```' not in txt): return markdown.markdown(txt,extensions=['fenced_code','tables']) + '

' + \ markdown.markdown(convert_math(txt, splitParagraphs=False),extensions=['fenced_code','tables']) @@ -63,6 +81,9 @@ def markdown_convertion(txt): def format_io(self, y): + """ + 将输入和输出解析为HTML格式。将y中最后一项的输入部分段落化,并将输出部分的Markdown和数学公式转换为HTML格式。 + """ if y is None: return [] i_ask, gpt_reply = y[-1] i_ask = text_divide_paragraph(i_ask) # 输入部分太自由,预处理一波 @@ -74,6 +95,9 @@ def format_io(self, y): def find_free_port(): + """ + 返回当前系统中可用的未使用端口。 + """ import socket from contextlib import closing with closing(socket.socket(socket.AF_INET, socket.SOCK_STREAM)) as s: