夜雨聆风学习资料网

ARTICLE · 1290245

一个周末,30 行写出能用的 AI 小工具

一个周末,30 行写出能用的 AI 小工具

你是不是也想过:能不能自己动手,做一个真正"能用"的小工具?不用多厉害,能帮自己总结文章、提取要点就行。

很多人的卡点在于——"我代码不行""做工具是不是很难"。其实,用 Streamlit + LangChain,一个周末、30 行 Python,就能做出一个能跑、能分享的 AI 小工具。本文带你从零跑通。

一个周末就够

先给颗定心丸:这个项目的门槛比你想象低得多。

  • 你不需要前端知识,不用写 HTML/CSS/JS;
  • 你不需要深度学习基础,调现成大模型就行;
  • 你甚至不需要"会做产品",先解决自己的一个小需求就好。

Streamlit 是一个用纯 Python 写网页应用的框架,写完直接 streamlit run 就能在浏览器里打开。它天生适合做"工具型小应用"。

小工具不追求完美,能解决自己一个小痛点,就算成功。先跑起来,比想清楚更重要。

环境一键搭好

先把"地基"打牢。建议用 Python 3.10 及以上版本。

建虚拟环境

强烈建议先建一个虚拟环境,避免把包装乱:

python -m venv venv# Windows 激活venv\Scripts\activate# macOS / Linux 激活source venv/bin/activate

装好依赖

核心就两个包。注意:LangChain 的 OpenAI 接入现在单独拆成了一个包:

pip install streamlit langchain langchain-openai
提醒:API Key 是敏感信息。正式项目请用环境变量或 Streamlit Secrets 管理,别直接写死在代码里提交到仓库。

30 行核心代码

目标很明确:粘贴一段文本,点一下按钮,AI 帮你生成摘要 + 要点。

把下面代码存成 app.py(API Key 先占位,后面替换):

import osimport streamlit as stfrom langchain_openai import ChatOpenAIfrom langchain_core.prompts import ChatPromptTemplateos.environ["OPENAI_API_KEY"] = "在此填入你的Key"# 建议改用环境变量st.title("📝 文本总结小工具")text = st.text_area("把要总结的文本粘这里:", height=300)if st.button("一键总结") and text.strip():    llm = ChatOpenAI(model="gpt-3.5-turbo", temperature=0)    prompt = ChatPromptTemplate.from_messages([        ("system", "你是总结助手,请输出一段摘要,并列出 3-5 个要点。"),        ("user", "{text}"),    ])    chain = prompt | llmwith st.spinner("AI 思考中…"):        result = chain.invoke({"text": text})    st.subheader("📌 摘要与要点")    st.write(result.content)

说明几点:

  • st.text_area
     是左边的多行输入框;
  • st.button
     是"一键总结"按钮;
  • prompt | llm
     是 LangChain 的链式调用,把"提示词"接到"大模型"上;
  • 想换其他兼容 OpenAI 接口的厂商,只需改 ChatOpenAI 的参数(如 base_url)。
如果运行报错,多半是 LangChain 版本差异,以官方文档为准(用法细节待核实)。

跑起来看效果

打开终端,在 app.py 所在目录执行:

streamlit run app.py

终端会打印一个本地地址,通常是:

Local URL: http://localhost:8501

浏览器自动打开这个页面,左边粘贴文字、点"一键总结",右边就会出现 AI 的摘要和要点。第一次运行会让你确认一些配置,一路回车即可。

加上文件上传

只想粘贴还不够?加一个"上传文件"也很简单,用 st.file_uploader:

uploaded = st.file_uploader("或上传 .txt 文件", type=["txt"])if uploaded:    text = uploaded.read().decode("utf-8")

把它接进前面的逻辑,就能直接总结本地文档。想支持 PDF,可以再引入 PyPDF2 之类的库解析文本(具体用法待核实)。核心思路不变:拿到文本 → 交给 LLM → 展示结果。

进阶玩法畅想

做到这步,你已经有一个"能用的小工具"了。下面几个方向,看兴趣挑:

接本地模型

不想花 API 钱?用 Ollama 跑本地模型,把 ChatOpenAI 换成 ChatOllama:

from langchain_ollama import ChatOllamallm = ChatOllama(model="llama3")  # 需先安装 ollama 并拉取模型

本地模型数据不出本机,隐私友好(依赖包名与用法待核实,以官方为准)。

做成分享链接

想给朋友用?两条路:

  • Streamlit Community Cloud
    :免费把 app.py 部署成公网链接,需配合 GitHub 仓库;
  • 内网穿透
    :本地跑着,用 ngrok / cpolar 等工具临时生成一个外网地址,适合演示。
小提醒:公网分享时,别在代码里硬编码真实 API Key,避免被刷额度。

现在就动手吧

别等"有空了再学"。就这个周末,照着上面四步走:

  1. 建虚拟环境、装依赖;
  2. 复制 30 行代码,填上 Key;
  3. streamlit run
     跑起来;
  4. 试着加个文件上传。

哪怕只跑通第一步,你已经比昨天的自己多了一个能用的小工具。

Python程序员

有料有趣的技术公众号

扫码关注、一同进步

回首页,搜索你想要的文档

在首页搜索框输入关键词,快速定位资料

文库首页搜索指引 立即搜索

相关学习资料