diff --git a/README.md b/README.md index 158767c..46ba021 100644 --- a/README.md +++ b/README.md @@ -60,7 +60,7 @@ chat分析报告生成 | [实验性功能] 运行后自动生成总结汇报 ## 直接运行 (Windows or Linux or MacOS) -``` +``` sh # 下载项目 git clone https://github.com/binary-husky/chatgpt_academic.git cd chatgpt_academic @@ -73,9 +73,16 @@ python -m pip install -r requirements.txt python main.py # 测试实验性功能 -input区域 输入 ./crazy_functions/test_project/cpp/libJPG , 然后点击 解析整个C++项目的头文件 -input区域 输入 ./crazy_functions/test_project/latex/attention , 然后点击 解读latex论文写摘要 -input区域 输入 ./crazy_functions/test_project/python/dqn , 然后点击 解析整个Python项目 +## 测试C++项目头文件分析 +input区域 输入 ./crazy_functions/test_project/cpp/libJPG , 然后点击 "[实验] 解析整个C++项目(input输入项目根路径)" +## 测试给Latex项目写摘要 +input区域 输入 ./crazy_functions/test_project/latex/attention , 然后点击 "[实验] 读tex论文写摘要(input输入项目根路径)" +## 测试Python项目分析 +input区域 输入 ./crazy_functions/test_project/python/dqn , 然后点击 "[实验] 解析整个py项目(input输入项目根路径)" +## 测试自我代码解读 +点击 "[实验] 请解析并解构此项目本身" +## 测试实验功能模板函数(要求gpt回答几个数的平方是什么),您可以根据此函数为模板,实现更复杂的功能 +点击 "[实验] 实验功能函数模板" ``` @@ -93,9 +100,18 @@ docker build -t gpt-academic . docker run --rm -it --net=host gpt-academic # 测试实验性功能 -input区域 输入 ./crazy_functions/test_project/cpp/libJPG , 然后点击 解析整个C++项目的头文件 -input区域 输入 ./crazy_functions/test_project/latex/attention , 然后点击 解读latex论文写摘要 -input区域 输入 ./crazy_functions/test_project/python/dqn , 然后点击 解析整个Python项目 +## 测试自我代码解读 +点击 "[实验] 请解析并解构此项目本身" +## 测试实验功能模板函数(要求gpt回答几个数的平方是什么),您可以根据此函数为模板,实现更复杂的功能 +点击 "[实验] 实验功能函数模板" +##(请注意在docker中运行时,需要额外注意程序的文件访问权限问题) +## 测试C++项目头文件分析 +input区域 输入 ./crazy_functions/test_project/cpp/libJPG , 然后点击 "[实验] 解析整个C++项目(input输入项目根路径)" +## 测试给Latex项目写摘要 +input区域 输入 ./crazy_functions/test_project/latex/attention , 然后点击 "[实验] 读tex论文写摘要(input输入项目根路径)" +## 测试Python项目分析 +input区域 输入 ./crazy_functions/test_project/python/dqn , 然后点击 "[实验] 解析整个py项目(input输入项目根路径)" + ``` diff --git a/crazy_functions/解析项目源代码.py b/crazy_functions/解析项目源代码.py index 41bdebb..ea5e426 100644 --- a/crazy_functions/解析项目源代码.py +++ b/crazy_functions/解析项目源代码.py @@ -9,9 +9,9 @@ def 解析源代码(file_manifest, project_folder, top_p, temperature, chatbot, with open(fp, 'r', encoding='utf-8') as f: file_content = f.read() - 前言 = "接下来请你逐文件分析下面的工程" if index==0 else "" - i_say = 前言 + f'请对下面的程序文件做一个概述文件名是{os.path.relpath(fp, project_folder)},文件代码是 ```{file_content}```' - i_say_show_user = 前言 + f'[{index}/{len(file_manifest)}] 请对下面的程序文件做一个概述: {os.path.abspath(fp)}' + prefix = "接下来请你逐文件分析下面的工程" if index==0 else "" + i_say = prefix + f'请对下面的程序文件做一个概述文件名是{os.path.relpath(fp, project_folder)},文件代码是 ```{file_content}```' + i_say_show_user = prefix + f'[{index}/{len(file_manifest)}] 请对下面的程序文件做一个概述: {os.path.abspath(fp)}' chatbot.append((i_say_show_user, "[Local Message] waiting gpt response.")) yield chatbot, history, '正常' @@ -56,9 +56,9 @@ def 解析项目本身(txt, top_p, temperature, chatbot, history, systemPromptTx with open(fp, 'r', encoding='utf-8') as f: file_content = f.read() - 前言 = "接下来请你分析自己的程序构成,别紧张," if index==0 else "" - i_say = 前言 + f'请对下面的程序文件做一个概述文件名是{fp},文件代码是 ```{file_content}```' - i_say_show_user = 前言 + f'[{index}/{len(file_manifest)}] 请对下面的程序文件做一个概述: {os.path.abspath(fp)}' + prefix = "接下来请你分析自己的程序构成,别紧张," if index==0 else "" + i_say = prefix + f'请对下面的程序文件做一个概述文件名是{fp},文件代码是 ```{file_content}```' + i_say_show_user = prefix + f'[{index}/{len(file_manifest)}] 请对下面的程序文件做一个概述: {os.path.abspath(fp)}' chatbot.append((i_say_show_user, "[Local Message] waiting gpt response.")) yield chatbot, history, '正常' diff --git a/crazy_functions/读文章写摘要.py b/crazy_functions/读文章写摘要.py index 60d0f22..dc92256 100644 --- a/crazy_functions/读文章写摘要.py +++ b/crazy_functions/读文章写摘要.py @@ -10,9 +10,9 @@ def 解析Paper(file_manifest, project_folder, top_p, temperature, chatbot, hist with open(fp, 'r', encoding='utf-8') as f: file_content = f.read() - 前言 = "接下来请你逐文件分析下面的论文文件,概括其内容" if index==0 else "" - i_say = 前言 + f'请对下面的文章片段用中文做一个概述,文件名是{os.path.relpath(fp, project_folder)},文章内容是 ```{file_content}```' - i_say_show_user = 前言 + f'[{index}/{len(file_manifest)}] 请对下面的文章片段做一个概述: {os.path.abspath(fp)}' + prefix = "接下来请你逐文件分析下面的论文文件,概括其内容" if index==0 else "" + i_say = prefix + f'请对下面的文章片段用中文做一个概述,文件名是{os.path.relpath(fp, project_folder)},文章内容是 ```{file_content}```' + i_say_show_user = prefix + f'[{index}/{len(file_manifest)}] 请对下面的文章片段做一个概述: {os.path.abspath(fp)}' chatbot.append((i_say_show_user, "[Local Message] waiting gpt response.")) print('[1] yield chatbot, history') yield chatbot, history, '正常' diff --git a/main.py b/main.py index a04509e..6812725 100644 --- a/main.py +++ b/main.py @@ -1,11 +1,13 @@ -import os; os.environ['no_proxy'] = '*' +import os; os.environ['no_proxy'] = '*' # 避免代理网络产生意外污染 import gradio as gr from predict import predict from toolbox import format_io, find_free_port -try: from config_private import proxies, WEB_PORT # 放自己的秘密如API和代理网址 os.path.exists('config_private.py') +# 建议您复制一个config_private.py放自己的秘密,如API和代理网址,避免不小心传github被别人看到 +try: from config_private import proxies, WEB_PORT except: from config import proxies, WEB_PORT +# 如果WEB_PORT是-1,则随机选取WEB端口 PORT = find_free_port() if WEB_PORT <= 0 else WEB_PORT initial_prompt = "Serve me as a writing and programming assistant." @@ -13,20 +15,21 @@ title_html = """