自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(343)
  • 收藏
  • 关注

原创 LangChain (LCEL) 和 AutoGen 的 适合场景,核心理念

摘要: AutoGen和LangChain在处理多代理协作任务时有不同哲学。LangChain的LCEL更适合线性、确定性的工作流,通过管道式数据流实现清晰步骤;而AutoGen强调代理间的动态协作,适合非确定性、需要灵活交互的复杂任务。LangChain采用函数式编程风格,AutoGen更像面向角色的团队会议。对于严格步骤的任务,LangChain更直接;涉及多代理动态协作时,AutoGen更合适。两者可结合使用,LangChain处理结构化部分,AutoGen管理复杂交互。

2025-07-14 16:39:12 621

原创 LangChain 层级协作(Hierarchical Collaboration)模式的核心思想

这篇文章将深入探讨LangChain中的层级Agent协作模式,并以“Agent即工具”的核心思想贯穿全文。

2025-07-09 16:51:47 717

原创 Langchain 0.3 是否能直接调用 MCP Server

摘要: Langchain 0.3不能直接调用MCP Server,必须通过MCP Client作为中间层。这种三层架构遵循了关注点分离和协议抽象的设计原则,Langchain Agent负责业务逻辑,MCP Server提供技术能力,而MCP Client则处理协议转换和通信细节。直接调用会导致代码重复、职责混乱、维护困难和扩展性差。MCP Client作为桥梁,确保系统清晰、健壮且易于扩展,是现代软件工程的最佳实践。

2025-07-08 11:10:20 225

原创 langchain :记忆组件混淆概念澄清 & 创建Conversational ReAct后显示指定 记忆组件

LangChain记忆组件与Agent设计解析 记忆组件设计:create_react_agent本身不包含记忆功能,记忆管理由AgentExecutor负责。开发者需在创建AgentExecutor时通过memory参数显式指定记忆类型(如ConversationBufferWindowMemory),实现对话历史的动态加载与保存。 工具参数的双重作用:create_react_agent需要工具列表(tools)用于构建LLM的决策提示(显示工具描述),而AgentExecutor需要相同的工具列表用于

2025-07-07 16:13:20 691

原创 LangChain 文本摘要策略

本文介绍了LangChain中三种文本摘要策略的实现方式: Stuff策略:一次性处理整个文档,适用于短文本,类似于_execute_single_task中单个任务的直接执行。 Map-Reduce策略:将文档分割后并行处理再合并,对应_execute_workflow_tasks中的多任务协调机制。 Refine策略:迭代优化摘要内容,类似任务失败后的渐进式重试逻辑。 每种策略在LangChain中通过load_summarize_chain指定类型实现,核心区别在于文档处理粒度(整体/分块/迭代)。选

2025-07-04 15:18:38 833

原创 Langchain 实现自治多代理系统

本文展示了三种实现多代理协作的方案:1)条件触发式协作,通过轮询机制让研究员、作家和评审员依次工作;2)事件总线模式,使用消息队列实现代理间异步通信;3)基于LangGraph的状态机方案,通过有向图定义工作流和条件分支。方案采用差异化配置,研究员使用Wikipedia工具(temperature=0.7),作家专注文本生成(temperature=0.4),评审员设置严格标准(temperature=0.3)。高级方案支持动态路由和循环迭代,其中LangGraph实现的状态机最为推荐,能优雅处理复杂协作逻

2025-07-03 14:34:20 201

原创 Elasticsearch API访问权限控制:禁用外部端点访问

摘要:本文详细介绍了在Docker部署的Elasticsearch 8.17.0中实现细粒度API权限控制的完整方案。通过对比网络配置、nginx代理和ES原生安全功能三种方案,最终采用X-Pack Security角色权限机制,成功实现对外禁用/_cat敏感API的同时保留Grafana的完整访问权限。文章重点剖析了容器数据安全、配置挂载、APIKey认证等关键环节的5个典型踩坑点,并提供了角色创建、用户管理、密码修改等具体操作步骤。最终形成的权限矩阵清晰区分了超级管理员、应用服务和外部用户的不同权限层级

2025-06-23 15:23:18 1107

原创 用户故事拆分指南——敏捷需求拆分的核心方法与原则

管理”是开放性动词 → 拆解为【发布】【修改】【暂停】【定时】【统计】5个子故事。“用户可向境外账户转账(支持VISA/MasterCard/银联,实时汇率计算)”新闻发布系统V1:用户上传Word → 自动转网页HTML(审核走线下OA)“作为HR,我可以管理发布的职位(含定时发布、修改、暂停、数据分析)”:计划(PI/迭代计划)→ 执行(开发/测试)→ 评审回顾 → 交付。列出数据属性(如简历的【基本信息】【工作经历】【教育背景】)微信加好友 → 拆分为【搜微信号】【扫二维码】【手机号添加】

2025-06-16 11:31:48 674

原创 LLM :Function Call、MCP协议与A2A协议

由Anthropic提出的开放标准,旨在标准化LLM与外部工具/数据源的交互方式,解决“M×N”集成问题(即M个模型需适配N个工具的问题)。:由Google主导的开放协议,定义不同Agent(如招聘Agent、物流Agent)之间的通信规则。:由OpenAI等公司推动,允许大语言模型(LLM)通过自然语言指令调用外部API或工具(如天气查询、数据库操作等)。例如,物流Agent发现库存不足时,通过A2A通知采购Agent补货48。:A2A协议协调Agent(如客服Agent、订单Agent)。

2025-05-07 21:20:06 1223 2

原创 IDEA设置手动代理,用户名密码被加密无法通过代码修改的解决方案

use a proxy auto-config (PAC) file. 开启自动检测代理设置 - 自动代理配置URL。IEDA的代理配置文件账号密码是存在 proxy.settings.pwd 文件中的。如果用户从未配置过proxy, 那么IDEA不存在 proxy.setting.xml文件夹。

2025-04-23 16:31:44 317

原创 paddleOCR项目打包分发后运行报错“tqdm\std.py“, line 452, in fp_write File

在 C:\Users\nihao.dong\下找到模型位置 .paddleocr。2. 需要修改 paddleocr.py的搜索路径代码。1. paddleOCR会根据固定路径去找模型。完毕双击exe,程序会基于当前目录查询模型。然后粘贴复制到dist文件夹下。生成了dist文件夹。

2025-03-27 16:35:08 856

原创 译:PP-DocBee: Improving Multimodal Document Understanding Through a Bag of Tricks

随着数字化的快速发展,各种文档图像在生产和日常生活中得到了更广泛的应用,对文档图像内容进行快速准确解析的需求变得日益迫切。因此,本文提出了PP-DocBee,一种用于端到端文档图像理解的新型多模态大语言模型。首先,我们开发了一种针对文档场景的数据合成策略,构建了一个多样化的数据集,以提高模型的泛化能力。然后,我们应用了一些训练技巧,包括动态比例采样、数据预处理和OCR后处理策略。

2025-03-21 15:57:55 1100

原创 译:《Converting a Hugging Face Model to a GGUF Model》转化HuggingFace原生模型为GGUF格式

前提:在部署视觉模型遇到LM studio中无法搜索到deepseek-vl译文:博客《Converting a Hugging Face Model to a GGUF Model》的。

2025-03-18 14:36:07 984

原创 指令型模型与推理型模型在目标导向与可重复性方向的优缺点分析

例如,为某类产品描述生成设计的提示,只要产品类型和描述需求不变,就可以反复使用该提示让模型生成符合要求的产品描述内容,这体现了工程所具备的可重复性特点,有助于提高生产效率和保证质量的稳定性。例如,在策略推理中,通过设计提示词引导模型生成符合竞争目标的策略(如商业谈判中的最优报价),显著提升了模型在动态环境中的决策效率。例如,在多模态任务中,指令若未明确对齐视觉与文本信息,可能生成与意图不符的结果。:结合指令的明确性与推理的灵活性,例如在指令中嵌入推理步骤模板,平衡效率与准确性。例如,在长文本检索任务(

2025-02-08 14:53:58 1063

原创 Copilot量化指标参数及其方法

同时,本文还介绍了市面上的 Dashboard 工具,以及这些工具中突出展示的指标。GitHub 提供了一个 Metrics Dashboard,可以可视化展示 GitHub Copilot 的使用情况。GitHub 提供了一个 Power BI 应用,可以用来监控和分析 GitHub Copilot 的使用情况。快速预览:此文列出了 GitHub Copilot Metrics API 提供的指标列表,其中核心的量化指标包括。分析代码补全的接受率与错误率(如后续测试中发现的缺陷),评估生成代码的可靠性。

2025-02-07 15:35:02 1467

原创 如何评定 Ollama 本地部署 DeepSeek-R1-Distill-Qwen-1.5B 模型的运行速度和稳定性的方法

如果模型在运行过程中对系统资源的占用稳定,没有出现资源占用过高或波动过大的情况,则说明模型的稳定性较好。例如,在部署模型后,可以使用 Ollama 的命令行界面输入相关命令来启动性能测试工具,获取模型的性能报告。在模型运行过程中,记录模型返回错误结果的比例。例如,在模型处理每个请求时,将输出结果与预期结果进行对比,记录错误结果的数量,计算错误率。例如,如果模型的推理时间较短、吞吐量较高、错误率较低且在长时间运行过程中表现稳定,则可以得出结论:该模型在本地运行时具有较好的速度和稳定性。

2025-02-05 16:39:37 1541

原创 VS2022 无法使用GitHub账户登录/无法使用copilot 解决方案

如果出现不能正常使用的情况,比如正常登录后无法激活,或者已激活显示disabled,需要注意一下自己的github账号是否被flag过。(曾经和别人拼车过copilot企业版或者在已毕业情况下申请过学生免费版copilot)

2024-12-25 00:51:27 3087

原创 结构化的Prompt

在自然语言处理和人工智能领域,结构化Prompt框架是一种帮助我们更有效地与AI模型交流的工具。以下是一些常见的结构化Prompt框架,它们可以帮助我们构建更精确、更高效的指令:1. BROKE框架: - 背景(Background):提供任务的上下文或背景信息。 - 角色(Role):定义AI模型在交互中的角色。 - 目标(Objective):明确任务的目标。 - 关键结果(Key Results):定义期望的具体效果。 - 演变(Evolve):根据反馈调整和改进对话策略

2024-12-12 16:07:43 1178

原创 LLM:Embedding

这些实数向量可以被计算机更好地理解和处理。嵌入背后的主要想法是,相似或相关的对象在嵌入空间中的距离应该很近。举个例子,我们可以使用词嵌入(word embeddings)来表示文本数据。在词嵌入中,每个单词被转换为一个向量,这个向量捕获了这个单词的语义信息。例如,"king" 和 "queen" 这两个单词在嵌入空间中的位置将会非常接近,因为它们的含义相似。而 "apple" 和 "orange" 也会很接近,因为它们都是水果。而 "king" 和 "apple" 这两个单词在嵌入空间中的距离就会比较远,因

2024-12-04 15:33:02 778

原创 LLM:链式提示(prompt chaining)

如果我们直接给LLM一个非常复杂的指令,比如“创建一个可以处理用户输入并生成购物清单的程序”,这可能会让模型感到困惑,因为它需要处理很多细节,比如如何接收输入、如何存储商品、如何生成清单等。假设我们要使用大型语言模型(LLM)来完成一个复杂的任务:编写一个简单的购物清单程序,用户可以输入他们想要购买的商品,然后程序会生成一个购物清单。每个步骤都由一个简单的提示词来引导,这样LLM可以更清晰地理解每个步骤需要做什么,从而更有效地完成任务。- 提示词:`"你已输入以下商品:[商品列表]。请继续输入或完成购物。

2024-11-30 21:14:00 642

原创 LLM: softMax function and temperature

首先,对向量 \( \mathbf{z} \) 中的每个元素 \( z_i \) 应用指数函数 \( \exp(z_i) \)。这将所有元素转换为正数,因为指数函数总是返回正数。

2024-11-28 14:19:45 1152

原创 ABP VNext 动态代理相关问答

在ABP Vnext框架中,当你对方法加上`[UnitOfWork]`特性和`virtual`修饰符时,实际上是在配置动态代理和工作单元(Unit of Work,简称UOW)的行为。

2024-11-26 10:38:48 988

原创 ABP VNext框架中,后台任务执行报错(Cannot access a disposed object)无法访问已释放对象

在重写的`HandleEventAsync`方法中,代理类可以先执行工作单元的创建逻辑(如获取数据库上下文),然后调用原始的`HandleEventAsync`方法(通过`base.HandleEventAsync`),最后执行工作单元的完成逻辑(如提交或回滚事务、释放数据库上下文)。例如,ABP可能会在运行时创建一个代理类来包装`HandleEventAsync`方法,这个代理类可以在方法调用前后执行一些与工作单元相关的操作,如事务的开启和提交,以及确保数据库上下文的正确生命周期管理等。

2024-11-25 15:42:52 879

原创 Quartz Cron表达式问题记录

如果你想要任务在周三执行,并且使用的是Quartz.NET,你应该使用 "0 28 14?在Quartz.NET中,星期字段使用的是1-7的数字,其中1代表周日,2代表周一,以此类推,直到7代表周六。不同的系统或框架可能会有不同的表示方式,有的系统可能将周日作为一周的开始(1=周日,2=周一,...,7=周六),而有的系统则将周一作为一周的开始(1=周一,2=周二,...,7=周日)。Cron表达式中的星期字段(通常是最后一个字段)使用的是1-7的数字来表示星期,其中1表示周日,7表示周六。

2024-11-20 14:43:51 290

原创 saas服务,对同一个功能,需要使用不同客户的接口。那么哪种设计模式可以解决我的问题?

面对这种需要根据不同客户使用不同接口的情况,一个常见的解决方案是使用。策略模式允许在运行时选择算法或行为,非常适合于你描述的场景,即根据不同的客户使用不同的发送短信接口。

2024-08-16 17:56:27 620

原创 报错信息:ERROR NullInjectorError: R3InjectorError(s)[fi -:fi->fi->fi ->fi] 由于nzModalService导致的报错

现在遇到的问题是 C组件是使用NzModalService 来打开模态窗口,这样是能打开的,但是A组件使用Iframe,使用url来打开B组件,会报错。

2024-05-17 10:02:43 706

原创 用于计算Quartz中,下次触发时间距离当前时间的程序

将表示下一次触发的时间距离现在还有多少分钟。,然后与当前时间进行比较,以确定下一次触发的时间。是以本地时间表示的,所以你需要确保。在 .NET 中,一个。都是以相同的时区表示的。

2024-05-11 14:36:03 486

原创 医学知识和医疗应用开发交叉领域中垂类大语言模型应用相关研究

随着LLM(大语言模型)的爆火,不少企业都在寻找通过LLM解决企业业务问题的方法,以达到降本增效的效果。但是,当面对较为复杂的业务问题(如:背景资料多、问题分类多、条件判断复杂、涉及模块多等)时,以LLM当前的发展程度,仅通过简单的LLM对话交互,是无法有效地解决此类问题的,原因在于,LLM也有自身的能力限制,如幻觉、上下文等。2.3. AI透明度问题:使用ChatGPT生成内容可能会造成读者或用户对AI来源或质量的不了解或误解,需要提供清晰的标识或说明,并保证内容的可解释性、可信度和可控性。

2024-02-28 23:09:04 1175 4

原创 Angular构建Library报错:error NG3001: Unsupported private class

通过将需要导出的组件、服务或指令集中在顶层入口文件中,可以更好地管理这些依赖关系,并确保任何使用你的库的开发人员都能够正确地安装和配置这些依赖项。总之,将组件、服务或指令导出到顶层入口文件中是为了确保其他模块或应用程序能够访问并正确使用你的库中的功能。这样可以提供良好的可见性、统一的访问点和更好的依赖关系管理。统一访问点:通过将所有需要被其他模块或应用程序使用的内容导出到顶层入口文件中,可以提供一个统一的访问点。可见性:如果你想让其他模块或应用程序能够使用你的组件、服务或指令,你必须将它们导出。

2024-02-20 11:50:57 680 1

原创 为什么子组件接收到的modalRef是来自于父组件属性的引用?,@Input() modalRef: NzModalRef;

子组件接收到的modalRef是来自于父组件属性的引用。通过使用装饰器将modalRef声明为子组件的输入属性,可以让父组件传递模态框的引用给子组件。在父组件中,当创建模态框并获得模态框引用后,通过将其赋值给子组件的modalRef然后,在子组件中,通过使用@Input()装饰器将modalRef这样,父组件中创建的模态框引用就可以通过modalRef输入属性传递给子组件,并且子组件可以使用该引用来进行操作,如关闭模态框。对于@Input()

2024-01-15 17:28:07 558

原创 The LINQ expression “xxx“ could not be translated

投影操作符中,我们就能够正确地对分组进行操作,因为它已经被组合起来进行了翻译。方法,你确保了分组的列表已经被组合起来,并且成功解决了报错。然而,问题在于 LINQ 表达式无法直接翻译带有分组参数的。类型的对象,而不是标准的集合类型(如。因为分组的列表返回的是一个。

2023-12-08 14:26:08 1213 1

原创 打印HTML页面,表格元素被截断的解决方案

你的答案是正确的,我现在有一个附加的需求,让所有的表格都自适应宽度。我的要求是,对于所有的table元素,我希望宽度自适应,并且里面的每个单元格都是平均分配宽度的。我的问题是:我要做一个打印HTML页面功能,这个页面的表格是动态生成的,具有多个表格,现在面临的问题是,在第一页末尾无法放下这一整个表格,如何做到将这个表格分。现在,代码会将表格之前其他 DOM 元素的高度累加,并与表格高度一起比较来决定是否需要对表格进行分割。你是希望计算表格之前其他 DOM 元素的高度,而不仅仅是表格上半部分的高度。

2023-12-06 15:38:44 2481

原创 深入Angular:(转/翻译)Working with DOM in Angular: unexpected consequences and optimization techniques

Angular 不使用静态视图的视图容器,而是在特定于子组件的节点内保存对子视图的引用。它是一个无形的容器,可以用来组织和控制模板中的结构和行为,但不会在最终渲染的 HTML 中生成任何额外的标记。因此,为了正确解决删除子组件或任何 DOM 元素的任务,有必要首先创建嵌入视图或宿主视图并将其附加到视图容器。在宿主视图的情况下,可以从 create 方法返回的 ComponentRef 中检索与组件关联的视图。这段文字的意思是,在Angular中,有两种视图类型:嵌入视图和宿主视图。

2023-11-27 23:17:10 1133 2

原创 在EFCore中,我何时需要在值对象中添加[Owned]特性?

需要注意的是,数据库中的列与实体的属性之间需要进行映射关系的配置。这通常由ORM框架负责处理,通过特定的注解、配置文件或代码来定义实体属性与数据库列之间的映射关系。

2023-11-27 19:13:04 1460

原创 深入Angular:(转&翻)Do you still think that NgZone (zone.js) is required for change detection in Angular?

本文主要解释了Angular是如何基于zone.js实现NgZone。同时阐述如何在不使用zone.js的情况下,实现手动更新。文章最后部分将描述自动跟新策略何时会失效。我看过的大多数文章都将Zone(zone.js)和NgZone与Angular中的变更检测紧密关联在一起。尽管它们确实有关系,但从技术上讲,它们并不是一个整体的部分。是的,Zone和NgZone用于自动触发由异步操作引起的变更检测。但由于变更检测是一个单独的机制,它可以在没有Zone和NgZone的情况下成功工作。

2023-11-24 16:39:55 1293 3

原创 在vue或者react或angular中,模板表达式中的箭头函数是无效的吗?为什么无效?

出现此问题的背景:我在Angular项目中对一个标签属性绑定了一个箭头函数,编译报错。

2023-11-24 11:34:14 1222

原创 c# 逆变 / 协变

关键字,我们可以在泛型类型参数中限制类型的协变性和逆变性,以确保类型安全性。这样做的好处是能够更容易地对泛型类型进行复用和灵活性。接口,用于查询动物信息。同样地,我们还创建了一个。关键字用于限制类型参数的协变性和逆变性。在面向对象编程中,尤其是使用泛型时,,表示它只能查询(读取)动物信息。,表示它只能添加(写入)动物。注意,虽然我们将其赋值给。变量,这也是合法的,因为。变量,但我们仍然只能使用。变量,这是合法的,因为。然后,我们创建了一个。接口,用于添加动物。

2023-11-22 16:00:19 907 2

原创 我在使用ABP框架。我在domian层写了一个manager,是否一定需要继承一个接口?

是的,按照ABP框架的约定,如果您在Domain层中创建了一个Manager类而没有让它继承接口,那么AppService层就无法直接通过依赖注入来使用这个Manager。虽然在ABP框架中不是一定要继承接口,但是使用接口可以提供更好的代码组织、可维护性和可扩展性,因此强烈建议在Domain层的manager类上使用接口。因此,根据ABP框架的最佳实践,建议您尽量在Domain层中将Manager类定义为接口的实现,以便更好地利用依赖注入的优势和框架提供的功能。在ABP框架中,依赖注入是通过接口来实现的。

2023-11-22 14:57:40 1042

原创 《the mythical Man-Month》:Pass the word 产品经理写的文档就是依托答辩

(属于meta-language)形式化定义是一种精确而明确的方式来描述概念、对象或现象。它使用形式化语言和符号系统来规定定义,以便消除歧义和模糊性。形式化定义通常用于数学、逻辑、计算机科学等领域。以下是一些形式化定义的例子:自然数的形式化定义:自然数是一个集合,满足以下条件:a) 0 是自然数的一部分。b) 如果 n 是自然数的一部分,那么 n 的后继(即 n+1)也是自然数的一部分。二叉树的形式化定义:二叉树是一个有限集合,满足以下条件:a) 如果树为空,则它是一个二叉树。

2023-11-05 20:57:58 200

原创 Reading:Deep dive into the OnPush change detection strategy in Angular

Angular使用这些策略来确定在运行父组件的变更检测时,是否应该检查子组件。为组件定义的策略会影响所有子指令,因为它们作为检查宿主组件的一部分而被检查。定义的策略无法在运行时被覆盖。默认策略,内部称为CheckAlways,意味着除非视图被显式分离,否则组件会进行常规的自动变更检测。而被称为OnPush策略,内部称为CheckOnce,意味着只有在组件被标记为脏时才会进行变更检测。Angular实现了自动将组件标记为脏的机制。

2023-10-30 18:51:07 838

LangChain 0.3 多智能代理协作

本项目展示了如何使用 LangChain 0.3 创建多个智能代理(Agent)完成协作复杂任务。该演示专为初学者设计,通过一个实际的任务场景来展示多 Agent 系统流程的工作原理。

2025-07-09

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除