标签归档:LangChain

07 | DeepSeek+LangChain——根据数据报表生成带图表的 PPT

在上一篇文章中,我们介绍了如何使用 DeepSeek R1 + LangChain 来生成报告。今天,我们将更进一步,探讨如何结合数据分析和可视化,让 AI 帮我们生成一份包含图表的专业数据分析报告 PPT。

本文源码已上传至:GitHub

LangChain Agent 简介

在深入代码实现之前,我们先来了解一下 LangChain Agent 的核心概念和工作原理。

什么是 LangChain Agent?

LangChain Agent 是一个智能代理系统,它能够:

  1. 理解用户的自然语言指令
  2. 规划完成任务所需的步骤
  3. 调用适当的工具来执行这些步骤
  4. 整合各个步骤的结果

简单来说,Agent 就像是一个智能助手,它知道如何组合使用各种工具来完成复杂任务。

Agent 的工作流程

  1. 输入解析:Agent 接收用户的自然语言指令
  2. 任务规划:分析需要完成的任务,并制定执行计划
  3. 工具选择:从可用的工具集中选择合适的工具
  4. 执行操作:按照计划调用工具,执行具体操作
  5. 结果整合:将各个步骤的结果组合成最终输出

Agent 的核心组件

  1. LLM(大语言模型)
    • 负责理解用户指令
    • 生成执行计划
    • 决策下一步行动
  2. Tools(工具)
    • 具体功能的实现
    • 通过装饰器注册
    • 提供标准化接口
  3. Memory(记忆)
    • 存储对话历史
    • 维护状态信息
    • 支持上下文理解
  4. Agent类型
    • ZERO_SHOT:直接根据工具描述选择工具
    • REACT:使用思维链进行推理
    • PLAN_AND_EXECUTE:先规划再执行
    • 等等

主要功能概述

我们将实现以下核心功能:

  1. 数据可视化:支持生成多种类型的图表(柱状图、折线图、饼图、散点图)
  2. 文件处理:支持读取多种格式的数据文件(CSV、Excel、Word、网页)
  3. PPT 生成:支持多种幻灯片布局(标题页、纯文本页、图文混排页)
  4. AI 驱动:使用 LangChain 框架实现智能化的内容生成和排版

整体流程图如下:

核心代码实现

1.

阅读全文

06 | DeepSeek R1 × LangChain:智能数据分析全流程实践

源码地址:https://github.com/wangyiyang/DeepSeek-LangChain-Cookbook


📊 引言:DeepSeek R1 的数据分析革命

在当今数据驱动的商业环境中,数据分析师和开发者仍在与繁琐的ETL流程、复杂的代码调试以及耗时的可视化调整作斗争。DeepSeek R1打破这一困境,以三大核心优势重塑数据分析工作流:

⚡ 卓越性能指标

  1. 处理效率: 处理10万行数据并生成可视化分析,仅需2.3分钟(实测比Python原生工作流快37倍
  2. 分析精度: 经Kaggle商业数据集测试,统计计算准确率达92.7%(超越GPT-4o-Mini 5.2个百分点
  3. 开发体验: 自然语言指令直接转换为结构化JSON和可执行代码,显著降低开发门槛

DeepSeek R1采用纯强化学习架构格式-精度双奖励机制,让开发者专注于业务逻辑与数据洞察,而不是陷入数据清洗和可视化调试的繁琐工作中。


🛠️ 一、开发环境准备

# 环境要求:Python 3.10+
pip install langchain-openai==0.0.5 langchain==0.1.5 pandas matplotlib python-dotenv

💻 二、核心实现(30行代码)

1.

阅读全文

05 | 与 PDF 对话:用 LangChain 和 Gradio 打造你的 AI 助手

引言

想象你有一份长达百页的 PDF 工作报告,需要快速找到特定信息,翻页查找太费时了。如果能直接问问题,PDF 就能回答你呢?这就是 ChatPDF 的作用——它就像一个懂你的个人助理,能通过自然语言与 PDF 互动。

本文将教你如何用 LangChain 和 Gradio 打造自己的 ChatPDF 应用。LangChain 是一个强大的框架,帮助开发基于大语言模型(LLM)的应用,而 Gradio 则提供简单易用的网页界面。结合起来,你就能创建一个工具,让你像聊天一样与 PDF 互动。

这是我们系列文章的延续,之前已发布过 LangChain 基础、智能汽车推荐系统等内容。如果你对这些技术感兴趣,不妨回顾之前的文章。本文将一步步带你实现 ChatPDF,适合技术爱好者和开发者。


项目架构

构建 ChatPDF 包括以下关键步骤:

  1. PDF 文件处理:提取 PDF 文本,让 AI 能理解内容。
  2. 文本分块与索引:将文本拆分成小块并创建索引,方便快速搜索。
  3. 自然语言查询:通过 AI 解读用户问题,并基于 PDF 内容生成答案。
  4. 对话管理:支持多轮对话,保持上下文。
  5. 用户界面:用 Gradio 打造简单网页界面,方便上传 PDF 和提问。

这些步骤结合 AI 和机器学习技术,确保 ChatPDF 高效实用。


实现步骤详解

以下是优化后的实现步骤,代码已更新为使用 OpenAI 的模型和嵌入,适合微信阅读。

1.

阅读全文

04 | LangChain 快速入门


1. 引言

在之前的分享中,我们讨论了如何利用 OpenAI Python SDK 开发定制的 GPT 模型、优化 Prompt 工程、实现基于嵌入的推荐系统。这些内容为我们搭建了一个强大的基础,但在实际应用中,复杂的业务需求往往需要多个任务的协同处理,如何高效地整合这些功能成为了一大挑战。

LangChain 正是为了解决这一问题而生。它作为一个专为大语言模型服务的开发框架,提供了灵活的模块化架构,能够将不同任务和工具有机地串联起来,使我们能够轻松构建复杂的任务链、扩展模型的能力,并与外部系统无缝集成。通过 LangChain,我们不仅可以进一步优化现有的 GPT 应用,还可以实现更复杂的多步骤自动化操作,提升智能化应用的开发效率。

接下来,我们将快速介绍 LangChain 的核心概念和架构。

2. LangChain 的核心概念

基于最新的 LangChain 架构图,LangChain 通过模块化的设计,涵盖了从任务链管理到部署的全方位功能。其核心概念不仅包括任务链的构建与管理,还涉及多种工具集成和上下文处理。以下是几个关键部分的概述:

2.1 LangChain 与 LangGraph(架构层)

LangChainLangGraph 位于架构层,构成了整个系统的基础。LangChain 是整个框架的核心,它提供了构建和管理任务链的工具,并支持与大语言模型的交互。LangGraph 则负责处理更复杂的数据结构和依赖管理,适合需要跟踪和管理复杂任务流的应用场景。

  • LangChain:用于构建链式任务,允许开发者将多步骤任务分解为多个独立的组件。这种链式架构可以处理输入的多次流转,生成更为复杂的输出。
  • LangGraph:则是 LangChain 的扩展,用于处理复杂的任务图(DAG)。当任务存在分支或者并行任务时,LangGraph 可以通过图结构追踪依赖关系,确保任务流按照预期顺序执行。

2.2 Integrations(组件层)

在组件层,LangChain 提供了Integrations模块,用于将外部系统、API 和工具与任务链集成。这一层次允许开发者将外部工具(例如数据库、API 或计算工具)无缝集成到任务链中,进一步增强大语言模型的功能。

  • 工具集成:通过 Agents 实现与外部工具的交互,支持诸如 Python 执行、Web 搜索等操作。
  • API 集成:允许模型在生成内容的同时调用外部 API 完成特定的操作,如数据查询、计算任务等。

2.3 LangGraph Cloud(部署层)

LangGraph Cloud 位于架构的顶层,负责商业部署。这是 LangChain 的云端服务,提供了企业级的任务链部署和管理平台。通过云部署,用户可以将模型与任务链快速应用于实际业务场景,享受更高的可靠性与可扩展性。

2.4 LangSmith(辅助工具)

LangSmith 作为开发者辅助工具,包含了一系列用于调试、优化和监控的工具。它为 Prompt 管理、注释、测试和监控提供了一站式的解决方案,帮助开发者更高效地设计和调优任务链。

  • Debugging:调试任务链,检查错误或逻辑问题。
  • Playground:提供实验环境,允许开发者在真实环境前模拟不同的任务链。
  • Prompt Management:用于管理和优化不同任务中的 Prompt 模板。
  • Testing & Monitoring:确保部署后任务链的可靠性和性能。

这一架构使得 LangChain 不仅适用于简单的任务链处理,还能够通过 LangGraph 处理复杂的并行任务和依赖管理,并且提供了企业级的云端解决方案以及开发者友好的工具支持。

3.

阅读全文

02 | 解锁高效周报生成:Prompt工程实战与大模型优化指南

在当今数字化浪潮中,大模型技术正以前所未有的速度渗透进工作生活的诸多领域,重塑着我们处理事务的方式。于职场而言,撰写周报是一项周期性且至关重要的工作,它既是对过往一周工作的复盘梳理,也是为后续工作铺就规划路径的关键环节。然而,手工撰写周报往往耗费大量时间精力,还可能因表述疏漏、重点失焦等问题,影响信息传递效果。此时,借助大模型的强大能力,并运用精巧设计的Prompt工程,恰似为我们打开了一扇通往高效、精准周报生成的便捷之门。本文将以构建一个周报小助手为切入点,深入探究如何施展Prompt工程“魔法”,让大模型输出更契合我们心意、更具价值的周报内容,同时分享一系列优化大模型回答表现的实用策略与技巧。

周报小助手诞生记:基础搭建篇

(一)素材筹备:精心准备日报数据

要打造周报小助手,第一步便是为其准备充足且有序的“弹药”——日报数据。在我们专属的开发目录下,需精心构筑一个存放日报文件的“专区”,且统一规范为txt格式,其目录架构仿若一座层次分明的信息“楼阁”:

|-- 02_prompt_engineering_weekly_report_helper.ipynb
|-- daily
   |-- 1.txt
   |-- 2.txt
   |-- 3.txt
   |-- 4.txt
   `-- 5.txt

这些日报文件绝非空洞无物,而是承载着一周工作点滴的“时光宝盒”。每份日报里,详实记录了当日工作的成果收获、遭遇难题以及对明日工作的清晰规划,就像一部部微型工作“纪录片”。你既可以依据自身日常工作的实际轨迹,原汁原味地录入内容,将项目推进细节、会议研讨要点、技术攻克历程等逐一呈现;也可凭借自身工作积累与经验,快速填充起这些日报文件,为后续周报生成筑牢根基。

(二)数据整合:读取日报并“编织”内容纽带

有了日报素材,紧接着便是编写“魔法代码”,将分散的日报信息汇聚成连贯一体的“信息流”。在此,我们精心打造一个名为get_daily_content的专属方法,它宛如一位勤勉的“信息工匠”,专注于遍历日报目录下的每份文件,逐字逐句读取其中内容,并巧妙拼接整合,最终编织成一条完整的、以换行符相隔的文本“纽带”。以下便是这段充满“匠心”的代码片段:

import os  # 引入系统交互“神器”,赋予代码与操作系统对话之力,自如穿梭文件目录间

def get_daily_content() -> str:
    daily_dir = "./daily/"  # 精准锚定日报文件的“栖息之所”,为后续读取指明方向
    daily = []  # 初始化一个“收纳盒”,静候日报内容“入住”
    
    # 调遣os模块的listdir“侦察兵”,全面搜罗日报目录下的所有“文件居民”
    files = os.listdir(daily_dir)
阅读全文

01 | 基于 OpenAI SDK 开发一个自己的 GPT

在当今人工智能快速发展的时代,构建属于自己的聊天机器人已经变得越来越容易。本文将详细指导你如何使用 OpenAI SDK 和 Gradio 库,从零开始开发一个功能强大且交互友好的类 ChatGPT 应用。

前置条件

开始之前,请确保你已准备好:

  • OpenAI API KEY(可在 OpenAI 官网申请)
  • Python 开发环境(推荐使用 Python 3.8 或更高版本)
  • 基本的 Python 编程知识

开发步骤

Step 1: 安装依赖库

首先,我们需要安装必要的依赖库。在命令行或终端中运行以下命令:

pip install openai
pip install gradio
pip install python-dotenv

Step 2: 使用 OpenAI SDK 进行文本生成

下面是一个简单的示例代码,展示了如何与 OpenAI API 交互:

from openai import OpenAI
from dotenv import load_dotenv
import os

load_dotenv()

# 初始化 OpenAI 客户端
client = OpenAI(
    api_key=os.getenv("OPENAI_API_KEY")
阅读全文