diff --git a/main.py b/main-old.py similarity index 100% rename from main.py rename to main-old.py diff --git a/talk.py b/talk.py index d64e2b2e..67fce028 100644 --- a/talk.py +++ b/talk.py @@ -55,7 +55,8 @@ def start_server(): logging.error("程序初始化失败!") exit(0) - cooldown = 0.3 # 冷却时间 0.3 秒 + # 冷却时间 0.5 秒 + cooldown = 0.5 last_pressed = 0 # HTTP API线程 diff --git a/utils/audio.py b/utils/audio.py index 6d8f0da3..11e7a9c7 100644 --- a/utils/audio.py +++ b/utils/audio.py @@ -922,7 +922,21 @@ def stop_current_audio(self): Audio.mixer_normal.music.fadeout(1000) """ - 文案板块 + ./@\] + ,@@@@\* \@@^ ,]]] + [[[* /@@]@@@@@/[[\@@@@/ + ]]@@@@@@\ /@@^ @@@^]]`[[ + ]]@@@@@@@[[* ,[` /@@\@@@@@@@@@@@@@@^ + [[[[[` @@@/ \@@@@[[[\@@^ =@@/ + .\@@\* *@@@` [\@@@@@@\` + ,@@\=@@@ ,]@@@/` ,\@@@@* + ,@@@@` ,[[[[` =@@@ ]]/O + /@@@@@` ]]]@@@@@@@@@/[[[[[` + ,@@@@[ \@@@\` ./@@@@@@@] + ,]/@@@@/` \@@@@@\]] ,@@@/,@@^ \@@@\] + ,@@@@@@@@/[* ,/@@/* /@@^ [@@@@@@@\* + ,@@^ + """ # 延时执行恢复文案播放 def delayed_execution_unpause_copywriting_play(self): diff --git a/utils/common.py b/utils/common.py index 55b6e832..dc73d517 100644 --- a/utils/common.py +++ b/utils/common.py @@ -119,7 +119,21 @@ def get_random_value(self, lower_limit, upper_limit): """ - 文本操作 + + .,]` ]]]` ,]]` .` .]` + ,@@@@ @@@^ =@@^ .@@@@@@@@@@@@^ /@@@ /@@@ + =@@@@@@@@@@@@@@@@@@@@@@^ O@@@@@@@@@@@@@@@@@@@@@ ..=@@\...@@@]]]]]]/@@^ =@@@` =@@@@@@@@@@@@@\ + =@@@@@@@@@@@@@@@@@@@@@@^ O@@@@@@@@@@@@@@@@@@@@@ =@@@@@@^.@@@@@@@@@@@@^ ,@@@^ ,@@@@@@@@@@@@@@@ + =@@@^ /@@@^ /@@@@@@\ =@@^ .@@@@@@O.@@@@@@@ ,@@@@^=@@@^=@@@. + =@@@^ =@@@/ ,@@@@@@@@@@` =@@^..@@^.@@@.@@^.@@@ ,@@@@@^\@@` =@@@@@@@@@^ + \@@@\ ./@@@/ ,@@@@`@@@^.@@@@` /@@@@@@*@@@@@@@.@@@@@@@ =@@@@@^ \. =@@@@@@@@@^ + ,@@@@@@@@` ,@@@@/ @@@^ =@@@@] =@@@@/` =@@O .@.@@@^ =@@@. + ]@@@@@@` =@@@@@]]]]@@@\]]]]@@@@@^ =@@^ @@@@@@@@@@@@@@@@^ @@@^ =@@@@@@@@@@ + ,/@@@@@@@@@@@@\` ,@/.=@@@@@@@@@@@@^ \/. =@@^ ,@@@@@@@@] @@@^ =@@@@@@@@@@ + =@@@@@@@@/. .\@@@@@@@@` @@@^ ,]/@@^,/@@@@`=@@@.\@@@@` @@@^ =@@@. + ,@@@/` ,\@@/. @@@^ =@@@@` ,@[. =@@@ ,\` @@@^ =@@@. + + """ # 删除多余单词 @@ -522,7 +536,16 @@ def dynamic_variable_replacement(self, template, data_json): """ - 文本操作-路径、文件名相关 + + .@@@ @@@ @@^ =@@@@@@@@ /@@ /@@ =@@@@@*,@@\]]]] ,@@@@@@@@@@@@* .@@@ @@/.\]`@@@ =@@\]]]]]]] =@@..@@@@@@@@@ =@@\ /@@^ + *@@@@@@@@@@@@@@@*=@@@@@@@@@@@@@@.@@@@@=@@@@@@@@ =@@`=@@@@@@@@@^ =@/[@@@@@@@@@@/.@@@` .]@@/ *@@@@@@@@@@@@@@@* =@@.=@@]@@@]]]. ,@@@@@@@@@@@@ ,@@@@@@@@/[[[\@@ =@@@@@@@@@@@@@^ + =@@` ,@@^ .@@@@@. @@^=@@@@^@@@@@ =@@@=@@`@@^ =@@@@@,[@@@@@/ \/,@@`]/@@@@@] =@@` ,@@^ ,@@@,@@@@@@@@@/.\@/,@@@`/@@@` .[\@@[[@@@@@@@@@ ,[[[[[@@@[[[[[` + \@@` ,@@/ /@@@@@@@\ .@@@O@\/@^@@]@@=@@@@,@`*@@@@@@^ ]]=@@=@@@@@@@@@^,@@@,@@/` .\@@. \@@` ,@@/ ,@@@@[@/ @@@ ,]@@@@[ ,@@@@\@@^ =@@.@@@@@@@@@@@@@@@` + =@@@@@^ ./@@/ @@@ \@@\`=@@@/` =@@ @=@@ *@@^ =@@@@^ @@=@@@,@@@@@@@^,@@@^.@@@@@@@@@^ =@@@@@^ .@\@@@@@@@@@@@@@/@@@@@@@@@@@@@@.,@@@@[`@@@@@@@@@.[[[[[\@@@/[[[[[` + ,/@@@@@\` .\@/@@@@@@@@@\@/ @@^\@@@@@@@@@/. =@@ *@@@@@@@ @@=@@ *@@[[[@@^ .=@^ =@@. ./` ,/@@@@@\` =@@ @@@ @@@ =@@..@=@@..@@^ =@@ ,/@@[@@@` + .@@@@@@` ,\@@@@@` @@@ ,]@@^/@@/=@@[@@@` =@@ *@@^ =@@@@@@^@@@@@@@^ =@^@@@@@@@@@@@^,@@@` .@@@@@@` ,\@@@@@` =@@ @@@ @@@@@@@@@@@@. =@@..@@@@@@@@@./@@@@/ [@@@@@` + .[` ,[ \@/ .[[[ .. ,@/ ,@/ .@@` . .@/. \@` ,[`,[[[[[[[[[[. ,[ .[` ,[ ,@/ \@/ \@/ ,[[. ,@/..\@` ,@/ .[[ ,[ + """ # 读取指定文件中所有文本内容并返回 如果文件不存在则创建 @@ -677,7 +700,20 @@ def get_live2d_model_name(self, path): """ - 文件操作 + + .]]@@ .@]] @@@@ O@@` ,]]]]]]]]]]]]. /]] /@]` + =@@@\ =@@@`.@@@^ @@@@ @@@^ =@@@@@@@@@@@@. =@@@` =@@@` + @@@@@@@@@@@@@@@@@@@@@@@ ,@@@^ =@@@` @@@@ ]]@@@\]`=@@@@@@@@@@@@. ,@@@^ ,@@@@@@@@@@@@@@^ + @@@@@@@@@@@@@@@@@@@@@@@ .@@@@ .@@@@@@@@@@@@@@@ @@@@@@@^,[[[[[[[[[[[[. .@@@@..@@@@@@@@@@@@@@@` + \@@@` =@@@@ .@@@@@ =@@@[[[@@@@[[[[` @@@^ =@@@@@@^=@@@@@@^ .@@@@@,@@@/ @@@^ + .@@@@` ,@@@@. /@@@@@,@@@^ @@@@ @@@\]=@@ =@@^=@@.=@@^.@@@@@@.@@/ @@@@@@@@@@ + \@@@\./@@@@ .@@@@@@,]]]]]]]@@@@]]]]]/@@@@@@@=@@@@@@^=@@@@@@^ @@O@@@..` @@@/[[[[[[ + =@@@@@@@^ =/=@@@=@@@@@@@@@@@@@@@@^@@@@@^,]]]]]]@@@\]]]]]] =`=@@@. @@@^ + ./@@@@@@@] =@@@ @@@@ @@@^=@@@@@@@@@@@@@@@@ =@@@. @@@@@@@@@@^ + ,]@@@@@@@[@@@@@@@]` =@@@ @@@@ @@@^ .]@@@@@@@@@\. =@@@. @@@/[[[[[[` + \@@@@@@@[ .[@@@@@@@/ =@@@ @@@@ .@@@@@`@@@@@` @@@^.\@@@@. =@@@. @@@^ + ,@/[ .[\@` =@@@ @@@@ \@@@` ,` @@@^ .[ =@@@. @@@^ + """ # 写入内容到指定文件中 返回T/F @@ -736,7 +772,20 @@ def move_file(self, source_path, destination_path, rename=None, format="wav"): """ - 音频相关 + + ,@@@^ .@@@. .@@@@@@@@@@@@. .@@@. ,]]]]]]]]]]]]` ]@@@` ,@@@\. + .@@@@@@@@@@@@@@@@@@@@@^ .@@O.@@@\]`@@@@@@@@@@@@. .@@@. =@@@@@@@@@@@@^ \@@@@. =@@@/ + .]@@^ ,@@\` .@@O.@@@@@^,]]/@@@]]]]`.@@@@@@@@@=@@^ .@@@^ =@@@@@@@@@@@@@@@@@@@@ + .@@@@@@@@@@@@@@@@@@@@@@@..@@O.@@@. =@@@@@@@@@@^.[[[@@@/[[=@@@]]]]]/@@@^ =@@@@@@@@@@@@@@@@@@@O + .@@@@@@@@@@@@@@@@@@@@@@@*@@@@@@@@@@@=@@^,]]`=@@^ /@@@` =@@@@@@@@@@@@^ =@@@^ + =@@@@@@@@@@@@@@@@@^ =@@O =@@^=@@^=@@^ /@@@@@@@/@@^ .@@@^.@@@@@@@@@@@@@@@@@@@@@@@. + =@@@@@@@@@@@@@@@@@^ /@@\@@O=@@/@@^=@@^=@@^./@@@@@[@`=@@@@@@@@@@@@^.O@@@@@@@@@@@@@@@@@@@@@O. + =@@@]]]]]]]]]]]@@@^ =@@^=@@@@@/=@@^@@@.=@@^.@@`@@@. =@@@@@@@@@@@@^ .@@@@@@@` + =@@@@@@@@@@@@@@@@@^ .,\^ ./@@@^ ,[[@@@@\,[[` =`.@@@. =@@^ .@@@^ ,@@@@/ \@@@@] + =@@@]]]]]]]]]]]@@@^ .]@@@@/ ,/@@@/@@@@] .@@@. =@@@@@@@@@@@@^ .,/@@@@@/. .\@@@@@@\]. + =@@@@@@@@@@@@@@@@@^ \@@@@` ,@@@@[ .\@@@. .@@@. =@@@@@@@@@@@@^ ,@@@@@` ,\@@@/. + .... .... ,. ,. . ... .... ..... . + """ # 获取新的音频路径 def get_new_audio_path(self, audio_out_path, file_name): @@ -782,7 +831,20 @@ def get_all_audio_device_info(self, type): return device_infos """ - HTTP请求相关 + + .. ,]]]. ,]]]. ,] + .@@@@. ,@@@\ .@@@@@@@@@@@@@@`@@@@@@@@@@@@@@` =@@@@@@\]]` =@@@^ ,]]]]]/@@@\]]]]]] =@@@. \@@@@` + .@@@@. =@@@@ *@@@@@@@@@@@@@@^@@@@@@@@@@@@@@^ =@@@@@@@@@@@\ ,@@@\,[[[[[\@@@[[[[[[[ ]]]]]]]]]/@@@\]]]/@\]]] + .@@@@. =@@@@ .@@@@. .@@@@. =@@@^ .@@@@^ .[` .@@@@@@@@@@@@@@@. @@@@@@@@@@@@@@@@@@@@@@@ + .@@@@. =@@@@ .@@@@. .@@@@. =@@@^ =@@@@,]]]]],]]]]]]/@@@]]]]]]]` ,@` =@@@` /\. + .@@@@@@@@@@@@@@@@ .@@@@. .@@@@. =@@@^ .]@@@@`=@@@@@,[[[[[[[[[[[[[[[[[` ,@@@@\. =@@@@` ./@@@@` + .@@@@@@@@@@@@@@@@ .@@@@. .@@@@. =@@@@@@@@@@/. =@@@ =@@@@@@@@@@@@@^ .\@@` =@@@@@@@@@/. + .@@@@. =@@@@ .@@@@. .@@@@. =@@@/[[`. =@@@ =@@@]]]]]]]@@@^ ,/@@@@@@\@@@\ + .@@@@. =@@@@ .@@@@. .@@@@. =@@@^ =@@@.`=@@@@@@@@@@@@@^ .]@@@@@@/\@@@.,@@@@@] + .@@@@. =@@@@ .@@@@. .@@@@. =@@@^ =@@@@@=@@@@@@@@@@@@@^ \@@@/` =@@@. ,@@@@@@ + .[[[[. ,[[[[ .[[[[. .[[[[. ,[[[` =@@@@[=@@@ .@@@^ [. @@@@@@@@. [@/ + .@/. =@@@ ,@@@@@@@. =@@@@@@` + """ def send_request(self, url, method='GET', json_data=None): """ diff --git a/utils/my_handle.py b/utils/my_handle.py index 8c367cab..9172889d 100644 --- a/utils/my_handle.py +++ b/utils/my_handle.py @@ -777,6 +777,17 @@ def choose_song_handle(self, data): return False + """ + + ]@@@@@ =@@ @@^ =@@@@@@]. .@@` ./@@@ ,@@@^ /@^ + @@^ @@* =@@ @@^ =@@ ,@@\ =@@ @@^ + \@@]. =@@@@@.=@@@@@` =@@@@@@@. @@^ ./@@@@\. =@@ .@@^.@@.@@@@@@@@@@@.@@ @@^ /@@@@^ @@^ ./@@@@@] @@/@@@@. + ,\@@\ @@* .]]/@@ =@@. =@\ @@^ @@\]]/@^ =@@ @@^.@@. =@@ @@^ .@@ @@^ @@\` @@^ @@^ \@^ @@` \@^ + @@^ @@* ,@@` =@@ =@@ =@/ @@^ @@` =@@ ./@/ .@@. =@@ @@^ .@@. @@^ ,\@@ @@^ @@^ /@^ @@* =@^ + .@@@@@@/ \@@@.@@@@@@@ =@@@@@@/ @@^ .\@@@@@. =@@@@@@/` .@@. =@@ @@^ =@@@@@@^.@@@@@^ @@^ .\@@@@@` @@* =@^ + + """ + # 画图模式 SD 处理 def sd_handle(self, data): """画图模式 SD 处理 @@ -1018,6 +1029,30 @@ def tuning_handle(self, data_json): else: logging.warning(f"警告:{chat_type}无返回") + + """ + + .@@@@@@@@@@@ .@@@@@@@@@@@ .@@@@@@@@@@@@@@^ /@@@@@@@@@@@@@@ + .@@@@@@@@@@@ .@@@@@@@@@@@ .@@@@@@@@@@@@@@@ ,@@@@@@@@@@@@@@@ + .@@@@@@@@@@@ .@@@@@@@@@@@ .@@@@@@@@@@@@@@@^ /@@@@@@@@@@@@@@@ + .@@@@@@@@@@@ .@@@@@@@@@@@ .@@@@@@@@@@@@@@@@. ,@@@@@@@@@@@@@@@@ + .@@@@@@@@@@@ .@@@@@@@@@@@ .@@@@@@@@@@@@@@@@^ /@@@@@@@@@@@@@@@@ + .@@@@@@@@@@@ .@@@@@@@@@@@ .@@@@@@@@@=@@@@@@@. ,@@@@@@@^@@@@@@@@@ + .@@@@@@@@@@@ .@@@@@@@@@@@ .@@@@@@@@@.@@@@@@@^ @@@@@@@@.@@@@@@@@@ + .@@@@@@@@@@@ .@@@@@@@@@@@ .@@@@@@@@@ =@@@@@@@. =@@@@@@@^.@@@@@@@@@ + .@@@@@@@@@@@ .@@@@@@@@@@@ .@@@@@@@@@ .@@@@@@@^ @@@@@@@@ .@@@@@@@@@ + .@@@@@@@@@@@ .@@@@@@@@@@@ .@@@@@@@@@ =@@@@@@@=@@@@@@@^ .@@@@@@@@@ + .@@@@@@@@@@@ .@@@@@@@@@@@ .@@@@@@@@@ .@@@@@@@@@@@@@@@ .@@@@@@@@@ + .@@@@@@@@@@@ .@@@@@@@@@@@ .@@@@@@@@@ =@@@@@@@@@@@@@^ .@@@@@@@@@ + .@@@@@@@@@@@ .@@@@@@@@@@@ .@@@@@@@@@ .@@@@@@@@@@@@/ .@@@@@@@@@ + .@@@@@@@@@@@@@@@@@@@@@@@@@@@^ .@@@@@@@@@@@@@@@@@@@@@@@@@@@^ .@@@@@@@@@ =@@@@@@@@@@@` .@@@@@@@@@ + .@@@@@@@@@@@@@@@@@@@@@@@@@@@^ .@@@@@@@@@@@@@@@@@@@@@@@@@@@^ .@@@@@@@@@ .@@@@@@@@@@/ .@@@@@@@@@ + .@@@@@@@@@@@@@@@@@@@@@@@@@@@^ .@@@@@@@@@@@@@@@@@@@@@@@@@@@^ .@@@@@@@@@ =@@@@@@@@@` .@@@@@@@@@ + .@@@@@@@@@@@@@@@@@@@@@@@@@@@^ .@@@@@@@@@@@@@@@@@@@@@@@@@@@^ .@@@@@@@@@ .@@@@@@@@/ .@@@@@@@@@ + + """ + + # LLM处理 def llm_handle(self, chat_type, data): """LLM统一处理 @@ -1535,6 +1570,27 @@ def key_mapping_handle(self, type, data): return flag + """ + + ,` + @@@@` =@@\` /@@/ + ,/@@] =@@@` @@@/ =@@\/@@@@@@@@@[ + .\@@/[@@@@` ,@@@ =@/. ,[[[[.=@^ ,@@@@\` + *@@^,` .]]]@@@@@@\` ,@@@@@@[[[. =@@@@. + .]]]]/@@`\@@/ *@@^ =@@@/ ,@@@@@@@@/`@@@` + =@@* .@@@@@@@@/`@@@^ ,@@\]]/@@@@@. + =@@ =@@*.@@\]/@@^ ,\@@\ ,]]@@@@] + ,/@@@@@@@^ \@/[@@^ .@@@@@@@@@[[[\@\. + ,@/. .@@@ .@@\]/@@@@@@` ,@@@,@@@.,]@@@` + .@@/@@@@@/[@@/ /@@\]@@@@@@@@@@@@@] + =@@^ .@@^ ]@@@@@^ @@@ @@@ ,@@@@@@\]. + ,]]/@@@` .@@^ ./@/` .@@^.@@@/@@@/ + \@@@` .@@^ .@@@ .[[ + .@@` @@^ + + + """ + # 弹幕处理 def comment_handle(self, data): """弹幕处理 diff --git a/webui.py b/webui.py index b6b78568..a29264fa 100644 --- a/webui.py +++ b/webui.py @@ -177,7 +177,17 @@ async def web_server_thread(web_server_port): """ -webui + + .@@@@@ @@@@@. + .@@@@@ @@@@@. + ]]]]] .]]]]` .]]]]` ,]@@@@@\` .@@@@@,/@@@\` .]]]]] ]]]]]` ]]]]]. + =@@@@^ =@@@@@` =@@@@. =@@@@@@@@@@@\ .@@@@@@@@@@@@@ *@@@@@ @@@@@^ @@@@@. + =@@@@ ,@@@@@@@ .@@@@` =@@@@^ =@@@@^ .@@@@@` =@@@@^ *@@@@@ @@@@@^ @@@@@. + @@@@^@@@@\@@@^=@@@^ @@@@@@@@@@@@@@@ .@@@@@ =@@@@@ *@@@@@ @@@@@^ @@@@@. + ,@@@@@@@^ \@@@@@@@ =@@@@^ .@@@@@. =@@@@^ *@@@@@ .@@@@@^ @@@@@. + =@@@@@@ .@@@@@@. \@@@@@]/@@@@@` .@@@@@@]/@@@@@. .@@@@@@@@@@@@@^ @@@@@. + \@@@@` =@@@@^ ,\@@@@@@@@[ .@@@@^\@@@@@[ .\@@@@@[=@@@@^ @@@@@. + """ # 配置 webui_ip = config.get("webui", "ip") @@ -201,7 +211,20 @@ def goto_func_page(): global audio """ - 按键调用函数 + + =@@^ ,@@@^ .@@@. ..... =@@. ]@\ ,]]]]]]]]]]]]]]]. .]]]]]]]]]]]]]]]]]]]] ,]]]]]]]]]]]]]]]]]` ,/. @@@^ /] ,@@@. + =@@^ .@@@@@@@@@@@@@@^ /@@\]]@@@@@=@@@@@@@@@. \@@@`=@@@@@@@@@@@@@@@. .@@@@@@@@@@@@@@@@@@@@ =@@@@@@@@@@@@@@@@@^ .\@@^@@@\@@@`.@@@^ + @@@@@@@^@@@@@@@@@@@@@@^ =@@@@@^ =@@\]]]/@@]]@@]. =@/`=@@^ .@@@ .@@@. .@@@^ @@@^ =@@@ ,/@@@@/` =@@@@@@@@@@@^=@@@@@@@@@. + @@@@@@@^@@@^@@\` =@@^.@@@]]]`=@@^=@@@@@@@@@@@.]]]]` =@@^=@@@@@@@^@@@. .@@@\]]]]@@@\]]]]/@@@ @@@\/@\..@@@@[./@/@@@. ,[[\@@@@/[[[\@@@`..@@@` + =@@^ ,]]]/@@@]]]]]]]].\@@@@@^@@@OO=@@@@@@@@@..@@@@^ =@@^]]]@@@]]`@@@. .@@@@@@@@@@@@@@@@@@@@ @@@^=@@@^@@@^/@@@\@@@..]@@@@@@@@@@]@@@@^ .@@@. + =@@@@=@@@@@@@@@@@@@@@. =@@^ .OO@@@.[[\@@[[[[. =@@^ =@@^@@@@@@@@^@@@. .@@@^ @@@^ =@@@ @@@^ .`,]@@@^`,` =@@@. \@/.]@@@^,@@@@@@\ =@@^ + .@@@@@@@. .@@@` /@@/ .@@@@@@@,.=@@=@@@@@@@@@^ =@@^,=@@^=@@@@@@@.@@@. .@@@\]]]]@@@\]]]]/@@@ @@@^]@@@@@@@@@@@]=@@@. ]]]@@@\]]]]] .=@@\@@@. + @@\@@^ .@@@\. /@@@. =@@^ =@\@@^.../@@..... =@@@@=@@^=@@[[\@@.@@@. .@@@@@@@@@@@@@@@@@@@@ @@@@@@/..@@@^,@@@@@@@. O@@@@@@@@@@@ .@@@@@^ + =@@^ ,\@@@@@@@@. =@@^/^\@@@`@@@@@@@@@@^ /@@@/@@@`=@@OO@@@.@@@. =@@@` @@@^ =@@@ @@@^ \@@@@@^ .=@@@. .@@@@\`/@@/ /@@@\. + =@@^ ,/@@@@@@@@] =@@@@^/@@@@]` =@@. .\@/.=@@@ =@@[[[[[.@@@. /@@@ @@@^ ./@@@ @@@^.............=@@@. O@@@@@@\`,/@@@@@@@@` + @@@@@^.@@@@@@@/..[@@@@/. ,@@`/@@@`[@@@@@@@@@@@@. /@@@^ =@@@@@@. /@@@^ @@@^,@@@@@@^ @@@@@@@@@@@@@@@@@@@@@..\@@@@@[,\@@\@@@@` ,@@@^ + ,[[[. .O[[. [` ,/ ...... ,^ .[[[[` ,` .... [[[[` ,[[[. .[. ,/. .` + """ # 创建一个函数,用于运行外部程序 def run_external_program(config_path="config.json", type="webui"): @@ -322,7 +345,20 @@ def test_openai_key(): """ - API + + /@@@@@@@@ @@@@@@@@@@@@@@@]. =@@@@@@@ + =@@@@@@@@@^ @@@@@@@@@@@@@@@@@@` =@@@@@@@ + ,@@@@@@@@@@@` @@@@@@@@@@@@@@@@@@@^ =@@@@@@@ + .@@@@@@\@@@@@@. @@@@@@@^ .\@@@@@@\ =@@@@@@@ + /@@@@@/ \@@@@@\ @@@@@@@^ =@@@@@@@ =@@@@@@@ + =@@@@@@. .@@@@@@^ @@@@@@@\]]]@@@@@@@@^ =@@@@@@@ + ,@@@@@@^ =@@@@@@` @@@@@@@@@@@@@@@@@@/ =@@@@@@@ + .@@@@@@@@@@@@@@@@@@@. @@@@@@@@@@@@@@@@/` =@@@@@@@ + /@@@@@@@@@@@@@@@@@@@\ @@@@@@@^ =@@@@@@@ + =@@@@@@@@@@@@@@@@@@@@@^ @@@@@@@^ =@@@@@@@ + ,@@@@@@@. ,@@@@@@@` @@@@@@@^ =@@@@@@@ + @@@@@@@^ =@@@@@@@. @@@@@@@^ =@@@@@@@ + """ from starlette.requests import Request @@ -405,8 +441,23 @@ async def sys_cmd(request: Request): return {"code": -1, "msg": f"{data_json['type']}执行失败!{e}"} """ - 文案页 + ./@\] + ,@@@@\* \@@^ ,]]] + [[[* /@@]@@@@@/[[\@@@@/ + ]]@@@@@@\ /@@^ @@@^]]`[[ + ]]@@@@@@@[[* ,[` /@@\@@@@@@@@@@@@@@^ + [[[[[` @@@/ \@@@@[[[\@@^ =@@/ + .\@@\* *@@@` [\@@@@@@\` + ,@@\=@@@ ,]@@@/` ,\@@@@* + ,@@@@` ,[[[[` =@@@ ]]/O + /@@@@@` ]]]@@@@@@@@@/[[[[[` + ,@@@@[ \@@@\` ./@@@@@@@] + ,]/@@@@/` \@@@@@\]] ,@@@/,@@^ \@@@\] + ,@@@@@@@@/[* ,/@@/* /@@^ [@@@@@@@\* + ,@@^ + """ + # 文案页-增加 def copywriting_add(): data_len = len(copywriting_config_var) @@ -1361,6 +1412,29 @@ def common_textarea_handle(content): os._exit(0) + + """ + + .............................................................................................................. + .............................................................................................................. + ..........................,]]................................................................................. + .........................O@@@@^............................................................................... + .....=@@@@@`.....O@@@....,\@@[.....................................,@@@@@@@@@@]....O@@@^......=@@@@....O@@@^.. + .....=@@@@@@.....O@@@............................................=@@@@/`..,[@@/....O@@@^......=@@@@....O@@@^.. + .....=@@@@@@@....O@@@....,]]]].......]@@@@@]`.....,/@@@@\`....../@@@@..............O@@@^......=@@@@....O@@@^.. + .....=@@@/@@@\...O@@@....=@@@@....,@@@@@@@@@@^..,@@@@@@@@@@\...=@@@@...............O@@@^......=@@@@....O@@@^.. + .....=@@@^,@@@\..O@@@....=@@@@...,@@@@`........=@@@/....=@@@\..=@@@@....]]]]]]]]...O@@@^......=@@@@....O@@@^.. + .....=@@@^.=@@@^.O@@@....=@@@@...O@@@^.........@@@@......@@@@..=@@@@....=@@@@@@@...O@@@^......=@@@@....O@@@^.. + .....=@@@^..\@@@^=@@@....=@@@@...@@@@^........,@@@@@@@@@@@@@@..=@@@@.......=@@@@...O@@@^......=@@@@....O@@@^.. + .....=@@@^...\@@@/@@@....=@@@@...O@@@^.........@@@@`...........,@@@@`......=@@@@...O@@@^......=@@@@....O@@@^.. + .....=@@@^....@@@@@@@....=@@@@...,@@@@`........=@@@@......,.....=@@@@`.....=@@@@...=@@@@`.....@@@@^....O@@@^.. + .....=@@@^....,@@@@@@....=@@@@....,@@@@@@@@@@`..=@@@@@@@@@@@`....,@@@@@@@@@@@@@@....,@@@@@@@@@@@@`.....O@@@^.. + .....,[[[`.....,[[[[[....,[[[[.......[@@@@@[`.....,[@@@@@[`.........,\@@@@@@[`.........[@@@@@@[........[[[[`.. + .............................................................................................................. + .............................................................................................................. + + """ + with ui.tabs().classes('w-full') as tabs: common_config_page = ui.tab('通用配置') llm_page = ui.tab('大语言模型')