普通视图

发现新文章,点击刷新页面。
今天 — 2026年4月13日首页

Apple Vision Pro 没有完蛋

作者 肖钦鹏
2026年4月13日 22:00

Apple 上海开发者中心,这个工作坊开始还不到十分钟,第一个认真讨论的话题,是电压。

来自 Blackmagic 的工程师举起一块电池,提出问题:升压模块把 18 伏拉到 24 伏以上,能不能稳定录制?

房间里安静了一下。

答案是不能——这台造价二十多万元的 Blackmagic URSA Cine Immersive 摄影机,需要 112 瓦以上持续供电才能正常运转,而升压后只能到 90 多瓦。看起来在工作,但真到 90 帧高规格录制的时候,素材很有可能会丢帧。

Blackmagic URSA Cine Immersive 摄影机

这是摄制高规格沉浸式内容时才会遇到的问题,迄今业内也没有多少人知道这个点。

一年前,这个问题还不存在——彼时,Blackmagic URSA Cine Immersive 摄影机才刚启动发货。

迄今为止,Apple Vision Pro 依然是地球上唯一能够完美显示这些内容的设备。

现场的几十个团队,大多已经用过 Apple Vision Pro,为这台设备拍过东西,有些甚至交付了项目。他们来这里,只想解决一件事:怎么制作高规格的沉浸式内容?

但他们面对的具体问题多如牛毛,没有人知道标准答案。

从工程问题,到影视问题

这个开发者中心过去接待的,大多是做编程、设计和游戏的开发者,内容创作者如此集中出现,还是头一次。

制作高规格的沉浸式影像,门槛高到不可思议——

当时,没有专用摄影机,也没有能处理这种格式的剪辑软件,有的只是苹果给出的一份格式规范。

《Apple Movie Profiles for Spatial and Immersive Media》白皮书

想从拍摄走到交付,每一步要么自己写代码,要么改造现有工具。一个项目组踩过的坑,下一个项目组还得从头再来。这块领域的早期创作团队,掌镜的往往是工程师,而不是摄影师。

2024 年 12 月,Blackmagic 推出了第一台专门为沉浸式影像设计的摄影机,但直到一年后,DaVinci Resolve 20.1 发布,才第一次全面支持沉浸式影像工作流。

RAW 文件直接进达芬奇,剪辑、调色、空间音频混音,元数据全程保留,整个链路终于可以不靠代码跑通。

新的障碍紧跟着就来了。

仅仅拍了 16 分钟,原始素材就超过了 1.2TB,这意味着存储和传输方案要从头设计。

监看更麻烦,2D 监视器展示不了真实的双目景深,左右眼对齐误差在平面屏上根本看不出来,等后期发现基本只能重拍。有摄影师说,宽角预监画面几乎是「有误导性的」,只有在头显端实时看,才知道实际拍到了什么。

机位逻辑也完全不同——空间影像没有变焦,拍一场演唱会可能要同时架二三十台定焦机器,由剪辑师在后期选镜头。什么时刻该切镜头、切去哪、观众的注意力在哪?

很多传统影像的经验在这里失效。

The Weeknd 的沉浸式短片「Open Hearts」只剪了 30 刀,但同一首歌拍成普通 MV 要剪 300 到 400 刀。

当观众可以自己转头扫视整个空间时,快速剪辑的英雄镜头就失去了意义。内容的主动权,一部分还在导演手里,但大部分已经被交还到观众手上。

观众到底想看什么?

我们联系到了一家位于广州的 XR 体验店,店主 Jeffrey 也是一位 XR 领域的资深媒体人,他告诉爱范儿,短短一个多月,他们已经做到了这个片区的团购第一,全靠一台 Apple Vision Pro。

CORTIS 是 2025 下半年才声名鹊起的 K-pop 男团,在工业化高度发达的韩国演艺圈,为偶像拍摄零距离的沉浸式影片是一种常见的营销方式——而 CORTIS 选择了用 Apple Vision Pro,显然是看中了其绝佳的清晰度和沉浸感。

CORTIS

2026 年 1 月 30 日,CORTIS 练舞的沉浸式影片《NEAREST: CORTIS》在 Apple TV 免费上线,凭借浸入感极强的演出和身临其境的视听效果,收获了极佳的口碑,在粉丝群体间口口相传——但真正能看到这条影片的人凤毛麟角。

以 Apple Vision Pro 为核心设备的体验店得到了破圈的机会。

一般来说,这类体验店的辐射半径是 5 公里,但随着粉丝们的种草笔记在小红书上自发扩散,梦想和偶像零距离接触的观众从四面八方涌来。

Jeffrey 说,客人觉得这个内容好到能忽略设备的一切缺点——压脸、闷热、弄乱发型……都不介意。过去这么多年里,VR 内容的出圈和推广是极其艰难的,但 Apple Vision Pro 的沉浸式影片,打破了这样的困境。

CORTIS

沉浸式影片里呈现的,是现实世界的真实视差。成员就站在你旁边,你看向他时,就像真的站在练舞室里。无数立体的细节扑面而来,营造前所未有的真实感,真实得像做梦一样。

苹果官方有一套评估沉浸式影像的画质标准,其中最重要的尺度,不是分辨率也不是像素密度(PPI),而是「感知清晰度」——简单来说,就是视力表。

苹果希望每一部登录 Apple Vision Pro 的高品质沉浸式影片,都能还原肉眼观看世界的体验——近处的内容细节丰富,远处的画面自然会有些模糊,但他们的帧率、色彩、亮度都尽可能贴近真实的视觉感受。

唯有如此,才能保证绝佳的沉浸感。

于是,当我们戴上 Apple Vision Pro,才能置身万米高空的索道、来到 NBA 全明星现场、伫立在西班牙斗牛跟前——这些难以亲临的造梦现场,是观众真正想看到的内容,是一种前所未有的稀缺体验。

截选自 Apple 官网

造梦,AI 时代的稀缺体验

根据 IDC 的预测,2025 年,Apple Vision Pro 出货量只有 10 万台左右,上市两年仅仅卖出了 50 多万台——这可能是 iPhone 面世以来,苹果最滑铁卢的产品。

太重,太贵,太超前,成为判 Apple Vision Pro 死刑的理由。

但苹果在 Apple Vision Pro 内容上的投资从未停过。

《World of Red Bull》首集《Backcountry Skiing》

过去两年,Apple TV 已经上线了超过 30 部沉浸式影片,每隔一两个月总会有些新东西看——

从棒球场到篮球场,从恐龙纪元到动物世界,从二战潜艇到高空钢丝,从男团练舞室到演唱会现场……很难想象,苹果会为一台出货量跌了九成的设备,稳定持续地更新生产成本高昂的内容。

显然,苹果从来没有觉得 Apple Vision Pro 完蛋了,倒不如说,苹果正在给 Apple Vision Pro 的未来下注——为未来注定更加稀缺的造梦体验下注。

在过去两年使用 Apple Vision Pro 的过程中,我经常会有类似的感受——戴在我头上的,到底是未来的 iPhone、Mac 还是 iPad?

Apple Vision Pro 是一个没有经过「剪裁」的产品,苹果也不知道用户想要什么,于是把所有的东西都给了用户。

未经剪裁的 Apple Vision Pro 搭载了太多的功能,也面临太多的妥协。但至少,让人真假难辨的造梦体验,是 Apple Vision Pro 无可取代的部分。

三年前,Apple Vision Pro 和 ChatGPT 分别代表了科技行业最受瞩目的技术方向,但前者是卖了 50 万台的极客玩具,而后者则改变了 10 亿人的生活方式。

于是,当生成式 AI 把内容的生产门槛降到最低时,我们也将迎来数字内容最饱和的时代。

那时候,观众到底想看什么?

1984 年,威廉·吉布森在《神经漫游者》里描绘了一种全新的媒介——「拟感」(simstim)。

那是把一个人的完整感官体验录成数据,传进另一个人的神经系统,从而实现感同身受的体验。

在经典赛博朋克世界观里,这是将电视电影取而代之的东西。

Apple Vision Pro 的沉浸式影片,提供了当下最接近「拟感」的体验——那是一种要求你必须在场,要求你用自己的感官,去经历真实与虚妄的造梦体验。

我说不好这到底是不是未来,但我看到全球各地已经有许多人,他们在拍了,他们在做了。

#欢迎关注爱范儿官方微信公众号:爱范儿(微信号:ifanr),更多精彩内容第一时间为您奉上。

du Cheatsheet

Basic Usage

Common ways to check directory and file sizes.

Command Description
du Show disk usage of the current directory and its subdirectories
du file Show disk usage of a single file
du dir1 dir2 Show disk usage for multiple paths
du -h dir Human-readable sizes (K, M, G)
du -sh dir Show only the total size of a directory
du -sh * Show the size of every item in the current directory
sudo du -sh /var Run with sudo to read root-owned paths

Size Formats

Control how sizes are printed.

Option Description
-h Human-readable, powers of 1024 (K, M, G)
-H Human-readable, powers of 1000 (SI units)
-k Display sizes in 1K blocks (default on most systems)
-m Display sizes in 1M blocks
-BG Display sizes in 1G blocks
-B SIZE Use SIZE-byte blocks, for example -BM or -B512
-b Equivalent to --apparent-size --block-size=1

Summary and Totals

Reduce noise or add a grand total row.

Command Description
du -s dir Show only the total for the given directory
du -sh dir Total in human-readable format
du -c dir1 dir2 Add a total line at the bottom
du -csh /var/log /var/lib Human-readable totals plus a combined grand total
du -a dir Include every file in the listing, not just directories

Depth Control

Limit how deep du descends into the directory tree.

Command Description
du -h --max-depth=1 dir Show only the first level of subdirectories
du -h --max-depth=2 dir Show two levels deep
du -h -d 1 dir Short form of --max-depth=1
du -h --max-depth=0 dir Show only the directory total (same as -s)

Excluding Files

Skip paths or patterns from the report.

Option Description
--exclude=PATTERN Skip files and directories matching the shell pattern
--exclude-from=FILE Read exclude patterns from a file
-x Stay on the same filesystem (skip mounted ones)

Examples:

Command Description
du -sh --exclude="*.log" /var Exclude .log files from the total
du -sh --exclude=node_modules ~/projects Skip node_modules directories
du -xsh / Total of the root filesystem only, ignoring mounts

Sorting and Top N

Combine du with sort and head to find the largest items.

Command Description
du -h dir | sort -rh Sort entries by size, largest first
du -h dir | sort -rh | head -10 List the 10 largest items
du -h --max-depth=1 / | sort -rh | head -20 Largest top-level directories under /
du -ah dir | sort -rh | head -10 Largest individual files and directories
du -sh */ | sort -rh Sort current directory’s children by size

Apparent vs Disk Usage

du reports allocated blocks by default. Use these flags to see actual byte counts.

Option Description
--apparent-size Show how many bytes the file contains, not how much it occupies on disk
-b Apparent size in bytes (shorthand for --apparent-size --block-size=1)

Examples:

Command Description
du -sh --apparent-size /var/log Apparent size of /var/log
du -sb file Exact byte count of a file

Counting and Time

Less common but useful options.

Option Description
-L Follow all symbolic links
-P Never follow symbolic links (default)
-l Count sizes many times if hard linked
--time Show last modification time of the file or directory
--time=atime Show the access time instead of modification time
-0 Use a NUL character as the line separator (for piping into xargs -0)

Related Guides

Use these references for deeper disk usage workflows.

Guide Description
du Command in Linux Full du guide with practical examples
How to Get the Size of a File or Directory Focused walkthrough for sizing files and directories
How to Check Disk Space in Linux Using df Filesystem-level disk space reporting
Find Large Files in Linux Locate the biggest files across a tree

高盛股票交易业务收入再创新高

2026年4月13日 20:49
高盛集团的股票交易业务收入连续第二个季度创下纪录,较此前的历史高点多出逾10亿美元,抵消了固定收益业务表现不佳的影响。该行在周一发布的声明中表示,其股票交易部门在第一财季实现收入53.3亿美元,超过去年第四季度创下的43.1亿美元纪录。这一季度收入创下了全球银行业历史最高水平。(新浪财经)

宁德时代据悉考虑出售不超50亿美元股票

2026年4月13日 20:45
据知情人士透露,宁德时代正在考虑在香港出售股份筹集最多50亿美元资金。这几位知情人士表示,宁德时代已就此次配售与银行进行了初步谈判。宁德时代也在考虑发行可转换债券,以满足部分融资需求。目前相关考虑仍在进行中,尚未做出最终决定。(财联社)

从零开始:前端转型AI agent直到就业第五天-第十一天

作者 渣渣xiong
2026年4月13日 20:40

前言

接近8.9年老前端了,34岁,双非普本,坐标广州,25年底被裁员,然后这三个月内也有去投简历,也有面试,有一些推进到二面然后就没有下文,不禁感叹现在的大环境实在不怎么样,而且前端在AI的冲击下也是最受影响的,除了音视频,图形化方面还能蹦跶一下,AI已经能完成80-90%的前端工作,在学历以及就业背景都不是特别强的情况下,一般的前端哪怕你技术还不错,你也很缺竞争力;在失业这三个月经历了持续学习、迷茫到看到曙光,决定要转型自学做AI agent;

大纲

  • 前一天心路历程
  • 前一天的时间分配(不限于学习,也会有运动)
  • 前一天的知识总结(前期或许较少)

心路历程

很久一段时间没有更新了,并不是断更了,而是慢慢地进入了状态,最近都是每天早上起来学习直到晚上

时间分配

一般早上8点起来学习到中午12点休息2-3个小时继续学习到晚上8点,然后开始整理文档发到博客

知识总结

不知不觉间,已经整理了很多相关的文档对于这个赛道的知识体系有一个粗略的认知并且有了一定的基础

image.png

今天发一下今天学到的知识体系发一下吧:

RAG检索增强生成

第一章:RAG 思想与核心价值

1.1 什么是 RAG?

通俗理解

想象一下:

你有一个非常聪明但有点健忘的朋友(大语言模型,LLM)。他知道很多常识,但如果你问他:“我们上周三开会时说了什么?” 他就傻眼了,因为他没有那天的记忆。

RAG 就是给这个朋友配了一个笔记本。每次你问问题,他先快速翻笔记本(检索),找到相关记录,然后结合自己的理解来回答你(生成)。

  • 没有 RAG:LLM 只靠训练时记住的知识回答 → 容易“已读乱回”(幻觉)或“已读不回”(知识陈旧)
  • 有了 RAG:LLM 先查你给的知识库,再基于这些知识回答 → 答案更准确、可溯源
官方定义

RAG(Retrieval-Augmented Generation,检索增强生成) 是一种将信息检索大语言模型生成能力相结合的技术架构。

核心公式:RAG = 检索(Retrieval) + 增强(Augmented) + 生成(Generation)

环节 作用
检索 从知识库中找到与问题相关的信息片段
增强 把这些片段作为“上下文”注入到提示词中
生成 LLM 基于增强后的提示词生成最终答案
RAG vs 微调(Fine-tuning)
对比维度 RAG 微调
知识更新 只需更新知识库,无需重新训练 需要重新训练模型
可解释性 答案可追溯到原始文档 难以追溯知识来源
实现成本 低,无需 GPU 训练 高,需要训练算力
实时性 秒级生效 小时/天级
适用场景 知识频繁更新、私有文档问答 改变模型风格、行为或学习特定格式

💡 一句话建议:想让模型知道新事实 → 用 RAG;想改变模型行为方式 → 考虑微调。


1.2 RAG 能解决什么问题?

问题 说明 RAG 如何解决
知识截止日期 GPT-4 知识截止于 2023 年 10 月 注入最新的文档(如今天的新闻)
模型幻觉 LLM 会编造不存在的“事实” 强制基于检索到的上下文回答
私有领域知识 公司内部文档、产品手册、法律条文 将这些文档作为知识库
动态更新 知识每天变化(如股价、政策) 只需更新向量库,秒级生效
答案可溯源 用户想知道“你从哪里知道的” 返回答案时可附带来源文档

1.3 RAG 工作流程全景图

RAG 分为两大阶段

阶段一:索引阶段(Indexing)—— 离线准备知识库
原始文档 → 文档加载 → 文本拆分 → 文本块 → 向量化 → 向量数据库
   │           │          │         │        │         │
 PDF/Word     读取     切分成块   小片段   转成向量   存储检索

这个阶段不需要用户等待,可以在后台定期执行(如每晚更新一次)。

阶段二:检索与生成阶段(Retrieval & Generation)—— 在线回答问题
用户问题 → 向量化 → 问题向量 → 向量数据库相似度搜索 → Top-K 相关文本块
                                                              ↓
最终答案 ← 大语言模型 ← 构建 Prompt(上下文 + 问题) ← ────────┘
一个完整的例子

假设你上传了一份《2024年公司休假政策》文档:

步骤 阶段 发生了什么
1 索引 文档被切分成块 → 向量化 → 存入向量库
2 检索 你问:“春节放假几天?” → 问题被向量化
3 检索 向量库找到最相关的文本块(含“春节假期7天”)
4 生成 Prompt = “根据上下文回答:春节放假几天? 上下文:春节假期7天...”
5 生成 LLM 回答:“根据公司政策,春节放假7天。”

第一章小结

核心概念 一句话总结
RAG 先查资料,再回答问题,让 LLM 有据可依
索引阶段 离线准备知识库(文档→向量库)
检索+生成阶段 在线回答问题(问题→检索→生成)
RAG vs 微调 RAG 给知识,微调改能力

第二章:RAG 核心原理(纯概念,无代码)

本章只讲原理,不涉及任何代码或框架。所有 LangChain 实现放在第四章。

2.1 索引阶段原理

2.1.1 文档加载

目标:将各种格式的原始文档读取为程序可处理的纯文本。

挑战:不同格式有不同复杂度

格式 挑战 原理说明
PDF 表格、图片、多列布局 需要解析器提取文字流
Word 复杂格式、嵌入对象 需要解压并提取文本
Markdown 标题层级需保留 标题可作为结构信息
HTML 标签噪声 需去除标签,保留正文
纯文本 最简单 直接读取
2.1.2 文本拆分(Chunking)

为什么需要拆分?

  1. LLM 上下文窗口限制:模型一次能处理的文本长度有限
  2. 检索精度:小块更容易精准匹配问题,大块会引入噪声
  3. 成本控制:只发送相关片段,节省 token 费用

核心概念

概念 含义 示例
chunk_size 单个文本块的最大长度 500 字符 或 200 tokens
chunk_overlap 相邻块之间的重叠长度 50 字符,保留上下文连续性
separators 优先切割的位置 段落 > 句子 > 词语 > 字符

重叠的作用

文档: [A段开头...中间部分...B段结尾]
                    ↓
块1: [A段开头...中间部分]
块2: [中间部分...B段结尾]  ← 重叠部分防止信息被切断
2.1.3 文本向量化(Embedding)

什么是向量化?

将文本转换为固定维度的浮点数数组(向量),语义相似的文本在向量空间中距离更近

"苹果很好吃" → [0.12, -0.34, 0.56, ..., 0.78]  (1536维)
"水果很美味" → [0.11, -0.33, 0.55, ..., 0.79]  (距离很近,语义相似)

"汽车很快"   → [-0.45, 0.23, -0.67, ..., 0.12]  (距离很远,语义不同)

关键原则:索引阶段和检索阶段必须使用同一个 Embedding 模型,否则向量空间不匹配,无法正确比较。

2.1.4 向量数据库存储

存储的内容结构:

┌─────────────────────────────────────────────┐
│              向量数据库中的一条记录           │
├─────────────────────────────────────────────┤
│  向量:[0.12, -0.34, 0.56, ..., 0.78]       │
│  原始文本:"春节假期共7天"                    │
│  元数据:{"source": "holiday.pdf", "page": 3}│
└─────────────────────────────────────────────┘

2.2 检索与生成阶段原理

2.2.1 问题向量化

将用户问题用与索引阶段相同的 Embedding 模型转换为向量。

2.2.2 相似度搜索

常用相似度算法

算法 直观理解 公式
余弦相似度 关注方向是否一致(最常用) `cos(θ) = (A·B)/( A B )`
欧氏距离 关注绝对距离远近 d = √Σ(Ai-Bi)²
点积 向量已归一化时等价于余弦 A·B

Top-K 检索:返回与问题向量最相似的 K 个文本块。

2.2.3 构建 Prompt

核心思想:将检索到的文本块作为“上下文”注入到提示词中。

标准 RAG Prompt 模板结构

你是一个基于以下上下文回答问题的助手。

<上下文>
{这里放检索到的相关文本块}
</上下文>

问题:{用户的问题}

请基于以上上下文回答。如果上下文中没有相关信息,请说"我不知道"。
2.2.4 LLM 生成

大语言模型接收包含“上下文+问题”的 Prompt,基于上下文生成答案,而不是依赖自己的训练记忆。


第二章小结

概念 一句话解释
文本拆分 把长文档切成小块,便于检索
chunk_size 每块多大
chunk_overlap 块之间重叠多少
向量化 把文字转成数字数组
相似度搜索 找最接近问题向量的文本块
Top-K 返回最相似的 K 个块
Prompt 把“上下文+问题”打包发给 LLM

第三章:向量数据库选型

3.1 为什么需要向量数据库?

传统数据库(如 MySQL)无法高效进行向量相似度搜索

能力 传统数据库 向量数据库
精确匹配 ✅ 快 ❌ 不支持
模糊搜索 ⚠️ 慢 ❌ 不支持
向量相似度 ❌ 不支持 ✅ 快
标量过滤 ✅ 支持 ✅ 支持(多数)

向量数据库专为向量搜索设计,提供:

  • 高效索引:HNSW、IVF 等算法实现毫秒级搜索
  • 相似度计算:内置余弦、欧氏距离等
  • 混合搜索:向量 + 标量过滤

3.2 常用向量数据库对比

数据库 类型 性能 易用性 扩展性 最佳场景
Chroma 嵌入式 中等 ⭐⭐⭐⭐⭐ 学习原型、小项目
FAISS ⭐⭐⭐ 本地研究、无需持久化
Pgvector PostgreSQL扩展 中高 ⭐⭐⭐⭐ 已有 PostgreSQL 栈
Milvus 云原生 极高 ⭐⭐ 极高 十亿级向量生产环境
Redis 内存数据库 极高 ⭐⭐⭐⭐ 超低延迟场景
Elasticsearch 搜索引擎 ⭐⭐⭐ 需要混合搜索
各数据库详解

Chroma

  • 轻量级,纯 Python,API 极其简单
  • 数据持久化到本地磁盘
  • 适合:学习 RAG、原型验证、小规模应用

FAISS

  • Facebook 开源,C++ 核心,性能强悍
  • 本质是库而非完整数据库(无持久化,需自己管理)
  • 适合:学术研究、本地实验、对性能要求高但不需分布式

Pgvector

  • PostgreSQL 官方扩展,SQL 语法操作向量
  • 复用现有 PG 基础设施(备份、高可用、权限)
  • 适合:团队已有 PostgreSQL,不想引入新组件

Milvus

  • 云原生架构,支持十亿级向量
  • 功能最全:混合搜索、动态 schema、多副本
  • 适合:大规模生产系统、需要分布式扩展

Redis

  • 内存级速度,毫秒级响应
  • 支持向量搜索作为辅助功能
  • 适合:超低延迟场景、已有 Redis 基础设施

Elasticsearch

  • 老牌搜索引擎,现支持向量
  • 最大优势:关键词搜索 + 向量搜索混合
  • 适合:需要同时支持精确关键词匹配和语义匹配

3.3 选型决策树

开始
  │
  ├─ 只是学习/原型 → Chroma
  │
  ├─ 已有 PostgreSQL → Pgvector
  │
  ├─ 十亿级向量 / 云原生 → Milvus
  │
  ├─ 需要超低延迟(<10ms)→ Redis
  │
  ├─ 需要关键词+向量混合 → Elasticsearch
  │
  └─ 本地研究/高性能 → FAISS

第四章:LangChain 实战(精简版)

本章只讲核心常用代码,次要内容简要带过。

4.1 环境准备

pip install langchain langchain-community chromadb openai tiktoken
# 按需安装:unstructured pypdf docx2txt jq redis dashscope

4.2 核心组件速览

组件 作用 常用类
文档加载器 读取各种格式文档 TextLoader, PyPDFLoader, CSVLoader, Docx2txtLoader, JSONLoader
文本分割器 切分长文档 RecursiveCharacterTextSplitter(首选)
Embedding模型 文本向量化 OpenAIEmbeddings, HuggingFaceEmbeddings, DashScopeEmbeddings
向量数据库 存储与检索 Chroma(学习), Redis(生产), FAISS(本地)
检索器 查询相关文档 as_retriever(k=4)
LLM 生成答案 ChatOpenAI, init_chat_model(阿里千问)
Prompt模板 组装提示词 PromptTemplate, ChatPromptTemplate

4.3 文档加载器(常用示例)

# 纯文本
from langchain_community.document_loaders import TextLoader
loader = TextLoader("file.txt", encoding="utf-8")
docs = loader.load()

# PDF
from langchain_community.document_loaders import PyPDFLoader
loader = PyPDFLoader("file.pdf", extraction_mode="plain")
docs = loader.load()

# Word
from langchain_community.document_loaders import Docx2txtLoader
loader = Docx2txtLoader("file.docx")
docs = loader.load()

# CSV
from langchain_community.document_loaders.csv_loader import CSVLoader
loader = CSVLoader(file_path="file.csv")
docs = loader.load()

# JSON
from langchain_community.document_loaders import JSONLoader
loader = JSONLoader(file_path="file.json", jq_schema=".", text_content=False)
docs = loader.load()

其他加载器(Markdown、HTML、目录批量等)用法类似,按需查阅文档。

4.4 文本分割器

from langchain.text_splitter import RecursiveCharacterTextSplitter

splitter = RecursiveCharacterTextSplitter(
    chunk_size=500,      # 每块最大字符数
    chunk_overlap=50,    # 块间重叠
)
chunks = splitter.split_documents(docs)

4.5 Embedding 模型

# OpenAI
from langchain_openai import OpenAIEmbeddings
embeddings = OpenAIEmbeddings(model="text-embedding-3-small")

# HuggingFace 本地(中文推荐)
from langchain_community.embeddings import HuggingFaceEmbeddings
embeddings = HuggingFaceEmbeddings(model_name="BAAI/bge-large-zh")

# 阿里千问
from langchain_community.embeddings import DashScopeEmbeddings
embeddings = DashScopeEmbeddings(model="text-embedding-v3", dashscope_api_key=api_key)

4.6 向量数据库

# Chroma(学习推荐)
from langchain_community.vectorstores import Chroma
vector_store = Chroma.from_documents(chunks, embeddings, persist_directory="./db")
vector_store.persist()

# Redis(生产推荐)
from langchain_community.vectorstores import Redis
vector_store = Redis.from_documents(docs, embeddings, redis_url="redis://localhost:6379", index_name="my_index")

# FAISS(本地快速)
from langchain_community.vectorstores import FAISS
vector_store = FAISS.from_documents(chunks, embeddings)
vector_store.save_local("./faiss_index")

4.7 检索器

retriever = vector_store.as_retriever(search_kwargs={"k": 4})  # 返回 Top-4

4.8 LLM 模型

# OpenAI
from langchain_openai import ChatOpenAI
llm = ChatOpenAI(model="gpt-3.5-turbo", temperature=0)

# 阿里千问
from langchain.chat_models import init_chat_model
llm = init_chat_model(model="qwen-plus", model_provider="openai", api_key=api_key, base_url="https://dashscope.aliyuncs.com/compatible-mode/v1")

4.9 Prompt 模板

from langchain_core.prompts import PromptTemplate

template = """基于以下上下文回答问题:
上下文:{context}
问题:{question}"""
prompt = PromptTemplate(template=template, input_variables=["context", "question"])

4.10 完整 RAG Chain

from langchain_core.runnables import RunnablePassthrough

def format_docs(docs):
    return "\n\n".join(doc.page_content for doc in docs)

rag_chain = (
    {"context": retriever | format_docs, "question": RunnablePassthrough()}
    | prompt
    | llm
)

result = rag_chain.invoke("你的问题")
print(result.content)

4.11 完整问答实例(阿里千问 + Redis)

# complete_rag_example.py
import os
from langchain.chat_models import init_chat_model
from langchain_community.document_loaders import Docx2txtLoader
from langchain_core.prompts import PromptTemplate
from langchain_classic.text_splitter import CharacterTextSplitter
from langchain_core.runnables import RunnablePassthrough
from langchain_community.embeddings import DashScopeEmbeddings
from langchain_community.vectorstores import Redis

# 1. 初始化 LLM
llm = init_chat_model(
    model="qwen-plus",
    model_provider="openai",
    api_key=os.getenv("aliQwen-api"),
    base_url="https://dashscope.aliyuncs.com/compatible-mode/v1"
)

# 2. Prompt 模板
prompt_template = """
请使用以下提供的文本内容来回答问题。仅使用提供的文本信息,
如果文本中没有相关信息,请回答"抱歉,提供的文本中没有这个信息"。

文本内容:{context}
问题:{question}
回答:
"""
prompt = PromptTemplate(template=prompt_template, input_variables=["context", "question"])

# 3. Embedding
embeddings = DashScopeEmbeddings(model="text-embedding-v3", dashscope_api_key=os.getenv("aliQwen-api"))

# 4. 加载文档
loader = Docx2txtLoader("alibaba-java.docx")
documents = loader.load()

# 5. 分割文档
text_splitter = CharacterTextSplitter(chunk_size=1000, chunk_overlap=0)
texts = text_splitter.split_documents(documents)

# 6. 创建 Redis 向量库
vector_store = Redis.from_documents(
    documents=documents,
    embedding=embeddings,
    redis_url="redis://localhost:6379",
    index_name="my_index",
)

# 7. 检索器
retriever = vector_store.as_retriever(search_kwargs={"k": 2})

# 8. RAG Chain
def format_docs(docs):
    return "\n\n".join(doc.page_content for doc in docs)

rag_chain = (
    {"context": retriever | format_docs, "question": RunnablePassthrough()}
    | prompt
    | llm
)

# 9. 提问
result = rag_chain.invoke("00000和A0001分别是什么意思")
print(result.content)

第五章:参数调优与最佳实践

5.1 核心参数调优指南

chunk_size 选择
文档类型 推荐值 原因
产品问答 200-300 字符 每个问答短小精悍
技术文档 500-800 字符 段落通常较长
法律条文 300-500 字符 条款需保持独立
长篇文章 1000-1500 字符 保持上下文连贯
chunk_overlap 设置
chunk_overlap = chunk_size × (10% ~ 20%)
Top-K 选择
K 值 适用场景 优点 缺点
3 答案集中在少数段落 精准 可能遗漏信息
5 通用推荐 平衡 -
10 需要广泛上下文 信息全面 噪声增多,成本增加

5.2 进阶优化技术(简介)

技术 一句话说明
多查询检索 将问题改写成多个角度,分别检索后合并
父文档检索 存小块(精准匹配),返回大块(完整上下文)
自查询检索 从问题中提取语义条件 + 元数据过滤条件
重排序 检索更多结果,用更强模型重新排序取 Top-K

5.3 常见问题排查

问题 可能原因 解决方案
答案不相关 chunk 太大含噪声 减小 chunk_size
丢失关键信息 chunk 太小切断上下文 增大 chunk_sizeoverlap
检索不到 问题表述与文档不匹配 使用多查询检索
回答“不知道”但有文档 Embedding 模型不适合中文 BAAI/bge-large-zh
速度慢 向量库太大 添加索引、使用 GPU
成本高 Top-K 或 chunk 太大 减小 K 和 chunk_size

5.4 推荐起步配置

splitter = RecursiveCharacterTextSplitter(chunk_size=500, chunk_overlap=50)
retriever = vector_store.as_retriever(search_kwargs={"k": 4})

目标

成为AI agent工程师并且就业

帮助

需要大家的关注跟点赞,你们的关注点赞就是对我最大的鼓励,或许以后待以后我技术成熟时,你们中间的大佬还可以捞一捞我,感谢

Strategy斥资10亿美元增持比特币,持仓量逾78万枚

2026年4月13日 20:40
4月13日,比特币持仓大户Strategy宣布,于2026年4月6日至4月12日期间购买13927枚比特币,总购入价格10亿美元,平均购入价格为71902美元。截至2026年4月12日,Strategy总共持有780897枚比特币,总购入价格590.2亿美元,平均购入价格为75577美元。(界面)(界面)

被 Vibe 摧毁的版权壁垒,与开发者的新护城河 - 肘子的 Swift 周报 #131

作者 Fatbobman
2026年4月13日 22:00

Anthropic 不久前宣布,由于其最新模型 Mythos 在网络安全与代码漏洞挖掘方面的能力“过于强大”,已达到令人不安的程度,因此采取了极为罕见的克制措施:仅向 Project Glasswing 内的少数关键基础设施企业开放,不面向公众发布,普通开发者也无法通过 API 调用

良品铺子:股东达永有限拟减持不超3%公司股份

2026年4月13日 20:27
36氪获悉,良品铺子公告,股东达永有限公司因自身资金需求,计划自本次减持计划披露之日起15个交易日后的3个月内,通过集中竞价或大宗交易方式减持公司股份合计不超过1,203.00万股,即不超过公司总股本的3%。减持期间为2026年5月11日至2026年8月10日。若采取集中竞价交易方式减持,在任意连续九十个自然日内,减持股份的总数不超过公司股份总数的1%;采取大宗交易方式减持,在任意连续九十个自然日内,减持股份的总数不超过公司股份总数的2%。

图速科技发布三款新品:其具身打磨机器人全栈自研,打磨效率为人工3-4倍丨最前线

2026年4月13日 20:07

作者丨欧雪

编辑丨袁斯来

在AI+制造 新时代到来的开局之年,工业打磨这一长期依赖人工经验的“隐形工序”,正在迎来技术拐点。

4月10日,图速自动化科技(上海)有限公司正式发布砺眸®LumiSander具身智能平台与图御™|RouteMind 2.0在线路径规划系统,同步亮相的还有图匠® LumiCraft具身打磨机器人。

三款新品同时推出,标志着这家成立十年的自动化企业正加速向具身智能表面处理技术平台转型。

打磨是工业生产中的极为关键的工艺环节,下游应用广泛。硬氪了解到,工业打磨广泛应用于轨道交通、航空航天、风力发电、汽车制造等领域。长期以来,打磨环节工艺高度依赖经验,劳动强度大、作业环境恶劣。

图速科技创始人葛旭刚在发布会现场表示,当前AI在工业中的应用,更多是为工业机器人带来优化升级,远未达到“自主智能”的成熟状态。

葛旭刚认为,“目前具身智能打磨处于‘条件智能打磨阶段’,本质上是集成AI模型进行辅助优化的条件交互阶段,实现参数自优化与人工协作,即AI辅助决策。”

这一判断为图速的技术路径提供了注脚。砺眸®LumiSander平台并非试图完全替代人工经验,而是通过数据、算法与模型的可演进架构,持续沉淀工艺知识,在关键决策节点为操作人员提供更优建议,逐步实现从“人主导”到“人机协同”的过渡。

砺眸®LumiSander平台已形成六大功能模块:智能体广场、数据管理、算法管理、训练管理、模型管理与容器管理。其中,智能体广场覆盖汽车工业、轨道交通、航天航空、风力发电等方向,可针对不同材质、曲面、缺陷快速完成工艺理解与策略生成。

而图速此次推出的图御™|RouteMind 2.0,机器人在线路径规划软件,在国内工业制造领域首次实现从点云建模到打磨路径在线规划再到机器人柔性自适应打磨全流程自动化。

图眸®SurfaEye AI视觉瑕疵检测系统搭载光流相机,识别精度达0.15毫米;打磨机器人采用自适应力控技术精准修复。从检测到修复完成仅需1分钟,作业效率达到人工检测修复的3至4倍。

此外,这次最受市场关注的图匠® LumiCraft具身打磨机器人在现场进行了演示。

该设备进一步拓展了应用边界,搭载自主移动平台,配备SLAM导航与避障系统,定位精度达2厘米,最大行进速度1米/秒,可灵活穿梭于车间各工位。机械臂末端搭载高精度力控工具,结合力位混合控制与机器视觉,实现对大型一致性较差的工件表面处理的多工艺融合。

针对行业普遍头疼的耗材更换问题,图匠® LumiCraft配置了智能磨料库与自动更换系统,旧耗材拆卸与新耗材更换全程仅需30秒,系统还配备了耗材的寿命检测系统,节约生产成本。同时,设备搭载高真空集尘系统,灰尘回收率达95%以上,显著改善了作业环境。对于超大工件多工位打磨,图匠® LumiCraft还通过激光跟踪技术完成二次精准定位,有效解决区域衔接难题。

图匠® LumiCraft具身打磨机器人进行现场演示(图源/企业)

图速科技成立于2016年,总部位于上海松江,2025年在浙江湖州南浔落成3000平方米工程中心。公司核心业务聚焦轨道交通、航空航天、风力发电、汽车制造四大行业,目前已与多家头部客户形成深度合作。

目前,公司已在华东、华南、西南、西北、华北及东北布局服务网络,具备全国快速响应能力。公司方面表示,未来将进一步拓展船舶、低空经济、装备制造及汽车后市场等新兴增长领域。

蔚蓝锂芯:2025年净利润7.11亿元,同比增长45.66%

2026年4月13日 19:59
36氪获悉,蔚蓝锂芯公告,2025年实现营业收入81.13亿元,同比增长20.09%;归属于上市公司股东的净利润7.11亿元,同比增长45.66%;基本每股收益0.6164元。公司拟向全体股东每10股派发现金红利1元(含税),送红股0股(含税),以资本公积金向全体股东每10股转增4.8股。
❌
❌