AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


我用LangChain和streamlit自制智能体实现了自动生成详尽开发笔记
发布日期:2024-07-14 18:58:50 浏览次数: 2093 来源:加加笔记


背景介绍

在学习大模型应用开发的过程中,我们常常需要整理和记录大量的代码和概念。为了提高效率,我开发了一个应用,能够自动解析我写的demo代码,并生成一份详尽的笔记。这篇文章就是用这种方法生成的。

思路解析

应用场景

该应用的主要场景是帮助开发者快速整理和记录学习过程中的代码和概念。通过自动解析代码并生成笔记,可以大大提高学习效率。

实现思路

  1. 用户输入:用户在应用中输入技术背景描述和代码片段。
  2. 生成大纲:应用调用AI模型生成文章的大纲。
  3. 生成文章内容:应用根据大纲逐部分生成文章内容。
  4. 保存文章:生成的文章可以保存到本地文件中。

代码实现解析

导入必要的库

import streamlit as st
from langchain.prompts import PromptTemplate
from langchain.chains import LLMChain
from utils.llms import LLMs
import os

创建Streamlit应用

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+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

与创始人交个朋友

回到顶部

 
扫码咨询