ARTICLE · 1290245
一个周末,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,避免被刷额度。

现在就动手吧

别等"有空了再学"。就这个周末,照着上面四步走:
建虚拟环境、装依赖; 复制 30 行代码,填上 Key; streamlit run跑起来; 试着加个文件上传。
哪怕只跑通第一步,你已经比昨天的自己多了一个能用的小工具。
Python程序员
有料有趣的技术公众号

扫码关注、一同进步

















































































