当前位置: 首页 > article >正文

模型文件硬塞进 Git,GitHub 直接打回原形:使用Git-LFS管理大文件

醋孔啥投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密钥错误处理完善的异常捕获和用户提示

相关文章:

模型文件硬塞进 Git,GitHub 直接打回原形:使用Git-LFS管理大文件

醋孔啥投Streamlit 是一款专为数据科学家和机器学习工程师设计的 Python 库,可快速将数据脚本转换为交互式 Web 应用,无需前端开发经验,所以最近研究了一下,结合LangChain 1.0 实现了简单的智能问答前后端应用,大模型使…...

DevOps_node

瘸俦又惶一、前言 上一篇我们掌握了睿尔曼第三代机械臂的基础运动控制逻辑,而夹爪作为机械臂完成抓取、放置等作业的核心执行部件,是从“单纯运动”到“实际作业”的关键环节。相比于传统工业夹爪复杂的气动/电动控制调试,睿尔曼第三代机械臂…...

源码: 以下代码包含了一个数据库所有的 CRUD (增删改查)操作。 <div> <button id=“js_add_btn“>添 ...

路姿爬慰?? 文章目录- Conda是什么?不止是包管理器! - ?? Conda vs Pip vs UV:三分天下,各显神通 - ??? Conda开发项目常用命令速查手册 - ?? 常见“翻车”现场与救援指南 - ?? 离线部署:没有网络也能搭建环…...

Web前端入门第 问:JavaScript 一个简单的 IndexedDB 数据库入门示例

匮甘霞肪概述 HOG行人检测是一种基于方向梯度直方图特征的计算机视觉目标检测技术,它通过计算图像局部区域的梯度方向直方图来描述目标的外观形状特征。该算法首先将图像分割为小的连通区域(细胞单元),计算每个单元内像素的梯度方…...

做 AI 测试用例系统时,Prompt、MCP、Agent、Skills、OpenClaw 到底分别是什么?

📝 面试求职: 「面试试题小程序」 ,内容涵盖 测试基础、Linux操作系统、MySQL数据库、Web功能测试、接口测试、APPium移动端测试、Python知识、Selenium自动化测试相关、性能测试、性能测试、计算机网络知识、Jmeter、HR面试,命中…...

AI 自动逆向 JS 加密!自动抓密钥、出报告,彻底解放双手,解决抓包数据包加密难题

0x01 简介 前端JS加密、混淆、数据包加密,一直是逆向分析的痛点,手动抠代码、断点调试耗时费力。AI_JS_DEBUGGER 基于Chrome开发者协议(CDP),以AI驱动实现全自动JS逆向分析,无需复杂操作,就能自…...

回顾一下WPF原生实现命令

抑嘲仁俾概述 在复杂的嵌入式世界中,程序代码和数据往往分散存储在多种不同的内存芯片里(例如 Flash 、 SRAM 、外部 SDRAM等)。分散加载(Scatter-Loading)文件,就像一张精准的“内存地图”,告…...

想用 Claude Code 做 AI 编程,很多人其实卡在了接入这一步

这两年,很多开发者已经不是在问“AI 编程值不值得用”,而是在问: 怎么才能尽快把它接进自己的开发流程里。 尤其是像 Claude Code 这类终端型 AI 编程工具,对会写代码的人来说吸引力很直接:不用切网页,不用…...

论生成式AI从“工具逻辑”向“精神秩序”的过渡!

生成式AI从“工具逻辑”向“精神秩序”的过渡,标志着其社会角色正发生本质性转变——从被动响应的“效率机器”,逐渐演变为主动参与、甚至重构人类认知、情感与价值系统的“精神性存在”。这一过渡是技术、社会与文化复杂互动的结果,可从以下…...

基于python的网络生鲜超市购物管理系统的设计与实现

前言 网络生鲜超市购物系统是一个集在线购买、支付、订单管理、会员服务等功能于一体的综合性电子商务平台。该系统旨在为广大用户提供便捷、高效的购书体验,同时帮助生鲜超市拓宽销售渠道,提升品牌影响力。 采用当前流行的B/S模式以及3层架构的设计思想…...

鸿蒙常见问题分析三十二:Column子组件超出容器边界

上周末,我正为一个新的HarmonyOS应用页面布局挠头。设计稿上是一个精美的信息卡片,外层Column容器设置了固定的宽高和圆角背景,里面嵌套了一个显示标题的Row。我按照设计实现了边框、内边距,一切看起来都很完美——直到我给内部的…...

STM32报错日志(1)_FreeRTOS-01

问题:使用STM32CubeMX在STM32F103C8T6上配置FreeRTOS时,编译出现文件名之类的报错原因:ST官方更新时兼容出现问题,不兼容最新的固件包解决办法:在STM32CubeMX中将固件包改成V1.8.5...

Flutter 三方库 square_connect 的鸿蒙化适配指南 - 让全球支付触手可及,打造鸿蒙应用专家级的支付中台

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.csdn.net Flutter 三方库 square_connect 的鸿蒙化适配指南 - 让全球支付触手可及,打造鸿蒙应用专家级的支付中台 前言 在鸿蒙(OpenHarmony)应用进军全球化电商与…...

Flutter 三方库 argos_translator_offline 的鸿蒙化适配指南 - 让机器翻译回归“端侧隔离”,打造鸿蒙应用专家级的离线多语言 AI 治理中台

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.csdn.net Flutter 三方库 argos_translator_offline 的鸿蒙化适配指南 - 让机器翻译回归“端侧隔离”,打造鸿蒙应用专家级的离线多语言 AI 治理中台 前言 在鸿蒙(OpenHarmon…...

分⽀和循环:C语言的脊柱

序言 在C语言中,分支(条件判断)和循环(重复执行)是程序逻辑的核心,二者共同构成了代码的“脊柱”,决定了程序的执行流程。我们可以使⽤ if 、 switch 实现分⽀结构,使⽤ for 、 whi…...

Linux 系统中,uv 是一款由 Rust 编写的超高速 Python 包管理与虚拟环境工具

在 Linux 系统中,uv 是一款由 Rust 编写的超高速 Python 包管理与虚拟环境工具,旨在替代传统的 pip、virtualenv 等工具,号称能带来 10-100 倍的性能提升。 🔧 核心功能与常用命令场景命令说明安装curl -LsSf https://astral.sh/u…...

大数据领域Spark的集群网络优化

大数据领域Spark的集群网络优化关键词:大数据、Spark、集群网络、网络优化、性能提升摘要:本文聚焦于大数据领域中Spark集群网络的优化问题。在大数据处理场景下,Spark作为主流的分布式计算框架,其集群网络性能对整体计算效率有着…...

SAP UI5中DOMParser解析XML关键步骤

SAP UI5框架中基于DOMParser的XML数据解析机制涉及多个关键环节&#xff0c;这些步骤共同构成了元数据解析的核心流程。根据技术文档分析&#xff0c;其关键实现步骤如下&#xff1a; 1. 解析器实例化与初始化 var xmlParse function (text) {/// <summary>Returns an…...

2026软考资料,看这一份就够了

2026年软考5月战役即将打响&#xff0c;备考黄金期已至&#xff01;我将近年备考中精心筛选、整理的各科目资料&#xff08;均整理自互联网公开资源&#xff09;无偿开放分享&#xff0c;希望能为各位考友助一臂之力&#xff0c;一起冲刺通关&#xff01;&#x1f4da; 目前资料…...

面试官:MCP 与 Skills 有什么区别?

1️⃣面向对象不同 MCP 是大模型与外部世界的标准化连接协议&#xff0c;负责打通边界&#xff0c;让大模型能安全、统一地调用外部工具。 Skills 是行为规范层&#xff0c;是面向 Cursor 等 AI 编程工具的模块化、可复用能力封装机制。核心是把标准作业流程固化成可复用的技…...

RAG检索瓶颈突破实战指南(非常详细),Multi-HyDE与Adaptive HyDE从入门到精通,收藏这一篇就够了!

在检索增强生成&#xff08;RAG&#xff09;系统中&#xff0c;检索准确性是决定最终生成效果的关键瓶颈。传统的稠密检索往往受限于查询与文档之间的语义鸿沟&#xff08;Semantic Gap&#xff09;。为了解决这一问题&#xff0c;Hypothetical Document Embeddings&#xff08…...

大模型百万Token长上下文训练教程(非常详细),上下文并行与Ring Attention从入门到精通,收藏这一篇就够了!

只用了几年时间&#xff0c;上下文窗口就从 4k 膨胀到 1000 万。Meta 发布的 Llama 4 Scout 的时候说这个模型支持 1000 万 Token&#xff0c;是 Llama 3 那 128k 的 78 倍。而Google Gemini 3 Pro 是 100 万&#xff0c;Claude 4 也桐乡市100万。 一次推理跑完整个代码库、几…...

大模型+知识图谱行业落地(非常详细),民航维修检索生成从入门到精通,收藏这一篇就够了!

摘要&#xff1a;本研究创新性地融合大语言模型、知识图谱技术及重排序方法&#xff0c;旨在以低成本、高质量实现民航维修历史方案检索与推荐方案生成&#xff0c;优化维修决策&#xff0c;提升维修效率与质量。研究利用大模型的分析推理能力&#xff0c;借助定制化知识图谱检…...

专用业务信息平台(SBISP)(之三)--SMP(软件制作平台)语言基础知识之八十

专用业务信息平台&#xff08;SBISP&#xff09;&#xff08;之一&#xff09;--SMP&#xff08;软件制作平台&#xff09;语言基础知识之八十 专用业务信息平台&#xff08;SBISP&#xff09;&#xff08;之二&#xff09;--SMP&#xff08;软件制作平台&#xff09;语言基础…...

在AIStudio星河社区配置OpenClaw小龙虾

很多人都在热捧小龙虾OpenClaw 很多人都在使用小龙虾 很多人被小龙虾拔掉了底裤..... 所以小龙虾还是不能在自己的工作机器上安装&#xff0c;最好是用一台云端机器&#xff0c;万一出了安全问题&#xff0c;损失能小一点。 尝试在AIStudio星河社区配置OpenClaw小龙虾 参考…...

C语言之数据结构初见篇(2):顺序表之通讯录的实现

目录 一、基本概念 二、通俗理解 三、这个程序是什么 1. 数据结构 2. 核心功能 四、通讯录代码的实现 1.多个文件的创建 一、基本概念 顺序表实现的通讯录是一种基于数组结构的联系人信息管理系统。它将数据结构的理论知识&#xff08;顺序表&#xff09;应用到实际场景…...

2026年软著申请被驳回的五大高频原因深度解析

随着软件开发工具的迭代升级&#xff0c;2026年的软件著作权登记审查工作也进入了精细化阶段。很多开发者与企业往往认为只要提交了材料就能顺利拿证&#xff0c;却忽视了审查中心对“独创性”与“一致性”的严格把控。近期&#xff0c;因代码雷同、文档逻辑断裂等问题导致的驳…...

Winform基于PaddleOCR图片文字提取方法

1.目的掌握Winform下基于Sdcb. PaddleOCR和OpenCvSharp实现图片文字的提取方法。⒉编程软件Visual Studio 2022⒊界面设计如下图设计了UI界面&#xff0c;包括使用Button、PictureBox和RichTextBox控件&#xff1a;本案例以下图特定图片为案例进行文字提取&#xff1a;⒋代码简…...

问题记录,JMeter运行一次有时候显示两次请求?

当使用http协议访问www.itcast.com时&#xff0c;结果树中有两次请求当使用https协议访问www.itcast.com时&#xff0c;结果树中有一次请求核心表现&#xff1a;在JMeter中创建单个HTTP请求&#xff08;如配置http://xxx.com&#xff09;&#xff0c;点击“运行”按钮后&#x…...

SLAM算法(ROS入门)

SLAM 建图 ​ 机器人研究的问题包含许许多多的领域&#xff0c;我们常见的几个研究的问题包括&#xff1a;建图(Mapping)、定位(Localization)和路径规划&#xff08;Path Planning&#xff09;&#xff0c;如果机器人带有机械臂&#xff0c;那么运动规划&#xff08;Motion P…...