微信扫码
添加专属顾问
我要投稿
在学习大模型应用开发的过程中,我们常常需要整理和记录大量的代码和概念。为了提高效率,我开发了一个应用,能够自动解析我写的demo代码,并生成一份详尽的笔记。这篇文章就是用这种方法生成的。
该应用的主要场景是帮助开发者快速整理和记录学习过程中的代码和概念。通过自动解析代码并生成笔记,可以大大提高学习效率。
import streamlit as st
from langchain.prompts import PromptTemplate
from langchain.chains import LLMChain
from utils.llms import LLMs
import os
st.title("技术文章创作空间")
st.write("欢迎来到技术文章创作空间,让我们一起将复杂的技术概念转化为引人入胜的文章。请提供你的技术背景描述和代码,我将为你撰写一篇精彩的公众号文章。")
background_description = st.text_area("请输入你的背景描述")
code_snippet = st.text_area("请输入你的代码")
def generate_outline(background, code):
system_prompt = PromptTemplate(
template="""
你是一位经验丰富的技术文章作家,擅长将复杂的技术概念以通俗易懂的方式表述出来,并且能够清晰地展示代码的创作过程。你的任务是根据用户提供的技术背景、思路和代码,撰写一篇公众号文章,使读者能够理解技术的应用场景和实现方法。
文章内容应包括:
1. 背景介绍
2. 概念解释
3. 思路解析
4. 代码实现解析
5. 总结
用户提供的技术背景:
{background}
用户提供的代码实现:
{code}
根据上述信息,请生成这篇文章的大纲,用markdown格式表示。
""",
input_variables=["background", "approach", "code"],
)
llm = LLMs(model_name="deepseek", temprature=0.1).get_llm()
outline_chain = LLMChain(prompt=system_prompt, llm=llm)
result = outline_chain.invoke({"background": background, "code": code})
outline = result["text"]
return outline
def generate_paragraph(background, code, outline, finished_paragraph=""):
if finished_paragraph == "":
system_prompt = PromptTemplate(
template="""
你是一位经验丰富的技术文章作家,擅长将复杂的技术概念以通俗易懂的方式表述出来,并且能够清晰地展示代码的创作过程。
## 文章大纲为:
{outline}
## 文章写作的背景:
{background}
根据上述信息,请完成大纲中第一部分的文章内容,不要包含其他部分内容。
请使用markdown格式输出。
""",
input_variables=["background", "approach", "code", "outline"],
)
else:
system_prompt = PromptTemplate(
template="""
你是一位经验丰富的技术文章作家,擅长将复杂的技术概念以通俗易懂的方式表述出来,并且能够清晰地展示代码的创作过程。你的任务是根据用户提供的技术背景、思路和代码,撰写一篇公众号文章,使读者能够理解技术的应用场景和实现方法。
## 文章大纲为:
{outline}
## 文章写作的背景:
{background}
```python
system_prompt = PromptTemplate(
template="""
你是一位经验丰富的技术文章作家,擅长将复杂的技术概念以通俗易懂的方式表述出来,并且能够清晰地展示代码的创作过程。
## 文章大纲为:
{outline}
## 文章写作的背景:
{background}
根据上述信息,请完成大纲中第一部分的文章内容,不要包含其他部分内容。
请使用markdown格式输出。
""",
input_variables=["background", "approach", "code", "outline"],
)
llm = LLMs(model_name="deepseek", temprature=0.1).get_llm()
paragraph_chain = LLMChain(prompt=system_prompt, llm=llm)
result = paragraph_chain.invoke({"background": background, "code": code, "outline": outline})
paragraph = result["text"]
return paragraph
def save_article(article):
with open("generated_article.md", "w") as f:
f.write(article)
st.success("文章已保存到generated_article.md")
def main():
background_description = st.text_area("请输入你的背景描述")
code_snippet = st.text_area("请输入你的代码")
if st.button("生成文章"):
outline = generate_outline(background_description, code_snippet)
st.markdown("### 生成的文章大纲")
st.markdown(outline)
article = ""
for section in outline.split("\n"):
if section.strip():
article += generate_paragraph(background_description, code_snippet, section)
st.markdown("### 生成的文章内容")
st.markdown(article)
save_article(article)
if __name__ == "__main__":
main()
通过这个应用,我们可以快速地将复杂的技术概念和代码转化为通俗易懂的文章。这不仅提高了学习效率,还使得技术分享变得更加便捷。希望这个应用能帮助更多的开发者更好地理解和应用大模型技术。
53AI,企业落地大模型首选服务商
产品:场景落地咨询+大模型应用平台+行业解决方案
承诺:免费场景POC验证,效果验证后签署服务协议。零风险落地应用大模型,已交付160+中大型企业
2025-06-13
【LangChain 团队重磅实测报告】多智能体架构揭秘:谁才是性能之王?
2025-06-13
大模型_百炼:MCP让我焦虑
2025-06-11
前端学AI之LangChain.js入门教程:实现智能对话机器人
2025-06-08
Langfuse:重新定义LLM应用开发与运维的可观测性
2025-06-08
Langgraph实战--自定义embeding
2025-06-07
为 AI Agent 铺路:深度解析下一代应用的核心基建 LangGraph
2025-06-05
智能体框架怎么选?LangChain、Dify、CrewAI、AutoGen五大框架横向对比
2025-06-04
吴恩达对谈LangChain创始人:企业构建Agen系统的核心认知!
2025-03-20
2025-03-17
2025-05-08
2025-04-18
2025-03-22
2025-05-06
2025-03-23
2025-04-13
2025-05-28
2025-03-22
2025-06-13
2025-05-21
2025-05-19
2025-05-08
2025-05-06
2025-04-22
2025-04-18
2025-03-22