自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 收藏
  • 关注

原创 PPO算法

PPO(近端策略优化)是一种稳定高效的强化学习算法,通过限制策略更新幅度来平衡训练效果与稳定性。其核心是使用裁剪机制控制新旧策略差异,确保更新不会过猛导致性能下降。PPO在游戏AI、机器人控制及大语言模型RLHF阶段广泛应用,特别适合需要稳定训练的场景。该算法简单易实现,能重复利用数据,在效率和稳定性间取得良好平衡。

2025-09-28 17:21:40 500

原创 RLHF是什么?

想象你正在教一个机器人写作文。你不能直接告诉它“写一篇好文章”,因为“好”这个词太模糊了。但你可以给它看两篇它自己写的作文,然后告诉它:“我觉得这篇更好。让人类对 AI 的多个输出进行比较或打分,然后用这些反馈来训练 AI,让它越来越“懂你”。传统强化学习中,AI 通过“奖励信号”(比如游戏得分)来学习。但在很多现实任务中(比如聊天、写作),我们很难写出一个数学公式来定义“好回答”。这时候,人类的偏好就成了一种更灵活、更自然的“奖励信号”。

2025-09-28 17:17:22 335

原创 【LangGraph】ReAct构建-LangGraph简单实现

ReAct(Reasoning + Acting)是一种结合推理(Reason)与行动(Act)的智能体框架。它通过“思考 → 调用工具 → 再思考 → 回答”的循环,显著提升了大语言模型(LLM)在复杂任务中的表现力和可靠性。LangChain 提供了这样的高层封装,但如果你想深度定制行为逻辑(比如修改推理策略、插入中间节点、控制工具调用条件等),就需要“从零实现”一个 ReAct 智能体。这正是本文的目标。我们使用TypedDict这里是一个reducer。

2025-09-24 18:27:49 914

原创 LangGraph:记忆

本文介绍了LangGraph中的两种记忆机制:短期记忆(线程内记忆)和长期记忆(跨线程记忆)。短期记忆通过checkpointer自动保存对话状态,绑定特定thread_id管理单次对话上下文;长期记忆则通过store提供键值存储,需手动调用put方法保存跨会话数据,绑定user_id实现持久化。两者可同时使用,但长期记忆需要开发者根据业务逻辑主动存储关键信息,而短期记忆自动维护对话状态。这种设计确保了对话上下文的连贯性和重要数据的持久性。

2025-09-22 22:07:16 476

原创 【LangChain指南】Multimodal

本文介绍了如何利用LangChain处理多模态数据(图像、文档、音频),通过统一接口简化不同模型提供商(如OpenAI、Anthropic、Google Gemini)的调用方式。主要内容包括:1)图像处理的两种方法(Base64编码和直接URL传递);2)PDF文档的Base64编码处理;3)音频文件的处理方式;4)高级功能如提供商特定参数和工具调用。这些方法能有效扩展AI应用的边界,使开发者无需关注底层API差异即可实现多模态交互。

2025-09-22 20:50:01 603

原创 【LangChain指南】Agents

摘要: 本文介绍了如何利用LangChain构建智能代理(Agents),突破大语言模型(LLM)仅能生成文本的局限,使其具备执行操作的能力。第一部分解释Agents的作用,即通过LLM决策调用工具(如搜索、计算)并管理流程。第二部分展示使用传统AgentExecutor快速构建代理,包括定义工具、创建代理执行器及运行示例。第三部分引入LangGraph,通过状态图实现更灵活、强大的代理,支持原生状态管理、多轮对话和动态提示词控制,解决了AgentExecutor在灵活性和调试方面的不足。代码示例涵盖从基础

2025-09-22 20:48:56 797

原创 MCP实战:使用 LangGraph 和 MCP 协议无缝集成外部工具

摘要: 模型上下文协议(MCP)通过标准化工具交互方式,解决了大语言模型(LLM)与外部功能集成的复杂性。开发者可将工具封装为MCP服务器,供LangGraph等框架调用。文章演示了两种集成方法:使用预构建的create_react_agent快速接入工具,或通过自定义StateGraph实现精细控制。同时,指南详细介绍了如何创建MCP服务器(如数学计算和天气查询工具),支持标准输入或HTTP通信。MCP协议实现了工具生态的解耦与复用,显著提升了智能体的扩展性和开发效率。 (字数:150)

2025-09-21 09:35:18 1031

原创 【LangChain指南】Indexing

LangChain的Indexing API通过RecordManager组件解决文档索引中的重复写入、资源浪费和数据不同步问题。核心功能包括:基于哈希值追踪文档变更,通过source_id标识文档来源,提供四种清理模式(None仅避免重复、incremental自动更新同源文档、full全量同步、scoped_full按批次清理)。该API能智能管理向量数据库,确保数据一致性,显著提升语义搜索效率。典型应用场景包括文档版本更新、源文件删除等,通过不同清理策略实现精准控制,节省计算资源。

2025-09-16 18:25:45 1118

原创 【LangChain指南】Retrievers

LangChain提供了多种检索器用于优化文档检索效果,包括基础的向量存储检索器、多查询检索器(从不同角度生成查询)、上下文压缩检索器(过滤无关信息)、自查询检索器(结合元数据过滤)和时间加权检索器(考虑文档时效性)。这些检索器可根据需求单独使用或组合,以提升自然语言查询的准确性和相关性。

2025-09-16 18:24:00 1099

原创 【python进阶】生成器与 yield

生成器是Python中一种特殊的迭代器,通过yield关键字实现按需生成数据,避免一次性加载所有内容到内存,特别适合处理大数据集。yield会暂停函数执行并保存状态,下次调用时从暂停处恢复。生成器可用函数定义(含yield)或生成器表达式(类似列表推导式)创建,常见应用包括逐行读取大文件、生成无限序列(如斐波那契数列)等。通过send()方法还能实现双向值传递,功能强大且高效。

2025-09-16 10:56:54 323

原创 【python进阶】装饰器——Decorator

Python装饰器是一种用于动态修改或扩展函数行为的设计模式,无需修改原函数代码。它能提高代码复用率、增强可读性、解耦功能,常用于日志记录、性能测试、缓存、权限校验等场景。装饰器本质上是接收函数并返回新函数的函数。示例包括简单装饰器、带参数的装饰器、计时器和缓存装饰器等。通过@语法糖应用装饰器,可以优雅地添加额外功能,使代码更简洁高效。

2025-09-16 10:48:17 415

原创 【LangChain指南】基于LangChain的Agent构建-实战代码

本教程介绍了如何利用LangChain框架构建具备记忆功能的多轮对话聊天机器人。主要内容包括:1)环境准备(安装依赖库和API密钥配置);2)定义搜索引擎工具;3)选择并配置语言模型(以Gemini为例);4)创建基于ReAct框架的智能代理;5)通过MemorySaver模块实现对话记忆功能;6)支持流式输出以实时观察代理思考过程。最终实现的代理能够理解用户问题、调用工具处理查询、并记住上下文信息,适用于天气查询等需要记忆个人信息的场景。

2025-09-16 10:24:28 1597

原创 【LangChain指南】向量存储(Vector stores)

本文介绍了LangChain中的向量存储(Vector Stores)及其核心应用。Vector Stores作为连接语言模型与外部数据的关键组件,能够高效存储和检索文档的embedding向量,支持RAG等应用场景。文章详细讲解了使用Chroma和FAISS两种本地向量数据库的步骤,包括数据加载、文本分割、embedding生成、向量库创建及相似性搜索等操作,并提供了完整的Python代码示例。关键点包括统一的接口设计、核心搜索方法以及本地运行的优势,为构建文档问答系统等应用提供了实用指导。

2025-09-16 03:00:00 314

原创 【LangChain指南】Embedding models

本文介绍了LangChain框架中的文本嵌入模型及其应用。主要内容包括:1)Embeddings类提供的两个核心方法——embed_documents用于批量处理文档嵌入,embed_query用于处理单个查询嵌入;2)如何通过继承Embeddings类创建自定义嵌入模型,并提供了示例代码;3)利用CacheBackedEmbeddings实现嵌入结果缓存,提高效率并降低成本,详细展示了使用本地文件系统缓存的实现过程。这些功能为构建RAG系统等基于向量的文本应用奠定了基础。

2025-09-16 02:30:00 425

原创 【LangChain指南】Text splitters

本文介绍了LangChain框架中的文本分割器(Text Splitters)及其应用场景。文本分割器用于将大段文本拆分成更小的块,主要解决模型token限制、性能优化和语义完整性等问题。文章详细讲解了五种分割器:基础字符分割器(CharacterTextSplitter)、递归字符分割器(RecursiveCharacterTextSplitter)、按token分割器(TokenTextSplitter)、针对编程语言/格式的专用分割器以及JSON数据分割器(RecursiveJsonSplitter)

2025-09-16 01:00:00 971

原创 【LangChain指南】Document loaders

摘要: LangChain的Document Loaders是将多种格式数据(PDF、网页、CSV等)转换为标准Document对象的工具,包含page_content和元数据。课程涵盖核心加载器: PDF:PyPDFLoader提取纯文本,UnstructuredLoader保留复杂结构。 网页:WebBaseLoader快速抓取全文,UnstructuredLoader解析结构化内容。 目录:DirectoryLoader批量加载文件夹内文件,支持多线程。 JSON:JSONLoader通过jq语法精准

2025-09-15 23:45:00 927

原创 【LangChain指南】输出解析器(Output parsers)

摘要: LangChain框架中的**Output Parsers(输出解析器)**用于将LLM生成的自由文本转换为结构化数据(如Python对象、字典等),便于程序处理。核心接口包括get_format_instructions()(提供格式化指令)、parse()(解析文本)和可选的parse_with_prompt()(结合提示词修正错误)。常用解析器有: StrOutputParser:提取纯文本,适用于工具调用后的结果简化。 PydanticOutputParser:结合Pydantic模型,生成

2025-09-15 23:30:00 748

原创 【LangChain指南】大语言模型(LLMs)

本文深入探讨了LangChain框架中LLM的四个高级主题:1)缓存机制(内存/SQLite缓存)可减少重复API调用,降低成本;2)自定义LLM类通过继承基类实现模型集成;3)流式传输技术(stream方法)实现实时响应效果;4)本地运行LLM(如Ollama)保障数据隐私并控制成本。通过代码示例展示了每个功能的具体实现,帮助开发者构建更高效、灵活且经济的AI应用。掌握这些技术能显著提升LangChain项目的性能和用户体验。

2025-09-15 19:01:20 523

原创 【LangChain指南】样例选择器(Example selectors)

摘要: Few-Shot Prompting 通过示例引导模型完成任务,但当示例过多时,直接全量输入会超出模型上下文限制或引入噪声。Example Selector 的核心作用是根据当前输入,从海量示例中动态筛选最相关的少数示例,优化Prompt构建。 核心方法: 自定义选择器:实现 select_examples 方法,按规则(如单词长度)筛选示例。 官方五大选择器: LengthBased:根据输入长度动态调整示例数量,避免超限。 SemanticSimilarity:基于嵌入模型(如OpenAI)计算

2025-09-15 18:58:22 750

原创 【LangChain指南】Prompt templates

Prompt Template是大语言模型(LLM)的标准化指令模板,可提高AI应用开发效率。文章介绍了四种模板:1)基础PromptTemplate实现参数化复用;2)ChatPromptTemplate用于构建多角色对话;3)Few-Shot Prompting通过示例提升模型表现,支持静态和动态(SemanticSimilarityExampleSelector)示例选择;4)多模态Prompt支持图像等输入。每种模板都配有Python实现代码,展示了如何动态生成提示词并与模型交互。这些模板能有效组织

2025-09-15 16:26:57 701

原创 剖析ReAct:当大模型学会“边想边做”,智能体的进化之路

《ReAct:大语言模型推理与行动的协同范式》摘要:ReAct是一种创新性智能体架构,通过交替执行"思考(Thought)-行动(Action)-观察(Observation)"的循环机制,将大语言模型的推理能力与工具使用能力有机结合。相比纯推理(CoT)或纯行动模式,ReAct在复杂任务中展现出三大优势:动态获取环境反馈进行自我修正、完整可追溯的推理轨迹、以及灵活的工具扩展性。这种"知行合一"的范式显著提升了AI在问答、事实核查等任务中的表现,为构建更强大的通用智能

2025-09-11 22:10:39 551

原创 【FastAPI】进阶指南:响应模型、文件上传与错误处理的艺术

本文深入解析FastAPI在响应控制、多样化数据输入和异常管理方面的进阶特性。重点介绍了响应模型(Response Model)的使用,通过response_model参数实现数据过滤和安全输出,并详细讲解了response_model_exclude_unset和字段级过滤等高级功能。文章还阐述了如何语义化设置HTTP状态码,包括默认状态码配置和动态错误抛出。最后,针对表单提交和文件上传场景,比较了bytes和UploadFile两种处理方式的优劣,提供了多文件上传的解决方案。这些特性共同帮助开发者构建专

2025-09-10 23:52:36 998

原创 【FastApi】参数处理:从路径、查询到请求体与嵌套模型

FastAPI 通过类型提示和 Pydantic 实现了高效的数据校验与文档生成。该框架利用声明式编程自动完成数据解析、转换和验证,同时生成交互式API文档。文章详细介绍了路径参数、查询参数、请求体处理等核心功能,展示了如何通过Pydantic模型定义复杂数据结构,包括枚举校验、数值范围验证和嵌套模型。FastAPI的混合参数设计提供了终极灵活性,支持同时接收多种参数类型,而其自动生成的Swagger UI文档极大提升了开发效率。整体而言,FastAPI通过类型系统和Pydantic将Web API开发变得

2025-09-10 21:58:50 618

原创 python后端实现安全的工具

python后端实现api安全的工具

2024-09-21 10:18:32 776

原创 在python中有哪些方法能够实现API安全?

OAuth 2.0 和 OpenID Connect: 使用 OAuth 2.0 和 OpenID Connect 等标准协议来确保用户的身份验证是安全的,令牌(token)可以减少用户敏感信息暴露的风险。JWT(JSON Web Tokens): 使用 JWT 进行身份验证。确保 JWT 的签名和有效期,避免使用长期有效的令牌。

2024-09-21 10:14:34 489

原创 python实现google翻译-谷歌翻译(含代码)

【代码】python实现google翻译-谷歌翻译。

2023-07-09 21:43:14 1544

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除