diff --git a/config.py b/config.py index 7fc73db..72309e7 100644 --- a/config.py +++ b/config.py @@ -1,16 +1,15 @@ -# API_KEY = "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" 此key无效 +# [step 1]>> 例如: API_KEY = "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" (此key无效) API_KEY = "sk-此处填API密钥" -API_URL = "https://api.openai.com/v1/chat/completions" -# 改为True应用代理 + +# [step 2]>> 改为True应用代理,如果直接在海外服务器部署,此处不修改 USE_PROXY = False if USE_PROXY: - - # 填写格式是 [协议]:// [地址] :[端口] , + # 填写格式是 [协议]:// [地址] :[端口],填写之前不要忘记把USE_PROXY改成True,如果直接在海外服务器部署,此处不修改 # 例如 "socks5h://localhost:11284" - # [协议] 常见协议无非socks5h/http,例如 v2*** 和 s** 的默认本地协议是socks5h,cl**h 的默认本地协议是http + # [协议] 常见协议无非socks5h/http; 例如 v2**y 和 ss* 的默认本地协议是socks5h; 而cl**h 的默认本地协议是http # [地址] 懂的都懂,不懂就填localhost或者127.0.0.1肯定错不了(localhost意思是代理软件安装在本机上) - # [端口] 在代理软件的设置里,不同的代理软件界面不一样,但端口号都应该在最显眼的位置上 + # [端口] 在代理软件的设置里找。虽然不同的代理软件界面不一样,但端口号都应该在最显眼的位置上 # 代理网络的地址,打开你的科学上网软件查看代理的协议(socks5/http)、地址(localhost)和端口(11284) proxies = { "http": "socks5h://localhost:11284", "https": "socks5h://localhost:11284", } @@ -19,6 +18,9 @@ else: proxies = None print('网络代理状态:未配置。无代理状态下很可能无法访问。') + +# [step 3]>> 以下配置可以优化体验,但大部分场合下并不需要修改 + # 发送请求到OpenAI后,等待多久判定为超时 TIMEOUT_SECONDS = 25 @@ -28,9 +30,12 @@ WEB_PORT = -1 # 如果OpenAI不响应(网络卡顿、代理失败、KEY失效),重试的次数限制 MAX_RETRY = 2 -# 选择的OpenAI模型是(gpt4现在只对申请成功的人开放) +# OpenAI模型选择是(gpt4现在只对申请成功的人开放) LLM_MODEL = "gpt-3.5-turbo" +# OpenAI的API_URL +API_URL = "https://api.openai.com/v1/chat/completions" + # 设置并行使用的线程数 CONCURRENT_COUNT = 100 diff --git a/crazy_functions/高级功能函数模板.py b/crazy_functions/高级功能函数模板.py index 4cf1cb9..ec14e74 100644 --- a/crazy_functions/高级功能函数模板.py +++ b/crazy_functions/高级功能函数模板.py @@ -5,7 +5,7 @@ import datetime @CatchException def 高阶功能模板函数(txt, top_p, temperature, chatbot, history, systemPromptTxt, WEB_PORT): history = [] # 清空历史,以免输入溢出 - chatbot.append(("这是什么功能?", "[Local Message] 请注意,您正在调用一个函数模板,该函数面向希望实现更多有趣功能的开发者,它可以作为创建新功能函数的模板。为了做到简单易读,该函数只有25行代码,不会实时反馈文字流或心跳,请耐心等待程序输出完成。另外您若希望分享新的功能模组,请不吝PR!")) + chatbot.append(("这是什么功能?", "[Local Message] 请注意,您正在调用一个[函数插件]的模板,该函数面向希望实现更多有趣功能的开发者,它可以作为创建新功能函数的模板。为了做到简单易读,该函数只有25行代码,所以不会实时反馈文字流或心跳,请耐心等待程序输出完成。此外我们也提供可同步处理大量文件的多线程Demo供您参考。您若希望分享新的功能模组,请不吝PR!")) yield chatbot, history, '正常' # 由于请求gpt需要一段时间,我们先及时地做一次状态显示 for i in range(5): diff --git a/functional_crazy.py b/functional_crazy.py index ef5b6c2..d48c1a7 100644 --- a/functional_crazy.py +++ b/functional_crazy.py @@ -1,9 +1,12 @@ +from toolbox import HotReload # HotReload 的意思是热更新,修改函数插件后,不需要重启程序,代码直接生效 + # UserVisibleLevel是过滤器参数。 # 由于UI界面空间有限,所以通过这种方式决定UI界面中显示哪些插件 # 默认函数插件 VisibleLevel 是 0 # 当 UserVisibleLevel >= 函数插件的 VisibleLevel 时,该函数插件才会被显示出来 UserVisibleLevel = 1 + def get_crazy_functionals(): from crazy_functions.读文章写摘要 import 读文章写摘要 from crazy_functions.生成函数注释 import 批量生成函数注释 @@ -16,6 +19,7 @@ def get_crazy_functionals(): function_plugins = { "请解析并解构此项目本身": { + # HotReload 的意思是热更新,修改函数插件后,不需要重启程序,代码直接生效 "Function": 解析项目本身 }, "解析整个py项目": { @@ -39,10 +43,12 @@ def get_crazy_functionals(): "Function": 批量生成函数注释 }, "[多线程demo] 把本项目源代码切换成全英文": { - "Function": 全项目切换英文 + # HotReload 的意思是热更新,修改函数插件代码后,不需要重启程序,代码直接生效 + "Function": HotReload(全项目切换英文) }, "[函数插件模板demo] 历史上的今天": { - "Function": 高阶功能模板函数 + # HotReload 的意思是热更新,修改函数插件代码后,不需要重启程序,代码直接生效 + "Function": HotReload(高阶功能模板函数) }, } @@ -52,7 +58,8 @@ def get_crazy_functionals(): function_plugins.update({ "[仅供开发调试] 批量总结PDF文档": { "Color": "stop", - "Function": 批量总结PDF文档 + # HotReload 的意思是热更新,修改函数插件代码后,不需要重启程序,代码直接生效 + "Function": HotReload(批量总结PDF文档) }, }) from crazy_functions.批量总结PDF文档pdfminer import 批量总结PDF文档pdfminer diff --git a/main.py b/main.py index c69795a..3033e39 100644 --- a/main.py +++ b/main.py @@ -10,7 +10,7 @@ proxies, WEB_PORT, LLM_MODEL, CONCURRENT_COUNT, AUTHENTICATION = \ # 如果WEB_PORT是-1, 则随机选取WEB端口 PORT = find_free_port() if WEB_PORT <= 0 else WEB_PORT -AUTHENTICATION = None if AUTHENTICATION == [] else AUTHENTICATION +if not AUTHENTICATION: AUTHENTICATION = None initial_prompt = "Serve me as a writing and programming assistant." title_html = """