54 lines
2.1 KiB
Python
54 lines
2.1 KiB
Python
#!/usr/bin/env python3
|
||
# -*- coding: utf-8 -*-
|
||
"""
|
||
将Markdown格式提示词转换为AI推理可用格式(换行替换为\n转义符)
|
||
"""
|
||
import os
|
||
|
||
def get_prompt(md_path):
|
||
"""
|
||
转换Markdown格式提示词为AI推理可用格式
|
||
:param input_content: 输入内容(md文件路径 或 md文本字符串)
|
||
:param is_file: 是否为文件路径(True:文件路径,False:直接传入md文本)
|
||
:param output_file: 输出文件路径(可选,指定则保存结果到文件)
|
||
:return: 转换后的AI可用提示词字符串
|
||
"""
|
||
try:
|
||
# 1. 获取原始md内容
|
||
# 校验文件是否存在
|
||
if not os.path.exists(md_path):
|
||
raise FileNotFoundError(f"找不到指定的Markdown文件:{md_path}")
|
||
# 读取md文件(指定utf-8编码,避免中文乱码)
|
||
with open(md_path, 'r', encoding='utf-8') as f:
|
||
md_content = f.read()
|
||
|
||
# 2. 核心转换:将可视化换行(\r\n 或 \n)替换为转义换行符 \n
|
||
# 先统一处理Windows换行符 \r\n 为 Unix换行符 \n
|
||
# ai_prompt = md_content.replace('\r\n', '\n')
|
||
# (可选)如果需要将连续换行压缩为单个换行(避免AI识别多余空行),解开下面注释
|
||
# import re
|
||
# ai_prompt = re.sub(r'\n{2,}', '\n\n', ai_prompt)
|
||
|
||
# 3. (可选)保留Markdown关键格式的轻微优化(避免转义破坏md语法)
|
||
# 例如:保留代码块、标题、列表的格式,仅转换内容中的换行
|
||
# 此处无需额外处理,\n本身就可以被大多数AI(包括Kimi)识别为md换行
|
||
|
||
# 5. 返回转换后的提示词
|
||
return md_content
|
||
|
||
except Exception as e:
|
||
print(f"转换过程中出现错误:{e}")
|
||
return None
|
||
|
||
from datetime import datetime
|
||
def _current_time_str():
|
||
return datetime.now().strftime('%Y-%m-%d %H:%M:%S')
|
||
|
||
# 示例用法
|
||
if __name__ == "__main__":
|
||
md_file_path = "./提示词 v2.md"
|
||
prompt = get_prompt(md_file_path)
|
||
if prompt:
|
||
print(f"[{_current_time_str()}][获取提示词] 转换成功!AI可用提示词如下:")
|
||
print(prompt)
|