新闻详情

新闻详情

首页 / 资讯中心 / 详情

双非 AI 求职备战 Day29-34:工程化!Streamlit 网页端,把 Agent 做成可演示项目

发布时间:2026/10/1 8:46:02来源:尧图网络
双非 AI 求职备战 Day29-34:工程化!Streamlit 网页端,把 Agent 做成可演示项目
双非AI求职备战 Day29-34工程化Streamlit网页端把Agent做成可演示项目前言前面所有代码都是命令行运行求职需要可以直接演示的成品项目。这阶段给Agent做网页界面重构代码结构规范项目目录。Streamlit 快速搭建Web聊天界面Streamlit用纯Python写网页不用前端JS几分钟就能做出浏览器聊天页面。项目可以本地打开也支持一键部署到公网给面试官直接在线演示。它很快不用刻意写循环啊记忆啊自己就实现的而且让我震惊的是它可以一键部署到公网。然后我发现有好多东西都可以一键部署到公网的我之前以为总得有一台服务器自己部署到服务器。我在这里列举几个Cloudflare Tunnel推荐免费不限速国内可访问一行命令 ngrok ngrok http 8000一键起隧道免费版带宽、连接有限域名随机国内访问偶尔不稳。 花生壳国内 1. GUI 图形界面小白友好国内访问稳定。免费版限速固定域名、大流量要付费适合国内答辩演示。 frp完全开源免费 需要你自己有一台 VPS 做服务端适合长期自用需要一点点配置不算纯 “一键开箱”。提交3117260 使用了streamlit在网页可以打开看自己的agent还可以部署在网上在终端输入streamlit run app.py即可运行这个项目项目源码importos os.environ[HF_HUB_OFFLINE]1os.environ[TRANSFORMERS_OFFLINE]1importstreamlitasstimportsqlite3importnumpyasnpimportfaissfromsentence_transformersimportSentenceTransformerfromtypingimportTypedDict,Annotatedfromlanggraph.graphimportStateGraph,START,ENDfromlanggraph.graph.messageimportadd_messagesfromlanggraph.prebuiltimportToolNodefromlanggraph.checkpoint.sqliteimportSqliteSaverfromlangchain_openaiimportChatOpenAIfromlangchain_core.toolsimporttoolfromlangchain_core.messagesimportHumanMessage# 加载 Agent只做一次 st.cache_resourcedefload_agent():# RAG 资源model_embedSentenceTransformer(BAAI/bge-small-zh-v1.5)indexfaiss.read_index(my_index.faiss)withopen(../my-agent/my_docs.txt,encodingutf-8)asf:documents[p.strip()forpinf.read().split(\n\n)ifp.strip()]# 工具tooldefsearch_my_docs(query:str)-str:搜索我的资料库。当用户问关于太原、山西的问题时使用。q_vectormodel_embed.encode(query).astype(float32)_,indicesindex.search(np.array([q_vector]),3)return\n.join(documents[i]foriinindices[0])tooldefget_weather(city:str)-str:查询指定城市的天气。参数 city 是城市名。returnf{city}今天晴天25度tools[search_my_docs,get_weather]# 状态classState(TypedDict):messages:Annotated[list,add_messages]# 模型modelChatOpenAI(modelglm-4-flash,api_keyad0e34a9b3b4486db1cac65af204ccbc.Y2FcPICz0Y1h48je,base_urlhttps://open.bigmodel.cn/api/paas/v4).bind_tools(tools)defllm_node(state:State):respmodel.invoke(state[messages])return{messages:[resp]}defshould_continue(state:State):returntoolsifstate[messages][-1].tool_callselseEND# 建图graphStateGraph(State)graph.add_node(llm,llm_node)graph.add_node(tools,ToolNode(tools))graph.add_edge(START,llm)graph.add_conditional_edges(llm,should_continue,{tools:tools,END:END})graph.add_edge(tools,llm)# 持久化记忆connsqlite3.connect(chat_memory.db,check_same_threadFalse)memorySqliteSaver(conn)appgraph.compile(checkpointermemory)returnapp# 网页界面 st.title(我的 Agent)appload_agent()# 网页版的记忆ifmessagesnotinst.session_state:st.session_state.messages[]# 显示历史formsginst.session_state.messages:st.chat_message(msg[role]).write(msg[content])# 输入框ifprompt:st.chat_input(问点什么):# 显示用户消息st.session_state.messages.append({role:user,content:prompt})st.chat_message(user).write(prompt)# 调 Agentresultapp.invoke({messages:[HumanMessage(contentprompt)]},config{configurable:{thread_id:user_1}})answerresult[messages][-1].content# 显示 Agent 回复st.session_state.messages.append({role:assistant,content:answer})st.chat_message(assistant).write(answer)阶段收获从脚本玩具升级成工程化可展示项目。求职作品集核心要点能跑、能演示、代码整洁、上传GitHub。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

Smartstore HTML转PDF:一键生成发票、送货单与合同的完整指南 2026/10/1 13:23:55

Smartstore HTML转PDF:一键生成发票、送货单与合同的完整指南

Smartstore HTML转PDF:一键生成发票、送货单与合同的完整指南 【免费下载链接】Smartstore A modular, scalable and ultra-fast open-source all-in-one eCommerce platform built on ASP.NET Core 10 项目地址: https://gitcode.com/GitHub_Trending/smar/Smart…

阅读更多 →
JMeter录制脚本全链路指南:从抓包到参数化压测实战 2026/10/1 13:23:49

JMeter录制脚本全链路指南:从抓包到参数化压测实战

第一次打开JMeter的新手,十个里有九个会先找“录制”按钮——不是大家懒,而是被测系统的请求结构有时候确实复杂,手写HTTP请求容易漏掉Header、漏掉隐含参数。“录制测试脚本”这件事,在JMeter里有一套完整的方法论:它…

阅读更多 →
RAG知识库实战指南:WeKnora部署调优与选型对比 2026/10/1 13:23:48

RAG知识库实战指南:WeKnora部署调优与选型对比

WeKnora 第一次出现在我视野里,是同事往群里丢了一条开源链接,说这是腾讯微信团队开源的 AI 知识库项目。那阵子刚帮一个团队做完知识库选型,看了不下七八个 RAG 方案,所以我对这种"人人都在做知识库"的场面已经有点麻木…

阅读更多 →
WeKnora:Go+Vue实现的可溯源RAG知识库工程实践 2026/10/1 13:23:48

WeKnora:Go+Vue实现的可溯源RAG知识库工程实践

1. WeKnora 是什么:一个被低估的 RAG 工程实践样本 WeKnora 这个名字最近在开发者圈子里悄悄升温,不是因为它是某个新出的明星大模型,而是因为它代表了一种更务实、更贴近真实业务场景的知识库落地思路。它由腾讯微信团队开源,但注…

阅读更多 →
Kmeans聚类实战:从样本到可视化源码,快速掌握无监督学习 2026/10/1 13:23:48

Kmeans聚类实战:从样本到可视化源码,快速掌握无监督学习

简介:这份资源面向机器学习初学者与需要做故障诊断的工程人员,提供KMeans聚类的样本数据与可视化源码,帮助解决无监督场景下故障类型自动分组、聚类数目难以确定的问题。压缩包共2个文件,约57KB,包含1个xlsx数据表与1个…

阅读更多 →
Jmeter录制脚本全攻略:从代理配置到参数化关联 2026/10/1 13:23:48

Jmeter录制脚本全攻略:从代理配置到参数化关联

1. 为什么我建议性能测试脚本尽量用录制而不是纯手写先聊个很现实的问题。很多人刚接触Jmeter时,第一反应是打开软件,找到Test Plan,然后对着HTTP Request一个个手工填写域名、路径、参数。对于接口只有三五个的小项目,这么做没问…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉