Build an LLM app using LangChain

在本教程中,您将构建一个Streamlit LLM应用程序,该应用程序可以从用户提供的提示生成文本。这个Python应用程序将使用LangChain框架和Streamlit。完成后,您可以选择将应用程序部署到Streamlit Community Cloud

本教程改编自Chanin Nantesanamat的博客文章:LangChain教程#1:用18行代码构建一个LLM驱动的应用

  1. 从最终用户那里获取一个OpenAI密钥。
  2. 验证用户的OpenAI密钥。
  3. 从用户那里获取一个文本提示。
  4. 使用用户的密钥验证OpenAI。
  5. 将用户的提示发送到OpenAI的API。
  6. 获取响应并显示它。

奖励:在Streamlit社区云上部署应用程序!

在您的IDE(集成编码环境)中,打开终端并安装以下两个Python库:

pip install streamlit langchain-openai

创建一个位于工作目录根目录的requirements.txt文件并保存这些依赖项。这对于稍后将应用程序部署到Streamlit社区云是必要的。

streamlit openai langchain

该应用程序只有18行代码:

import streamlit as st from langchain_openai.chat_models import ChatOpenAI st.title("🦜🔗 Quickstart App") openai_api_key = st.sidebar.text_input("OpenAI API Key", type="password") def generate_response(input_text): model = ChatOpenAI(temperature=0.7, api_key=openai_api_key) st.info(model.invoke(input_text)) with st.form("my_form"): text = st.text_area( "Enter text:", "What are the three key pieces of advice for learning how to code?", ) submitted = st.form_submit_button("Submit") if not openai_api_key.startswith("sk-"): st.warning("Please enter your OpenAI API key!", icon="⚠") if submitted and openai_api_key.startswith("sk-"): generate_response(text)

首先,创建一个新的Python文件并将其保存为streamlit_app.py,放在你的工作目录的根目录下。

  1. 导入必要的Python库。

    import streamlit as st from langchain_openai.chat_models import ChatOpenAI
  2. 使用 st.title 创建应用的标题。

    st.title("🦜🔗 Quickstart App")
  3. 为用户添加一个文本输入框,用于输入他们的OpenAI API密钥。

    openai_api_key = st.sidebar.text_input("OpenAI API Key", type="password")
  4. 定义一个函数,使用用户的密钥对OpenAI API进行身份验证,发送提示,并获取AI生成的响应。此函数接受用户的提示作为参数,并使用st.info在蓝色框中显示AI生成的响应。

    def generate_response(input_text): model = ChatOpenAI(temperature=0.7, api_key=openai_api_key) st.info(model.invoke(input_text))
  5. 最后,使用st.form()创建一个文本框(st.text_area())用于用户输入。当用户点击Submit时,generate-response()函数会被调用,并将用户的输入作为参数传递。

    with st.form("my_form"): text = st.text_area( "输入文本:", "学习编程的三个关键建议是什么?", ) submitted = st.form_submit_button("提交") if not openai_api_key.startswith("sk-"): st.warning("请输入您的OpenAI API密钥!", icon="⚠") if submitted and openai_api_key.startswith("sk-"): generate_response(text)
  6. 记得保存你的文件!

  7. 返回到您的计算机终端以运行应用程序。

    streamlit run streamlit_app.py

要将应用程序部署到Streamlit Cloud,请按照以下步骤操作:

  1. 为应用程序创建一个GitHub仓库。您的仓库应包含两个文件:

    your-repository/ ├── streamlit_app.py └── requirements.txt
  2. 前往Streamlit Community Cloud,从您的工作区点击New app按钮,然后指定仓库、分支和主文件路径。您还可以通过选择自定义子域来定制应用的URL。

  3. 点击Deploy!按钮。

您的应用程序现在将部署到Streamlit社区云,并且可以从世界各地访问!🌎

恭喜你用18行代码构建了一个基于LLM的Streamlit应用!🥳 你可以使用这个应用从你提供的任何提示中生成文本。该应用受限于OpenAI LLM的能力,但它仍然可以用于生成一些创意和有趣的文本。

我们希望您觉得本教程有帮助!查看更多示例以了解Streamlit和LLM的强大功能。💖

愉快的 Streamlit 使用!🎈

forum

还有问题吗?

我们的 论坛 充满了有用的信息和Streamlit专家。