每天分钟,混剪视频Agent产出条爆款,单月变现位数(喂饭级教程)
哦凑型旨Streamlit 是一款专为数据科学家和机器学习工程师设计的 Python 库可快速将数据脚本转换为交互式 Web 应用无需前端开发经验所以最近研究了一下结合LangChain 1.0 实现了简单的智能问答前后端应用大模型使用DeepSeek。依赖库streamlit用于构建Web交互界面langchain 及相关组件处理LLM交互逻辑python-dotenv加载环境变量比如加载存储在配置文件中的API KEY。Highlight code1. 初始化配置# 加载环境变量load_dotenv()# 配置页面st.set_page_config(page_titleDeepSeek 问答应用,page_icon??,layoutwide,initial_sidebar_stateexpanded)使用 load_dotenv() 加载 .env 文件中的环境变量st.set_page_config() 配置页面基本属性包括标题、图标和布局2. 页面UI构建# 设置页面标题和说明st.title(?? DeepSeek 智能问答应用)st.markdown(使用 LangChain 1.0 和 Streamlit 构建的对话系统)通过 st.title() 和 st.markdown() 设置页面标题和说明文字3. 侧边栏配置with st.sidebar:st.header(配置选项)# API 密钥配置deepseek_api_key st.text_input(DeepSeek API Key,valueos.getenv(DEEPSEEK_API_KEY, ),typepassword,help请输入您的 DeepSeek API Key)# 清除对话历史按钮if st.button(清除对话历史, typesecondary):st.session_state[messages] []st.rerun()使用 st.sidebar 创建侧边栏配置区域提供API密钥输入框密码类型默认从环境变量获取实现清除对话历史功能通过操作 st.session_state 实现4. 对话历史管理# 初始化对话历史if messages not in st.session_state:st.session_state[messages] []# 显示对话历史for message in st.session_state[messages]:if isinstance(message, HumanMessage):with st.chat_message(user):st.markdown(message.content)elif isinstance(message, AIMessage):with st.chat_message(assistant):st.markdown(message.content)使用 st.session_state 存储对话历史实现页面刷新后数据保留区分用户消息HumanMessage和助手消息AIMessage并分别显示5. 用户输入处理user_input st.chat_input(请输入您的问题...)if user_input:# 验证API密钥if not deepseek_api_key:st.error(请在侧边栏配置您的 DeepSeek API Key)st.stop()# 添加用户消息到会话历史st.session_state[messages].append(HumanMessage(contentuser_input))# 显示用户消息with st.chat_message(user):st.markdown(user_input)使用 st.chat_input() 获取用户输入进行API密钥验证确保调用模型前密钥已配置将用户消息添加到历史记录并显示6. AI响应生成# 显示助手思考中状态with st.chat_message(assistant):with st.spinner(正在思考...):chat_modelinit_chat_model(modeldeepseek:deepseek-chat)# 创建提示模板prompt ChatPromptTemplate.from_messages([(system, 你是一个智能助手使用中文回答用户问题保持友好和专业。),*st.session_state[messages]])# 创建链chain prompt | chat_model | StrOutputParser()try:# 生成回答response chain.invoke({})# 显示回答st.markdown(response)# 添加助手消息到会话历史st.session_state[messages].append(AIMessage(contentresponse))except Exception as e:st.error(f请求失败: {str(e)})st.error(请检查您的API密钥或网络连接)使用 st.spinner() 显示加载状态提升用户体验通过 init_chat_model() 初始化DeepSeek模型使用LangChain 1.0的链(Chain)语法prompt | chat_model | StrOutputParser()异常处理确保错误时能友好提示用户关键技术点Streamlit 会话状态利用 st.session_state 保存对话历史实现状态管理LangChain 1.0 链语法采用新的管道运算符 | 构建处理流程消息类型区分使用 HumanMessage 和 AIMessage 区分不同角色的消息API 密钥管理支持环境变量和手动输入两种方式配置API密钥错误处理完善的异常捕获和用户提示

相关新闻

2025 年 Linux 内核十大技术创新|年终盘点

2025 年 Linux 内核十大技术创新|年终盘点

继《2022 Linux 内核十大技术革新功能》、《熠熠生辉 | 2023 Linux 内核十大技术革新功能》、《2024 年 Linux 内核十大技术革新盘点》之后,知名 Linux 内核一线开发者,经典书籍《Linux 设备驱动开发详解》作者宋宝华老师又给大家带来了 2025 年 Linux 内…

2026/5/17 11:50:02 阅读更多 →
C++27范围适配器管道增强(std::views::enumerate、std::views::chunk_by、std::views::stride)深度解密(工业级流处理范式重构实录)

C++27范围适配器管道增强(std::views::enumerate、std::views::chunk_by、std::views::stride)深度解密(工业级流处理范式重构实录)

第一章:C27范围适配器管道增强的演进逻辑与工业价值C20 引入的 std::ranges::views 为函数式数据处理奠定了基础,但其管道组合(|)在表达力、性能可预测性与错误诊断方面仍存在明显瓶颈。C27 的范围适配器管道增强并非语法糖的堆砌…

2026/5/17 12:05:25 阅读更多 →
Qwen2.5-7B快速上手:如何用最简单的方法部署阿里大模型

Qwen2.5-7B快速上手:如何用最简单的方法部署阿里大模型

Qwen2.5-7B快速上手:如何用最简单的方法部署阿里大模型 想体验阿里最新开源的大语言模型Qwen2.5-7B,但被复杂的部署流程劝退?别担心,这篇文章就是为你准备的。我将带你用最简单、最直接的方法,在10分钟内完成Qwen2.5-…

2026/5/17 6:07:07 阅读更多 →

最新新闻

抓包、TLS 指纹、UA 一致性分析工具

抓包、TLS 指纹、UA 一致性分析工具

TLSFOWARD:一款集抓包、TLS指纹分析与UA一致性验证于一体的专业工具 在接口调试、浏览器环境分析、爬虫环境排查以及测试排查等场景中,抓包是一项非常基础且常见的操作。 然而,仅仅查看 HTTP 请求往往是不够的。因为 User-Agent 可以被修改&a…

2026/7/3 3:48:58 阅读更多 →
继承、重载与多态

继承、重载与多态

继承是C中的一个重要特性&#xff0c;它可以让我们从一个类的部分成员继承并新建立一个类&#xff0c;class <派生类名> : <继承方式(public/protected/private)> <基类名>例如&#xff1a;//基类 class Animal{eat(); sleep(); }//派生类 class Dog : publi…

2026/7/3 3:46:58 阅读更多 →
2026年AI网站设计公司排名,品牌视觉定制企业盘点

2026年AI网站设计公司排名,品牌视觉定制企业盘点

2026年AI网站设计公司排名&#xff0c;品牌视觉定制企业盘点一、品牌视觉定制市场的需求变化2026年&#xff0c;企业官网已经从“有就行”升级到了“好看且好用”。据艾瑞咨询联合IDC发布的《2026年中国企业数字化建站行业白皮书》显示&#xff0c;2026年中国网站建设行业整体市…

2026/7/3 3:44:57 阅读更多 →
DeepSeek-V4定价逻辑:隐性成本优化与企业级AI落地新范式

DeepSeek-V4定价逻辑:隐性成本优化与企业级AI落地新范式

1. 这不是“买菜砍价”&#xff0c;而是大模型时代的价格认知重构DeepSeek-V4发布后&#xff0c;朋友圈和开发者群最常刷屏的一句话是&#xff1a;“这价格&#xff0c;是不是标错了&#xff1f;”——不是调侃&#xff0c;是真有人反复刷新官网页面确认。我第一时间拉了三台不…

2026/7/3 3:42:57 阅读更多 →
5分钟掌握VinXiangQi:高效实用的AI象棋连线工具终极指南

5分钟掌握VinXiangQi:高效实用的AI象棋连线工具终极指南

5分钟掌握VinXiangQi&#xff1a;高效实用的AI象棋连线工具终极指南 【免费下载链接】VinXiangQi Xiangqi syncing tool based on Yolov5 / 基于Yolov5的中国象棋连线工具 项目地址: https://gitcode.com/gh_mirrors/vi/VinXiangQi 你是否经常在网上对弈时遇到瓶颈&…

2026/7/3 3:42:56 阅读更多 →
Uniapp上架苹果4.3a被拒?我摸出了躺过的万能公式!

Uniapp上架苹果4.3a被拒?我摸出了躺过的万能公式!

家人们谁懂这种崩溃啊&#x1f62b; 熬了快一个月的Uniapp项目&#xff0c;改了八版交互测了无数遍兼容性&#xff0c;打包完兴冲冲点提交&#xff0c;隔天直接收到苹果爸爸的4.3a拒信大礼包&#xff01;红色警告大字写着“你的App只是网页的简单复制&#xff0c;没有提供足够的…

2026/7/3 3:38:55 阅读更多 →

日新闻

Nginx防御TLS重协商攻击实战:从原理到配置与监控

Nginx防御TLS重协商攻击实战:从原理到配置与监控

1. 项目概述&#xff1a;为什么TLS重协商攻击至今仍需警惕十多年前的CVE-2011-1473&#xff0c;一个关于TLS/SSL协议重协商机制的漏洞&#xff0c;现在提起来还有必要吗&#xff1f;很多运维和开发朋友可能会觉得&#xff0c;这都老掉牙了&#xff0c;现代服务器和客户端不都默…

2026/7/3 0:03:59 阅读更多 →
华为防火墙双通道远程管理实战:Web与SSH配置详解

华为防火墙双通道远程管理实战:Web与SSH配置详解

1. 项目概述&#xff1a;为什么需要双通道远程管理防火墙&#xff1f;在任何一个稍具规模的企业网络里&#xff0c;防火墙都是那个默默守护在边界的关键角色。作为网络工程师&#xff0c;我们不可能每次都跑到机房&#xff0c;插上console线去配置它。远程管理能力&#xff0c;…

2026/7/3 0:03:59 阅读更多 →
AD74413R与PIC18F65K40的高精度工业数据采集方案

AD74413R与PIC18F65K40的高精度工业数据采集方案

1. 项目概述&#xff1a;AD74413R与PIC18F65K40的协同工作在工业自动化和精密测量领域&#xff0c;同时实现高精度模数转换(ADC)和数模转换(DAC)功能是许多复杂系统的核心需求。AD74413R作为一款四通道可配置模拟输入/输出器件&#xff0c;与PIC18F65K40微控制器的组合&#xf…

2026/7/3 0:05:59 阅读更多 →

周新闻

月新闻