11-02 上下文太长会带来什么问题?
✅上下文太长会带来什么问题?前面一个章节中我们介绍了一个新的概念,叫做Context,即上下文,他包含了很多内容,提示词、工具、知识、记忆等等等等,相信大家最直观的感受就是上下文的内容太多了,尤其是在很复杂的agent中,有很多工具、指令、和知识的情况下,上下文会爆炸。
早在23年的时候,就有人提出上下文太长会影响模型的效果,论文《Lost in the Middle: How Language Models Use Long Contexts》
在这篇论文中,作者通过一系列精心设计的实验揭示了一个关键现象:当前的语言模型在长上下文中对信息的位置非常敏感,往往更关注开头和结尾的内容,而忽略中间部分的信息。作者将这种现象称为“Lost in the Middle”(过程中迷失/遗忘初始目标)。
针对各种主流的LLM做了试验之后,得出以下结论:
位置偏差显著:几乎所有模型在关键信息位于上下文开头或结尾时表现最好,而在中间位置时性能(模型效果)急剧下降。
增加上下文长度 ≠ 提升效果:即使模型声称支持超长上下文(如32K tokens),其实际有效利用信息的能 ...
11-01 什么是Context,和Memory、Prompt、Token之间的区别?
✅什么是Context,和Memory、Prompt、Token之间的区别?
在大语言模型(LLM)和人工智能对话系统中,Context(上下文)、Memory(记忆)、Prompt(提示) 和 Token(标记) 是四个密切相关但含义不同的概念。下面分别解释它们的区别与联系:
TokenToken 是模型处理文本时的最小单位。它可以是一个字、一个词,甚至是一个标点符号,具体取决于所使用的分词器(Tokenizer)。
所有输入和输出文本都会被转换为 Token 序列,供模型处理。模型有最大上下文长度限制(如 8192、32768 tokens),超过会截断或报错。
经验说明:在实际开发中,程序员可能更关心上下文的字符数,Token与字符数量之间是存在一些近似关系的,但是会因具体模型及其分词器实现而有所差异。一般经验而言,仅供参考:1个Token约对应3~4个英文字符;通常约对应 1.5~1.8 个中文字符,工程上通常取约1.7个中文字符作为经验估算值。
PromptPrompt 是用户输入给模型的指令或问题,用于引导模型生成期望的输出。Prompt 本身是由 Toke ...
10-22 工作流实战:舆情分析助手——数据保存与更新
✅工作流实战:舆情分析助手——数据保存与更新我们从微博上提取到用户发帖内容后,要对他做舆情分析,分析之后我们需要把数据持久化下来,这样方面我们做报表展示,以及跟进。
这里我们用n8n支持的mysql
他提供了很多操作,包括增删改查都支持的。我们有两个节点,一个是负责插入微博原文内容信息的,一个是负责把LLM分析出的舆情结果信息更新到mysql中的,所以一个是insert一个是update。
先在你自己的mysql中建表一张:
1234567/******************************************//* DatabaseName = ai_db *//* TableName = user_sentiment_posts *//******************************************/CREATE TABLE `user_sentiment_posts` ( `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID ...
10-21 工作流实战:舆情分析助手——LLM节点做舆情分析
✅工作流实战:舆情分析助手——LLM节点做舆情分析
提取到了微博内容之后,我们就需要通过大语言模型对他进行语义分析,判断是否有舆情了。
在这个AI Agent节点中,我们首先需要配置prompt:
123456789你是一位顶尖的数字舆情分析师,拥有社会学、传播学、消费者行为学和自然语言处理的复合背景。现在,请基于我提供的以下两项信息,执行一次深度、客观、结构化的舆情分析:### 工作流程1、先分析一下原始用户发帖内容:"{{ $('微博内容拆分').item.json.content }}"讨论的主体是不是目标产品名称:"腾讯地图",如果是则继续执行下一步,如果不是,则本条情感分析结果直接标记为neutral2、判定整体情感极性(正面 / 中性 / 负面)、给出置信度(0–100%)、指出关键情感触发词或语句⚠️ 注意事项:不臆测未在文本中体现的信息避免主观情绪化语言,保持专业中立若发帖内容模糊或信息不足,请明确说明“信息不足,无法准确判断”,并指出缺失的关键要素请严格按照 ...
10-20 工作流实战:舆情分析助手——微博内容提取
✅工作流实战:舆情分析助手——微博内容提取我们拿到前5页网页爬取后的结果之后,就需要把里面的微博内容解析出来,前面说过了,直接用他的json内置的prompt方式解析会出现丢数据的情况,于是我想到的是自己写代码解析,于是:
新建一个微博内容提取的code节点,其中的代码如下:
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849// Loop over input items and add a new field called 'myNewField' to the JSON of each one// 基准当前时间 const offsetHours = 8; const now = new Date(); const utc = now.getTime() + (now.getTimezoneOffset() * 60000); const NOW = new Date(utc + (offsetHours ...
10-19 工作流实战:舆情分析助手——N8N配置firecrawl实现分页爬取
✅工作流实战:舆情分析助手——N8N配置firecrawl实现分页爬取
n8n中内置了firecrawl的插件,提供了前面我们介绍的常用的api:
我们可以借助这个插件做网页的爬取,我们使用”scrape a url and get its content”这个操作,然后这个操作有两种配置方式,一种是基于他的配置填写参数,另外一种是我们自定义Body做调用。
这里我试了之后,发现想要跑通的话,只能用custom body的方式,因为使用基于配置的方式的话,header没办法设置。(我试了很多办法,都设置不成功)
使用custom配置的方式的话,就把整个请求体,都放到这个custom properties中就行了:
这里面需要注意的是,如果直接从firecrawl中复制过来的参数直接用的话,会报错,提示:
{ “success”: false, “code”: “BAD_REQUEST”, “error”: “Either ‘milliseconds’ or ‘selector’ must be provided, but not both.”, “det ...
10-18 工作流实战:舆情分析助手——爬虫工具firecrawl介绍
✅工作流实战:舆情分析助手——爬虫工具firecrawl介绍
Firecrawl 是一个开源的网页爬取和数据提取工具,专为将网页内容转化为结构化、可编程使用的格式而设计。它结合了现代浏览器自动化(如 Puppeteer 或 Playwright)与大语言模型(LLM)的能力,能够智能地解析网页内容、提取关键信息,并支持将整个网站“爬取+总结”成适合 AI 应用使用的格式。
智能内容提取:Firecrawl 不只是抓取 HTML,还能利用 LLM 理解页面语义,自动识别正文、标题、元数据等,过滤广告、导航栏等噪声内容。
批量爬取与网站地图支持:可以从 sitemap.xml 自动发现页面,或按 URL 列表进行递归爬取,适用于大规模数据采集任务。
输出结构化数据:提取结果通常为 JSON 格式,包含 clean_content(清洗后的正文)、metadata(标题、描述、URL 等)、以及可选的 LLM 总结。
API 优先设计:Firecrawl 提供 RESTful API,便于集成到 AI 应用、RAG(检索增强生成)系统、知识库构建流程中。
开源 & 可 ...
10-17 工作流实战:舆情分析助手——整体流程
✅工作流实战:舆情分析助手——整体流程
我们需要实现一个舆情监控和分析的助手,可以从社交媒体,如微博、小红书等自动爬取帖子,然后分析其中的舆情信息,比如是否有大量的吐槽,或者反馈产品不可用等问题。
主要用到以下技术:
工作流:n8n
网页爬取:firecrawl
舆情分析:LLM
数据持久化:MySQL
数据格式转换:Python/Javascript代码
整个流程如下:
完整流程的json文件:
https://nfturbo-file.oss-cn-hangzhou.aliyuncs.com/llm/%E8%88%86%E6%83%85%E5%88%86%E6%9E%90.json
10-16 Agent、AI Workflow、Agentic Workflow傻傻分不清楚?
✅Agent、AI Workflow、Agentic Workflow傻傻分不清楚?Agent:基于LLM,会用工具、能做记忆,有规划和行动能力的智能体。
AI Workflow:在工作流中引入LLM节点,实现流程编排,流程实现固定的功能。
Agentic Workflow:在工作流中引入Agent,关键步骤由Agent驱动的一个动态工作流。
AI Workflow也可以是Agent,如果一个工作流,他引入了LLM节点,并且提供了记忆的能力,并且还能用上工具,那么他就是一个Agent。所以,工作流也是实现Agent的一种方式。那么同理,Agentic Workflow也是Agent
Agent可以用来构建Agentic Workflow,如果一个工作流中用到了Agent,可以是单Agent或者多Agent,那么,这个工作流就是个Agentic Workflow
Workflow的优势就是确定性高,但是缺点就是对于一些复杂场景,提前构造工作流就比较复杂。而Agent的优势就是灵活性好,但是缺点就是确定性可能没那么高。
但是其实没有好坏之分,有的场景步骤都是固定的, ...
10-15 Spring AI Alibaba Graph的使用
✅Spring AI Alibaba Graph的使用前面我们介绍的都是LangGraph,但是,对于Java开发来说,在Java中如何实现呢?
在Spring AI Alibaba 1.1推出之前,想要实现还是比较复杂的(幸好在写文档的2天前,1.1正式版推出了,要不然…….)。
引用一下官方说明:
Spring AI Alibaba Graph 可以改变您构建智能代理的思维方式。使用 Graph 构建代理时,您将首先把它分解为称为节点(nodes)的离散步骤。然后,描述每个节点的不同决策和转换。最后,通过一个共享的状态(state)将节点连接起来,每个节点都可以读取和写入该状态。在本教程中,我们将指导您完成使用 Spring AI Alibaba Graph 构建客服邮件处理代理的思维过程。
在这个版本中,Spring AI Alibaba 项目从架构上包含如下三层:
Agent Framework,是一个以 ReactAgent 设计理念为核心的 Agent 开发框架,使开发者能够构建具备自动上下文工程和人机交互等核心能力的Agent。
Graph,graph 是一个 ...
