Skip to content

Commit

Permalink
Keys
Browse files Browse the repository at this point in the history
  • Loading branch information
luozhiya committed Sep 29, 2024
1 parent 9593e3a commit b03e908
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 11 deletions.
19 changes: 8 additions & 11 deletions py/lua_template_generate.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,10 @@
# lua template in `../lua/template/`
lua_template_dir = os.path.join(current_dir, "../lua/fittencode/template/")

# Delete lua template dir if exists
if os.path.exists(lua_template_dir):
os.system(f"rm -rf {lua_template_dir}")

fc = fittencode.FittenCode()


Expand Down Expand Up @@ -51,18 +55,11 @@ def process_response(response):
2.1 source, markdown文件名,包含后缀;
2.2 code,markdown一级标题;
2.3 description,markdown一级标题的正文内容。
3. 把所有的3级标题,作为 template 的一个 key,写到 template的花括号中,没有其他keys
3. 把所有的3级标题,作为 template 的一个 key,写到 template的花括号中,且key的名称按snake_case命名
4. 按代码块的分别处理:
4.1 对于 configuration key的内容:解析其中的结构转换为 key, 不要加额外的嵌套 table 和list。
4.2 对于 `initial_message_prompt` 或者 `response_prompt` 的内容,则:
4.2.1 转换成一个list,不要遗漏任何行,包括中英文混合的行;
4.2.2 每行作为一个普通的字符串,如果是 " 包围的字符串,则转义成 `\\"`, 特别是每一个字符串都应该是独立的一行;
4.2.3 不要合并行内容;
4.2.4 对于字符串中包含的`<| |>`,请不要把它设置为 template 的key,这就是一个字符串;
4.2.5 \`\`\` 转换为 lua 中的'```';
4.2.6 md的空行转换成list的空项“”。
5. 所有的变量、key、特别是`{{}}`包围的字符串,都要从camelCase 转换为 snake_case,请勿遗漏,即使是中英结合要处理。
规则列举完毕,请注意遵守以上规则,务必符合lua语法。
4.2 对于 `initial_message_prompt` 或者 `response_prompt` 的内容,则:将整个内容转为lua 的`[[ ]]`样式的字符串,逐行拼接,切勿做任何格式化与修改,切勿把`#`、`##`等当成标题来解析。
规则完毕,最后请注意Key之间要用逗号分隔。
"""


Expand Down Expand Up @@ -108,7 +105,7 @@ def __init__(self):
print(f"[{count}] > Refined {save_path}")
count += 1

time.sleep(5)
time.sleep(1)

# exit for testing only
# sys.exit(0)
13 changes: 13 additions & 0 deletions py/lua_template_refine.py
Original file line number Diff line number Diff line change
Expand Up @@ -83,11 +83,24 @@ def add_newline_at_eof(file_path):
else:
print(f"No changes in file: {file_path}")

def replace_backtick(file_path):
# replace \` with `
with open(file_path, "r", encoding="utf-8") as file:
content = file.read()

new_content = re.sub(r"\\`", "`", content)
if new_content != content:
print(f"Replacing \\` with ` in file: {file_path}")
with open(file_path, "w", encoding="utf-8") as file:
file.write(new_content)
else:
print(f"No changes in file: {file_path}")

def refine(file_path):
replace_in_file(file_path)
trim_trailing_whitespace(file_path)
add_newline_at_eof(file_path)
replace_backtick(file_path)


# Run the batch replacement in the current script's directory
Expand Down

0 comments on commit b03e908

Please sign in to comment.