
智能体开发
文章平均质量分 94
一起学开源
热衷架构,持续关注AI发展以及便捷的智能体开发,欢迎同道中人共同交流,希望在CSDN中能相识更多的精英.
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
MCP的推出将给未来的开发带来哪些变革?
* MCP(Model Context Protocol,模型上下文协议)** 是 AI 智能体开发中的一项关键技术,旨在为 AI 模型与外部工具、数据和服务提供标准化的交互接口。它由 Anthropic 在 2024 年 11 月推出,并迅速获得 OpenAI、百度等科技巨头的支持~说人话,基于他这个协议可以将原来的智能体分为,调大模型写的客户端和调各种工具的工具应用,从而最大程度的复用工具能力,简化智能体的开发,我将其理解为智能体的分布式架构。网关和业务微服务的关系。MCP整体架构。原创 2025-04-18 15:26:18 · 494 阅读 · 0 评论 -
MCP、A2A、Function Calling:AI架构设计的三驾马车
在AI技术快速发展的今天,MCP、A2A和Function Calling这三种架构设计和技术标准为我们提供了不同的视角和解决方案。它们各自具有独特的优点和应用场景,同时也存在一定的局限性。通过深入理解它们之间的关系和特点,我们可以更好地选择适合的技术方案,推动AI应用的开发和落地。未来,随着技术的不断融合和创新,AI将具备更强的协作能力和更广泛的应用范围,为我们的生活和工作带来更多的便利和价值。原创 2025-04-17 16:05:17 · 1000 阅读 · 0 评论 -
Linux本地安装N8N,一路解决各种问题
本笔记记录本地安装N8N 的过程,有遇到一些小问题,在此记录首先检查服务器的Docker版本docker - v本地运行镜像拉取和运行命令检查是否运行成功从如上效果来看, 已经安装成功,接下来直接访问即可,如果是http://localhost:5678/;默认应该出现如下效果(初始的页面忘记截图,应该根据系统初始化参与信息调研,然后申请一个免费的KEY,激活后就可以看到如下界面)要其他电脑访问,需要通过IP地址+端口访问,并且需要开启HTTPS,要么就禁用HTTPS。原创 2025-04-15 15:05:09 · 3246 阅读 · 0 评论 -
第9章:LangChain结构化输出-示例6(设置系统消息和用户消息模版)
定义了一个接口TextUtils,用于封装文本处理功能。translate(String text, String language):将文本翻译为目标语言。summarize(String text, int n):将文本总结为n个要点。解析方法定义:每个方法都通过@UserMessage注解定义了用户消息模板,{{text}}和{{language}}会被替换为方法参数。这使得AI能够理解用户的意图,并生成相应的响应。系统消息。原创 2025-02-25 06:30:00 · 816 阅读 · 0 评论 -
第9章:LangChain结构化输出-示例5(基于大模型如何精确匹配POJO的字段)
定义了一个接口RecipeExtractor,用于封装从文本中提取并构造Recipe对象的功能。接口中包含一个方法,用于从文本中提取Recipe对象。解析方法定义:extractRecipeFrom(String text)方法用于从文本中提取Recipe对象。注解使用:@UserMessage注解定义了用户消息模板,{{it}}会被替换为方法参数(即要提取信息的文本)。这使得AI能够理解用户的意图,并生成相应的响应。定义了一个Recipe类,用于表示提取的POJO对象。原创 2025-02-24 06:30:00 · 1261 阅读 · 0 评论 -
第9章:LangChain结构化输出-示例4(基于大模型从自然语言中提取POJO)
POJO提取服务通过定义一个接口PersonExtractor来封装POJO提取功能。接口中包含一个方法,用于从文本中提取并构造Person对象。解析方法定义:extractPersonFrom(String text)方法用于从文本中提取Person对象。注解使用:@UserMessage注解定义了用户消息模板,{{it}}会被替换为方法参数(即要提取信息的文本)。这使得AI能够理解用户的意图,并生成相应的响应。定义了一个Person类,用于表示提取的POJO对象。原创 2025-02-23 21:10:10 · 832 阅读 · 0 评论 -
扩展知识1: LangChain中动态生成服务实现的工作原理
动态生成服务实现的基础是接口和注解的定义。开发者首先定义一个接口,接口中的每个方法都通过注解来描述其功能和行为。接口:定义了服务的契约,即可以被调用的方法。注解:提供了方法的具体行为描述,例如用户消息模板(@UserMessage)或系统消息(@SystemMessage)。动态生成服务实现是LangChain4j框架的核心功能,它通过接口和注解定义服务契约,动态创建代理对象来实现接口方法。这种机制使得开发者无需手动实现具体逻辑,而是由框架根据注解信息动态生成实现。原创 2025-02-28 06:30:00 · 687 阅读 · 0 评论 -
第9章:LangChain结构化输出-示例3(日期和时间提取服务)
LangChain借助大模型从自然语言中提取日期和时间,日期和时间提取服务通过定义一个接口DateTimeExtractor来封装日期和时间提取功能。extractDateFrom(String text):从文本中提取日期(LocalDate)。extractTimeFrom(String text):从文本中提取时间(LocalTime)。extractDateTimeFrom(String text):从文本中提取日期和时间(LocalDateTime)。解析方法定义。原创 2025-02-23 20:39:00 · 844 阅读 · 0 评论 -
第9章:LangChain结构化输出-示例2(数字提取服务)
LangChain结构化输出,关键内容提取;数字提取服务通过定义一个接口NumberExtractor来封装数字提取功能。extractInt(String text):从文本中提取整数(int)。extractLong(String text):从文本中提取长整数(long)。extractBigInteger(String text):从文本中提取大整数(BigInteger)。extractFloat(String text):从文本中提取浮点数(float)。原创 2025-02-23 20:02:31 · 961 阅读 · 0 评论 -
第9章:LangChain结构化输出-示例1(情感分析AI服务)
LangChain结构化输出,情感分析服务通过定义一个接口SentimentAnalyzer来封装情感分析功能。:分析文本的情感倾向,并返回一个Sentiment枚举值(POSITIVE、NEUTRAL、NEGATIVE)。:判断文本是否具有正面情感,并返回一个布尔值。")情感分析服务(SentimentAnalyzer)通过定义接口、使用注解和动态生成服务实现,展示了LangChain4j框架的强大功能。这种实现方式不仅简化了开发流程,还提高了代码的可维护性和可扩展性。原创 2025-02-23 20:05:51 · 1133 阅读 · 0 评论 -
第9章:LangChain让大模型结构化输出
文章详细介绍了LangChain4j中如何使用结构化输出(Structured Outputs)。文章还详细介绍了如何在低级ChatLanguageModel API和高级AI服务API中使用JSON Schema,以及如何通过@Description注解提供更详细的指令。此外,还列举了使用JSON Schema时的限制和注意事项。这种结构化输出功能使得LLM生成的输出可以更方便地被应用程序解析和使用。原创 2025-02-23 13:42:18 · 974 阅读 · 0 评论 -
第8章:LangChain检索增强生成RAG--2.4Advanced RAG【高级RAG】
高级 RAG(Advanced RAG)通过多个模块化组件(如查询转换器、查询路由器、内容检索器、内容聚合器和内容注入器)来增强检索功能。这种实现方式提供了高度的灵活性和定制化能力,适用于需要复杂检索逻辑的场景。通过合理配置这些组件,开发者可以构建高效、智能的问答系统。原创 2025-02-21 19:58:17 · 876 阅读 · 0 评论 -
第8章:LangChain检索增强生成RAG--2.3Naive RAG
Naive RAG 是一种简单但有效的 RAG 实现,适用于需要快速启用 RAG 功能的场景。通过配置 EmbeddingStoreContentRetriever 和 AiServices,可以轻松地将文档内容检索功能集成到 AI 服务中。这种方法虽然简单,但在许多场景下已经足够有效,尤其是在需要快速原型开发和概念验证时。原创 2025-02-21 19:22:45 · 453 阅读 · 0 评论 -
第8章:LangChain检索增强生成RAG--2.2Core RAG APIs
功能:对文档进行总结,并将总结存储在元数据中。目的提高效率:通过总结,语言模型可以更快地理解文档的核心内容。改善搜索:总结可以被包含在每个 TextSegment 中,从而提高搜索的准确性。示例由于没有一种通用的解决方案,LangChain4j 建议开发者根据自己的数据特点实现自己的 DocumentTransformer。建议自定义逻辑:根据你的数据格式和需求,实现特定的转换逻辑。灵活性:自定义转换器可以更好地适应你的应用场景。示例@Override// 自定义转换逻辑。原创 2025-02-21 19:15:31 · 679 阅读 · 0 评论 -
第8章:LangChain检索增强生成RAG--2.1Easy RAG实现
Easy RAG 是 LangChain4j 提供的一个简化版的检索增强生成(RAG)功能,旨在帮助开发者快速上手并使用 RAG 技术核心功能简化文档处理:Easy RAG 支持多种文档格式(如 txt、csv、pdf、md、doc、docx 等),并自动将文档内容转换为嵌入向量,存储在嵌入存储(向量数据库)中。提供了从文件系统加载文档的功能,支持单个文件或整个目录的加载。自动嵌入与存储:使用默认的嵌入模型(如 bge-small-en-v1.5)将文档片段转换为嵌入向量,并存储在内存向量数据库(原创 2025-02-21 13:59:56 · 1151 阅读 · 0 评论 -
第8章:LangChain检索增强生成RAG--1概述
本章主要介绍基于 LangChain4j 中的 RAG(Retrieval-Augmented Generation,检索增强生成)概念及其实现方式。RAG 是一种通过检索相关知识来增强语言模型生成能力的技术,特别适用于需要结合特定领域知识或私有数据的场景。原创 2025-02-21 13:25:32 · 583 阅读 · 0 评论 -
第7章:在LangChain中如何调用函数Tools (Function Calling)
这篇文章详细介绍了LangChain4j中工具(Tools)的概念和使用方法。工具允许LLM在生成文本的同时,触发外部操作(如调用API、执行代码等)。工具的基本概念:工具是LLM可以调用的外部功能,用于增强其能力(如数学计算、网络搜索等)。工具的声明和使用:通过ToolSpecification和@Tool注解,开发者可以定义工具并将其集成到LLM的交互中。工具的执行和反馈:LLM可以在响应中表达调用工具的意图,开发者需要执行工具并将结果反馈给LLM。高级抽象。原创 2025-02-20 21:46:33 · 1507 阅读 · 0 评论 -
第6章:基于LangChain如何开发Agents,附带客户支持智能体示例
大多数基本的“代理”功能可以通过高层次的 AI Service 和 Tool APIs 构建。ChatLanguageModel(聊天语言模型)ToolSpecification(工具规范)ChatMemory(聊天记忆)本文简要介绍了 LangChain4j 中的“代理”概念,并提供了构建代理的两种方法:使用高层次的 AI Service 和 Tool APIs,或者使用低层次的 ChatLanguageModel、ToolSpecification 和 ChatMemory API。原创 2025-02-20 21:14:29 · 1099 阅读 · 0 评论 -
第4章:在LangChain中如何实现响应式流(Response Streaming)
对于ChatLanguageModel和LanguageModel接口,LangChain4j提供了对应的StreamingChatLanguageModel和StreamingLanguageModel接口。这些接口的API类似,但支持流式传输响应。它们接受一个实现了StreamingResponseHandler接口的对象作为参数。// 当生成下一个token时调用default void onComplete(Response<T> response) {} // 当LLM完成生成时调用。原创 2025-02-20 20:22:43 · 1361 阅读 · 0 评论 -
第5章:在LangChain中如何使用AI Services
这篇文章详细介绍了 LangChain4j 中的 AI Services 概念,展示了如何通过高层次的抽象来简化与大语言模型(LLM)的交互。AI Services 的核心思想是隐藏底层复杂性,让开发者专注于业务逻辑,同时支持聊天记忆、工具调用和 RAG 等高级功能。通过示例和代码片段,文章展示了如何定义和使用 AI Services,以及如何将它们组合起来构建复杂的 LLM 驱动的应用程原创 2025-02-20 20:07:13 · 1184 阅读 · 0 评论 -
第3章:在LangChain中如何设置模型参数
这篇文章详细介绍了如何在LangChain4j中配置和调整模型参数,以优化模型的输出和性能。模型参数的作用:如何通过调整参数来控制模型的输出(如创造力、确定性、生成内容的量)以及连接性(如API密钥、超时时间等)。参数设置方式:通过静态工厂或构建器模式创建模型,并为每个参数指定值。在Quarkus和Spring Boot中的配置。原创 2025-02-20 17:08:38 · 973 阅读 · 0 评论 -
第1章:LangChain4j的聊天与语言模型
本文主要介绍了LangChain4j中与语言模型和聊天模型相关的API。强调了ChatLanguageModel的重要性,并详细解释了如何通过ChatMessage管理多轮对话、支持多模态输入,以及如何利用Kotlin扩展进行异步处理。这些功能使得LangChain4j在构建聊天应用时更加灵活和强大。这是LangChain开发智能体的系列文档,欢迎连读第1章:LangChain4j的聊天与语言模型第2章:如何基于LangChain4j实现聊天记忆第3章:在LangChain中如何设置模型参数。原创 2025-02-20 16:25:30 · 1177 阅读 · 0 评论 -
第2章:如何基于LangChain4j实现聊天记忆
文章详细介绍了LangChain4j中的ChatMemory功能,包括如何管理和维护聊天消息、如何实现驱逐策略、如何进行持久化存储,以及对SystemMessage的特殊处理。ChatMemory是构建聊天应用时管理对话状态的重要工具,通过合理使用驱逐策略和持久化功能,可以优化性能、降低成本,并实现更复杂的对话逻辑。原创 2025-02-20 16:32:19 · 1582 阅读 · 0 评论