@@ -90,45 +90,45 @@ def get_existing_blog_posts():
9090
9191def extract_topic (topics ):
9292 global deepseek , existing_posts_text
93- return generate ([
94- {"role" : "system" , "content" : f"你在为一篇技术博客确定一个主题。直接用中文输出主题。" },
95- {"role" : "user" , "content" : f"阅读以下是HackerNews的热门文章,然后写一个可以用于技术博客的主题。这个主题应当是一个通用、普通的技术,不能是一个事件或其它东西。\n \n { topics } \n \n 只需要一个主题,直接输出。" },
96- ], deepseek , "deepseek-chat" )
97- # return grok_generate([
98- # system("你在为一篇技术博客确定一个主题。直接用中文输出主题。"),
99- # user(f"阅读以下是HackerNews的热门文章,然后写一个可以用于技术博客的主题。这个主题应当是一个通用、普通的技术,不能是一个事件或其它东西。\n\n{topics}\n\n以下是已有的博客文章,请避免选择相似的主题:\n{existing_posts_text }\n\n只需要一个主题,直接输出。")
100- # ], xai_client, "grok-3-mini ")
93+ # return generate([
94+ # {"role": "system", "content": f"你在为一篇技术博客确定一个主题。直接用中文输出主题。"},
95+ # {"role": "user", "content": f"阅读以下是HackerNews的热门文章,然后写一个可以用于技术博客的主题。这个主题应当是一个通用、普通的技术,不能是一个事件或其它东西。\n\n{topics}\n\n只需要一个主题,直接输出。"},
96+ # ], deepseek, "deepseek-chat")
97+ return grok_generate ([
98+ system ("你在为一篇技术博客确定一个主题。直接用中文输出主题。" ),
99+ user (f"阅读以下是HackerNews的热门文章,然后写一个可以用于技术博客的主题。这个主题应当是一个通用、普通的技术,不能是一个事件或其它东西。\n \n { topics } \n \n 只需要一个主题,直接输出。" )
100+ ], xai_client , "grok-4-1-fast-non-reasoning " )
101101
102102def outline (topic ):
103103 global deepseek
104- return generate ([
105- {"role" : "user" , "content" : f"我要写一篇关于「{ topic } 」的博客文章。帮我列一个详细的文章提纲。" }
106- ], deepseek , "deepseek-reasoner" )
107- # return grok_generate([
108- # user(f"我要写一篇关于「{topic}」的博客文章。帮我列一个详细的文章提纲。")
109- # ], xai_client, "grok-3-mini ")
104+ # return generate([
105+ # {"role": "user", "content": f"我要写一篇关于「{topic}」的博客文章。帮我列一个详细的文章提纲。"}
106+ # ], deepseek, "deepseek-reasoner")
107+ return grok_generate ([
108+ user (f"我要写一篇关于「{ topic } 」的博客文章。帮我列一个详细的文章提纲。" )
109+ ], xai_client , "grok-4-1-fast-non-reasoning " )
110110
111111def write_from_outline (outline ):
112112 global deepseek , existing_posts_text
113- return generate ([
114- {"role" : "system" , "content" : "你是一位专业技术博客作者。在写作时请遵循以下中文排版规范:使用全角中文标点;专有名词大小写正确;英文、数字使用半角字符;使用直角引号「」。" },
115- {"role" : "user" , "content" : f"{ outline } \n \n 根据这个提纲中关于技术知识的部分,写出一篇技术博客文章。文章中避免出现图片,不能使用任何列表。每一段出现的代码都进行较为详细的解读。在讲述内容时尽量使用段落的语言,语言风格可以略偏专业,但保持清晰。使用Markdown(要求符合Common Markdown规范)输出,使用LaTeX公式(注意:数学的开闭定界符前后不能有字母或数字字符。像x$a + b = c$或$a + b = c$1将无法渲染为数学公式(所有$会被渲染为$);但x $\\ infty$ 1和($\\ infty$)会正常渲染),标题尽量只用一级标题 `#` 和二级标题 `##`,不要用分割线。请遵循中文排版规范,使用正确的标点符号。直接输出正文。" }
116- ], deepseek , "deepseek-reasoner" )
117- # return grok_generate([
118- # system("你是一位专业技术博客作者。在写作时请遵循以下中文排版规范:使用全角中文标点;专有名词大小写正确;英文、数字使用半角字符;使用直角引号「」。"),
119- # user(f"{outline}\n\n根据这个提纲中关于技术知识的部分,写出一篇技术博客文章。文章中避免出现图片,不能使用任何列表。每一段出现的代码都进行较为详细的解读。在讲述内容时尽量使用段落的语言,语言风格可以略偏专业,但保持清晰。使用Markdown(要求符合Common Markdown规范)输出,使用LaTeX公式(注意:数学的开闭定界符前后不能有字母或数字字符。像x$a + b = c$或$a + b = c$1将无法渲染为数学公式(所有$会被渲染为$);但x $\\infty$ 1和($\\infty$)会正常渲染),标题尽量只用一级标题 `#` 和二级标题 `##`,不要用分割线。请遵循中文排版规范,使用正确的标点符号。直接输出正文。")
120- # ], xai_client, "grok-3-mini ")
113+ # return generate([
114+ # {"role": "system", "content": "你是一位专业技术博客作者。在写作时请遵循以下中文排版规范:使用全角中文标点;专有名词大小写正确;英文、数字使用半角字符;使用直角引号「」。"},
115+ # {"role": "user", "content": f"{outline}\n\n根据这个提纲中关于技术知识的部分,写出一篇技术博客文章。文章中避免出现图片,不能使用任何列表。每一段出现的代码都进行较为详细的解读。在讲述内容时尽量使用段落的语言,语言风格可以略偏专业,但保持清晰。使用Markdown(要求符合Common Markdown规范)输出,使用LaTeX公式(注意:数学的开闭定界符前后不能有字母或数字字符。像x$a + b = c$或$a + b = c$1将无法渲染为数学公式(所有$会被渲染为$);但x $\\infty$ 1和($\\infty$)会正常渲染),标题尽量只用一级标题 `#` 和二级标题 `##`,不要用分割线。请遵循中文排版规范,使用正确的标点符号。直接输出正文。"}
116+ # ], deepseek, "deepseek-reasoner")
117+ return grok_generate ([
118+ system ("你是一位专业技术博客作者。在写作时请遵循以下中文排版规范:使用全角中文标点;专有名词大小写正确;英文、数字使用半角字符;使用直角引号「」。" ),
119+ user (f"{ outline } \n \n 根据这个提纲中关于技术知识的部分,写出一篇技术博客文章。文章中避免出现图片,不能使用任何列表。每一段出现的代码都进行较为详细的解读。在讲述内容时尽量使用段落的语言,语言风格可以略偏专业,但保持清晰。使用Markdown(要求符合Common Markdown规范)输出,使用LaTeX公式(注意:数学的开闭定界符前后不能有字母或数字字符。像x$a + b = c$或$a + b = c$1将无法渲染为数学公式(所有$会被渲染为$);但x $\\ infty$ 1和($\\ infty$)会正常渲染),标题尽量只用一级标题 `#` 和二级标题 `##`,不要用分割线。请遵循中文排版规范,使用正确的标点符号。直接输出正文。" )
120+ ], xai_client , "grok-4-1-fast-non-reasoning " )
121121
122122def summary (article ):
123123 global deepseek
124- return generate ([
125- {"role" : "system" , "content" : "你是一个技术博客简介写作者,简介不一定需要涵盖文章的全部内容,能起到一定的提示作用即可。直接输出简介。遵循以下中文排版规范:使用全角中文标点;专有名词大小写正确;英文、数字使用半角字符。注意简介被作为副标题使用,不是一句句子,不要以句号结尾。" },
126- {"role" : "user" , "content" : f"给这篇文章写一个15字的简短介绍:\n \n { article } " }
127- ], deepseek , "deepseek-chat" )
128- # return grok_generate([
129- # system("你是一个技术博客简介写作者,简介不一定需要涵盖文章的全部内容,能起到一定的提示作用即可。直接输出简介。遵循以下中文排版规范:使用全角中文标点;专有名词大小写正确;英文、数字使用半角字符。注意简介被作为副标题使用,不是一句句子,不要以句号结尾。"),
130- # user(f"给这篇文章写一个15字的简短介绍:\n\n{article}")
131- # ], xai_client, "grok-3-mini ")
124+ # return generate([
125+ # {"role": "system", "content": "你是一个技术博客简介写作者,简介不一定需要涵盖文章的全部内容,能起到一定的提示作用即可。直接输出简介。遵循以下中文排版规范:使用全角中文标点;专有名词大小写正确;英文、数字使用半角字符。注意简介被作为副标题使用,不是一句句子,不要以句号结尾。"},
126+ # {"role": "user", "content": f"给这篇文章写一个15字的简短介绍:\n\n{article}"}
127+ # ], deepseek, "deepseek-chat")
128+ return grok_generate ([
129+ system ("你是一个技术博客简介写作者,简介不一定需要涵盖文章的全部内容,能起到一定的提示作用即可。直接输出简介。遵循以下中文排版规范:使用全角中文标点;专有名词大小写正确;英文、数字使用半角字符。注意简介被作为副标题使用,不是一句句子,不要以句号结尾。" ),
130+ user (f"给这篇文章写一个15字的简短介绍:\n \n { article } " )
131+ ], xai_client , "grok-4-1-fast-non-reasoning " )
132132
133133# LaTeX error handling
134134def extract_latex_segments (markdown_text : str ) -> List [Tuple [str , int , int ]]:
@@ -266,14 +266,14 @@ def modify_latex(markdown_text: str, error_report: Dict[Tuple[str,int], List[str
266266 "\n \n 上下文:\n " + context +
267267 "\n \n 请只返回修正后的完整片段,不要添加其它标记。"
268268 )
269- fixed = generate ([
270- {"role" :"system" ,"content" :"你是 LaTeX 专家,负责修正以下代码:" },
271- {"role" :"user" ,"content" :user_msg }
272- ], deepseek , "deepseek-reasoner" ).strip ()
273- # fixed = grok_generate([
274- # system("你是 LaTeX 专家,负责修正以下代码:"),
275- # user(user_msg)
276- # ], xai_client, "grok-3-mini ").strip()
269+ # fixed = generate([
270+ # {"role":"system","content":"你是 LaTeX 专家,负责修正以下代码:"},
271+ # {"role":"user","content":user_msg}
272+ # ], deepseek, "deepseek-reasoner").strip()
273+ fixed = grok_generate ([
274+ system ("你是 LaTeX 专家,负责修正以下代码:" ),
275+ user (user_msg )
276+ ], xai_client , "grok-4-fast-reasoning " ).strip ()
277277
278278 # 去掉```,如果不小心生成了
279279 if fixed .startswith ("```" ) and fixed .endswith ("```" ):
0 commit comments