06 Introduction and Video Overview

来源:AI时代学习营 · AI Builder 课程 · 在学习书房阅读原版(含图)

cursor

Cursor介绍

  • 产品定位:AI代码编辑器,旨在显著提升开发效率
    • 主要功能:AI代码补全与生成
    • 代码库索引与理解
    • 支持多种AI模型集成
  • 使用方式:提供30天免费试用,需注册账户使用完整功能

Cursor使用方法

作为文档字符串补全工具

  • 工作方式:通过注释引导代码生成
    • 典型场景:自动生成函数文档字符串
    • 根据注释补全代码逻辑
    • 预测后续代码结构
  • 优势:通过”tab键”快速迭代,显著提升编码速度
  • 注意事项:需要保持注释清晰明确,帮助AI准确理解意图

作为提示导向编程工具

  • 核心思想:通过自然语言描述需求而非具体实现
    • 关键技术:需要精心设计提示词(prompt)
    • 包含足够的上下文信息
    • 提供示例输入输出
    • 应用限制:需要人工处理HTML解析等技术细节
    • 执行效率受网络请求影响较大
    • 典型流程:描述整体目标
    • 提供页面结构示例
    • 指定输出格式要求

作为代理导向编程工具

  • 工作模式:AI自主完成完整开发流程
    • 核心能力:自动安装所需依赖库
    • 自主调试和优化代码
    • 处理异常情况
    • 典型流程:用户提供高层级需求描述
    • AI分析需求并制定实现方案
    • 自动执行代码编写和测试
  • 优势:开发者只需关注”做什么”而非”怎么做”
    • 技术基础:代码库索引和记忆能力
    • 外部工具调用能力
    • 自主错误修复机制

技术实现原理

  • 代码理解机制:通过静态分析提取代码结构
  • 生成代码元素的语义摘要
  • 建立代码位置与描述的映射关系
  • 记忆优化:本地存储代码元数据
  • 云端保存嵌入向量
  • 支持大规模代码库索引
  • 性能考量:自动跳过非代码文件
  • 支持手动触发全量索引
  • 提供索引进度监控

Cursor设置

代码索引功能

  • 索引位置:在Cursor设置的Features选项中,向下滚动可找到代码索引功能
  • 索引作用:自动分析函数文档字符串和签名,构建代码库索引
    • 实现方式:使用RAG(检索增强生成)技术
    • 索引存储在云端,但代码保持本地存储
    • 支持22,397个文件的代码库规模

  • 工作流程:计算搜索查询
  • 将相关.py文件纳入上下文窗口
  • 基于索引内容生成提示
  • 手动触发:当前演示中未自动计算索引,需手动启用
  • 查询示例:可通过”Control+Enter”快捷键测试LLM查询功能

使用案例

例题:CVPR2024论文信息下载

  • 关键修改点:绘制方法优化:从圆心开始绘制改为从圆周最右侧点开始绘制,避免产生多余的中心连线
  • 错误处理机制:添加LLM调用失败时的数学计算回退方案
  • 类型提示改进:增强代码可读性和类型安全性
  • 实现步骤:安装OpenAI包:pip install openal
  • 替换API密钥:使用实际OpenAI API密钥
  • 运行机制:优先尝试从GPT-3.5-turbo获取绘制指令,失败时自动切换数学计算
  • 优势对比:LLM方案:可生成更具艺术性的绘制模式
  • 数学方案:精度更高但缺乏创造性

例题:Instagram图片爬取

  • 核心功能:使用instaloader库获取指定用户的最新图片URL
  • 支持限制获取数量参数
  • 完善的异常处理(用户不存在等场景)
  • 技术要点:安装依赖:pip install instaloader
  • URL特性:获取的是临时CDN链接,会定期失效
  • 排序规则:按发布时间倒序获取最新内容
  • 注意事项:存在API调用频率限制
  • 建议将结果保存至文件而非直接输出
  • 需要处理Instagram的反爬机制

例题:⻓文档分析

  • 文档特点:包含大量自然语言描述的金融条款
  • 涉及可调利率抵押贷款(ARM)的复杂统计指标
  • 数据结构化程度低,需要特殊处理
  • 挑战:不同文档间的统计口径可能不一致
  • 长文档会占用大量上下文窗口
  • 需要自动化的文档解析和标准化能力
  • 解决方案建议:采用分块处理策略
  • 建立统一的指标提取规则
  • 使用向量数据库进行文档索引

知识总结

  • 批量文档处理方法:当需要处理数百甚至数千份文档时,可以使用LLM(大型语言模型)进行批量分析和总结。
    • 推荐工具:Composer模式:适合结构化文档处理
    • Agent模式:适合自动化批量处理
  • 应用场景:特别适用于处理大量生成的JSON文件,如课程中提到的200多份贷款文档分析。

使用其他工具分析长文档

  • 工具选择原则:当提示内容过长时,应选用专门设计的工具进行处理。
    • 操作流程:将文档集(如JSON文件)作为输入
    • 使用工具生成分析报告
    • 对结果进行验证和调整
    • 注意事项:工具需要支持批量输入处理
    • 应验证工具输出的准确性
    • 注意文档隐私和安全保护

  • 典型工作流:准备文档集(如”generated_loans”文件夹中的JSON文件)
  • 设计分析提示(prompt)
  • 通过工具接口提交分析请求
  • 获取并验证分析报告
  • 优势:自动化处理大量文档
  • 可生成结构化报告
  • 支持多种分析维度

分析长文档的流程

快速分析的原因

  • 实时处理优势:使用实时GB API工具可以显著提高分析速度,该工具由讲师自行开发
  • 构建思维示例:展示了建设者的思维方式,通过自定义工具解决特定问题

分析⻓文档实例

工作流程步骤

  • 初步了解:首先查看少量JSON文件以理解总体内容和数据结构
  • 关键指标确定:基于数据结构,确定描述贷款关键要素的重要指标和属性
  • 信息提取:通过LLM API的参考实现提取关键信息
  • 后续处理:完成上述步骤后进行数据聚合、分析和生成格式良好的报告

技术实现细节

  • 本地部署:由于法律和合规问题,使用本地部署的LLM模型
  • 并行处理:使用16个线程加速处理过程,先测试20个文档
  • 模型选择:使用Qwen/Qwen2.5-32B-Instruct-AWQ模型进行信息提取
  • 错误处理:包含完善的异常处理机制,确保处理过程的稳定性

实际执行过程

  • 目录扫描:首先列出生成贷款目录中的内容,确认存在多个JSON文件
  • 文件检查:读取loan_193.json和loan_160.json等文件确认数据模式
  • API检查:查看llm_api.py文件内容,了解如何调用LLM
  • 并行处理实现:使用ThreadPoolExecutor实现多线程处理,提高效率

使用LLM处理贷款文件并分析

GPU信息

  • 运行状态:系统运行在NVIDIA RTX 4090 GPU上,占用率达到100%,表明LLM处理任务正在高效执行
  • 本地部署:所有处理都在本地GPU完成,数据不会离开公司内网,确保安全性
  • 模型选择:使用Qwen/Qwen2.5-32B-Instruct-ANQ模型进行信息提取,32B参数规模保证处理质量

文件分析并保存结果

  • 并行处理:使用16线程并行处理贷款文件,显著提高处理效率
  • 错误处理:自动记录处理失败的文件,错误信息包括”Expecting value: line 1 column 1 (char 0)”
  • 结果保存:将提取的信息保存为JSON格式,包含借款人姓名、房产地址、贷款金额等关键字段
  • 调试机制:系统会自动识别非JSON格式的响应并进行调试输出

调试响应保存目录

  • 自动记录:系统在debug_responses目录保存每次尝试的完整记录
  • 详细日志:每条记录包含文档ID、尝试次数、时间戳、成功状态和LLM原始响应
  • 错误分析:失败案例会记录具体错误信息,如JSON解析失败等
  • 进度跟踪:实时显示处理进度,格式为”Progress: 2/20 - Processed loan_006.json successfully”

GPU信息

  • 资源占用:GPU内存使用22.39GB/23.99GB,显存利用率保持高位
  • 持续运行:系统已稳定运行6.2天,平均负载0.93
  • 温度控制:GPU温度维持在54°C,风扇转速40%,处于正常工作范围

跟踪结果

  • 结果验证:系统自动检查提取结果是否合理,不依赖硬编码规则
  • 质量改进:通过修改prompt使提取的实际值替代占位符
  • 关键指标:成功提取贷款金额($300,000)、利率(3.75%)、期限(30年)等核心数据
  • 待改进项:部分日期仍为占位格式,某些贷款编号字段为空

代码疑问

  • 实现方式:代码通过调用LLM API实现信息提取,非传统if-else逻辑
  • 本地部署:使用OpenAI兼容API本地部署,base_url指向内网地址

168.180.137

  • 模型交互:通过client.chat.completions.create方法发送提取请求
  • 提示工程:明确要求LLM”必须仅返回包含提取值的有效JSON对象”

报告分析

  • 可视化展示:使用HTML生成交互式报告,包含贷款金额分布、利率分布等图表
  • 关键统计:总贷款额5,650,000,平均贷款额332,352.94,平均利率3.90%
  • 高级分析:展示ARM贷款调整频率、指数类型分布等专业指标
  • 生成方式:通过Python脚本自动将JSON结果转换为可视化报告
  • 交互功能:用户可悬停查看具体数值,图表响应鼠标交互

文件类型处理方式

使用现有工具

  • 商业工具选择:可直接使用GPT或Claude等商业AI工具,它们内置了多种文件解析器
  • 使用方法:上传文件到Claude或OpenAI平台后直接提问,无需额外配置解析器
  • 优势:操作简单,适合快速获取文件内容而不需要编程实现

Apache Tika

  • 功能定位:Apache Tika是专门用于解析多种文件格式的开源工具
    • 技术特点:提供抽象层支持超过1400种文件格式解析
    • 最新版本为3.0.0,支持科学、NLP等专业领域解析器
    • 提供可运行jar包(tika-app)和服务器模式(tika-server)
    • 使用方式:可下载tika-app-3.0.0.jar直接运行
    • 支持以服务方式部署(tika-server-standard)
    • 包含特定领域解析器包(科学、SQLite等)

  • 版本选择:3.x系列包含最新功能但可能有breaking changes
  • 2.9.2版本更稳定,适合生产环境
  • 法律注意:包含加密软件,使用时需遵守所在国进出口管制法规

Open WebUI

  • 集成解析:Open WebUI内置文档解析功能,可通过管理面板配置
  • 配置路径:管理员设置→文档→内容提取引擎
    • 支持格式:文本、音频、图像等多种媒体格式
    • 可选用Tika作为底层解析引擎
    • 高级功能:支持RAG(检索增强生成)模板配置
    • 可设置嵌入模型和混合搜索
    • 提供内容提取管道定制

  • 使用建议:适合需要可视化配置界面的用户,比纯编程方案更易上手

光标调用本地语言模型

本地化部署原理

  • 基础URL重定向:与OpenAI API的唯一区别在于将base_url参数指向本地机器,其他代码可完全复用
  • 兼容性原理:主流本地推理库(如vLLM、Llama.cpp)都兼容OpenAI API格式,这是代码复用的关键
  • 客户端创建:通过create_llm_client()函数初始化时,只需修改base_url参数即可切换为本地服务

智能代理工作模式

  • 成功标准定义:非代理模式下需明确指定完整编程要求(如”使用OpenAI API请求指定模型”)
  • 代理模式下应定义可量化的成功标准(如”测试直到获得合理答案”)
  • 自主迭代机制:当代理明确知道成功标准时,能自动进行调试迭代
  • 缺乏明确标准时会退化为普通编程模式,需要人工审核
  • 进化趋势:AI已从替代重复性工作发展为能处理更复杂的自主决策任务
  • 调试技巧:在光标工具中使用Ctrl+I快捷键可快速插入调试指令
  • 商业应用价值:演示中展示的方案具有直接商业化潜力,仅需调整API端点配置

反复工作与创造性工作

  • 重复性劳动:特点:日常重复性数据处理、可视化等基础工作
  • 实例:执行SQL查询并生成趋势图(如’event_trends.png’)
  • 局限:可能出现”Memory Exception”等程序性错误
  • 创造性工作:特点:需要创新思维和问题解决能力
  • 实例:开发AI部署方案、教材内容更新(如cohort 7新增开源内容)
  • 优势:比重复性劳动更有价值,如开发学生门户系统
  • 转型建议:方法:从工具使用者(Users)转变为创造者(Builders)
  • 案例:通过《From Users to Builders》课程实现职业转型
  • 关键:掌握AI时代的新技能组合

  • 持续学习:机制:通过学生门户接收教材更新通知
  • 特点:不同批次学员(cohort)获取差异化的知识内容
  • 示例:cohort 6后期补充了开源技术相关内容
  • 技术实践:工具:Python可视化库(matplotlib/seaborn)
  • 挑战:环境配置问题(如FileNotFoundError)
  • 解决方案:正确设置文件路径和编码参数(encoding=‘utf-8’)

尝试启动类似项目

  • 本地部署尝试:讲师提到曾尝试在本地计算机(loco)上启动类似代理(agent)项目,表明这种技术在本地环境具有可行性。
  • 云端研究:同时进行了在云端部署(luncheon on the cloud)的相关研究,说明项目可以考虑云端和本地两种部署方式。

  • 开源工具现状:许多开源模型(如Hugging Face上的模型)需要复杂Python代码和依赖安装,Llama.cpp虽然高效但需要平台特定编译,对普通用户不友好。
  • 用户友好工具:Ollama和Open WebUI被推荐为两个既强大又用户友好的开源工具选择。

Ollama介绍

  • 核心功能:作为开源模型的后端服务工具,无需编码或编译即可直接运行。
  • 跨平台支持:支持Mac(包括Apple Silicon)、Windows和Linux多平台。
  • 使用方式:主要通过命令行和API调用,但操作简单。
  • 模型获取:官网(https:/ollama.com/)提供模型搜索功能,如搜索”llama”可找到相关模型。

Open WebUI介绍

  • 定位:为Ollama提供可视化前端界面。
  • 优势:改善用户体验,使开源模型工具更易用。

视觉模型应用示例

  • 模型特点:Llama3.2-Vision具备图像理解能力,可通过简单命令调用。
    • 使用示例:输入”Can you tell me what’s in this image?”并附加图片路径即可分析图像内容
    • 示例中模型准确识别出被错误命名为”cat.jpg”的拉布拉多犬图片
  • 实际应用:这种能力可用于日常工作和生活场景,如监控系统异常检测等。
  • 成本考量:讲师提到对运行成本(可能指云端部署)的担忧,表示不希望每天浪费上千美元,建议优先考虑本地部署方案,特别是在Mac设备上。
  • 部署建议:对于个人或小规模使用,推荐在本地Mac设备上运行,既节省成本又保证性能。

开放源码模型与工具链

开放源码模型与工具链介绍

  • 传统工具痛点:Hugging Face上的开源模型通常需要复杂的Python代码和各种依赖安装,llama.cpp虽然能在树莓派和Apple Silicon上高效运行,但需要在每个平台上编译后才能使用。
  • 用户友好工具:Ollama和Open WebUI是两个非常用户友好且功能强大的工具,不需要编码或编译即可直接运行。

Ollama后端服务

  • 核心功能:作为开源模型的后端服务工具,支持Mac、Windows和Linux多平台,可直接调用Apple Silicon的计算能力。
  • 使用方式:主要通过命令行和API调用,官网(https://ollama.com/)提供模型搜索和下载功能。
  • 模型示例:llama3.2-vision模型具有视觉理解能力,可通过简单命令ollama run llama3.2-vision下载并运行。

视觉模型应用实例

  • 图像理解测试:故意将包含狗的图像命名为cat.jpg,防止LLM根据文件名猜测内容,验证其真实图像理解能力。
  • 使用方法:只需将图像拖入命令行窗口或输入图像路径,模型即可分析图像内容并返回详细描述。

Open WebUI前端界面

  • 安装方式:推荐使用Docker安装,单用户模式(禁用登录)适合实验性使用,访问http://localhost:3000/即可使用。
    • 界面功能:模型选择:左上角可切换不同模型
    • 对话管理:支持查看历史对话和标题
    • 多模态支持:支持图像/文件上传(拖放或点击添加)
    • 语音功能:具备语音识别和文本转语音能力
  • 智能补全:独有的输入智能补全功能,优于ChatGPT。

本地部署优势

  • 成本优势:相比商业LLM每分钟1次的请求限制,本地LLM在算力允许下可达到每秒1次的请求频率。
  • API兼容性:Ollama提供与OpenAI API完全兼容的接口,只需修改base_url为http://localhost:11434/v1即可无缝切换。

课程资源获取

  • 资源发布:课程录像将在次日早晨发送给学生
  • 获取渠道:学生可以通过学生门户获取课程录像和相关资料
  • 字幕服务:课程将提供字幕文件,方便学生复习

  • 字幕生成:使用GPT工具自动生成SRT字幕文件
  • 语言支持:包含英文转录和中文翻译
  • 特殊支持:特别为中国学生提供语言支持,帮助克服语言障碍

课程技术支持

  • Zoom访问:提供备用Zoom链接以防主链接不可用
  • 作业支持:当作业网站关闭时,课程会提供替代网站(如yagg.aigenai/pi.html)
  • 教材更新:会及时更新教材(教学大纲)内容

课程互动

  • 交流渠道:在#general频道可以进行课程相关讨论
  • 问题反馈:鼓励学生通过回复帖子或私信方式反馈Zoom访问问题
  • 包容性措施:欢迎提出使课程更具包容性的建议

知识小结知识点 核心内容 考试重点/易混 难度系数淆点Cursor工 AI编程助手,支持三种使用模式:代 代理模式与传 ⭐⭐⭐具介绍 码补全、聊天窗口编程、代理模式编 统编程方式的程 区别代码补全 通过注释驱动编程,自动生成代码和 注释质量直接 ⭐⭐模式 文档字符串 影响生成效果代理模式 高级功能,可自主调试和完成任务, 需要明确成功 ⭐⭐⭐⭐编程 类似管理实习生 标准才能有效工作代码库理 能处理数十万行代码,通过RAG技术 与常规聊天模 ⭐⭐⭐解 建立索引 式(单文件)的区别本地LLM 可连接本地部署的大语言模型(如 合规性考虑与 ⭐⭐⭐⭐集成 Llama2)处理敏感数据 商业API的区别文档批量 代理模式可自动分析数百份JSON/自 需要中间结果 ⭐⭐⭐⭐处理 然语言文档 保存用于调试多文件协 Composer模式可同时修改多个文 与单文件聊天 ⭐⭐作 件,预览更改 模式的功能对比非代码文 支持PPT/图片等文件解析(通过 不同解析工具 ⭐⭐⭐件处理 Apache Tika等工具) 的效果差异AI工作流 构建多代理协作系统(如让一个AI管理 成功标准定义 ⭐⭐⭐⭐设计 另一个AI) 的关键性