Spaces:
Runtime error
Runtime error
import logging | |
import gradio as gr | |
import os | |
import json | |
import csv | |
#模板目录 | |
TEMPLATES_DIR = "PromptTemplete" | |
def get_template_names(plain=False): | |
logging.info("获取模板文件名列表") | |
return get_file_names(TEMPLATES_DIR, plain, filetypes=[".csv", "json"]) | |
def get_file_names(dir, plain=False, filetypes=[".json"]): | |
logging.info(f"获取文件名列表,目录为{dir},文件类型为{filetypes},是否为纯文本列表{plain}") | |
files = [] | |
try: | |
for type in filetypes: | |
files += [f for f in os.listdir(dir) if f.endswith(type)] | |
except FileNotFoundError: | |
files = [] | |
# files = sorted_by_pinyin(files) | |
if files == []: | |
files = [""] | |
if plain: | |
return files | |
else: | |
return gr.Dropdown.update(choices=files) | |
def load_template(filename, mode=0): | |
# logging.info(f"加载模板文件{filename},模式为{mode}(0为返回字典和下拉菜单,1为返回下拉菜单,2为返回字典)") | |
lines = [] | |
# logging.info("Loading template...") | |
if filename.endswith(".json"): | |
with open(os.path.join(TEMPLATES_DIR, filename), "r", encoding="utf8") as f: | |
lines = json.load(f) | |
lines = [[i["act"], i["prompt"]] for i in lines] | |
else: | |
with open( | |
os.path.join(TEMPLATES_DIR, filename), "r", encoding="utf8" | |
) as csvfile: | |
reader = csv.reader(csvfile) | |
lines = list(reader) | |
lines = lines[1:] | |
if mode == 1: | |
return ([row[0] for row in lines]) | |
elif mode == 2: | |
return {row[0]: row[1] for row in lines} | |
else: | |
choices = ([row[0] for row in lines]) | |
return {row[0]: row[1] for row in lines}, gr.Dropdown.update( | |
choices=choices, value=choices[0] | |
) | |
def get_template_content(templates, selection, original_system_prompt): | |
logging.info(f"应用模板中,选择为{selection},原始系统提示为{original_system_prompt}") | |
try: | |
return templates[selection] | |
except: | |
return original_system_prompt |