LLM-Agent场景题:贷款审批
LLM-Agent场景题:贷款审批
摘要
本方案提出一个基于大型语言模型(LLM)和检索增强生成(RAG)的小企业贷款风险评估智能系统,通过多智能体(Multi-Agent)协作架构,实现贷款申请的自动化分析、风险评估和决策建议生成。系统整合传统信用评分模型与先进AI技术,显著提升贷款决策的效率、准确性和透明度,同时确保合规性和公平性。
一、系统架构概览
核心架构组件
多Agent协作框架:基于LangGraph构建的协作网络,实现不同功能智能体间的有序交互
RAG知识库系统:多层级、多向量的知识库架构,支持领域专业知识检索与应用
数据处理管道:处理结构化与非结构化金融数据的流水线系统
风险评估引擎:融合传统信用模型与LLM分析能力的混合风险评估机制
决策生成与解释系统:生成可解释的贷款决策建议,提供透明的评估依据
技术栈选择
±------------------±------------------±-----------------+
| 功能层 | 技术选择 | 备注 |
±------------------ ...
场景题:编程助手
RAG-Agent:基于LangGraph的多智能体RAG
1. 项目概述
1.1 项目目标
本项目旨在构建一个名为“RAG-Agent”的先进智能系统,该系统深度融合检索增强生成(RAG)技术与基于LangGraph的多智能体(Multi-Agent)协作框架。其核心目标是克服传统RAG系统在处理复杂查询、保证信息准确性、上下文理解、结构化数据处理(尤其是代码)以及应对多样化数据源方面的局限性,为用户(特别是软件开发者)提供更精准、全面、可靠且高效的信息获取与智能辅助能力。
1.2 问题背景
传统RAG系统常面临内容缺失、忽略低排名相关文档、上下文漂移、无法有效提取答案、格式错误、回答具体性不当、不完整、数据摄取扩展性差、难以处理复杂结构化数据(如代码、PDF表格)以及潜在的安全风险等12个核心挑战。同时,单一模型难以覆盖所有专业领域和任务类型。
1.3 核心方法
本项目采用多智能体协作架构,通过LangGraph进行任务编排和状态管理。系统将复杂任务分解给具有特定专长的智能体(如代码检索、文档问答、代码分析、验证等),协同完成信息检索、分析、整合与生成。同时,采用先进的RAG技术栈 ...
RAG的问题与解决
RAG系统关键问题与挑战 (12个)
以下是RAG系统在工程实践中遇到的主要问题和挑战,整合自文章引用的论文和补充内容:
内容缺失 (Missing Content): 当答案不在知识库中时,系统倾向于生成看似合理但错误的答案,而非承认未知。
错过排名靠后的文档 (Missed Top Ranked): 正确答案可能存在于检索结果排名较低(超出Top-K范围)的文档中,因上下文长度限制而被忽略。
脱离上下文/整合限制 (Not In Context): 相关文档被检索到,但在最终传递给大模型的上下文中被遗漏,导致答案生成时未使用该信息。
未能提取答案 (Not Extracted): 相关文档在上下文中,但由于信息干扰、矛盾或文档过长,大模型未能从中提取正确答案。
格式错误 (Wrong Format): 输出格式(如表格、列表)与用户要求不符。
具体性不正确 (Incorrect Specificity): 回答过于泛化或过于具体,不满足用户需求。
回答不完整 (Incomplete Answers): 对于需要整合多个来源信息的问题,回答只覆盖了部分内容。
数据摄取扩展性 (Dat ...
搜索的链路
搜索的评价
曝光和点击
曝光: 用户在搜索结果页看到文档,计算曝光
文档点击:在曝光之后,用户点击文档,进入文档的详情页
文档点击率:文档点击总次数/文档曝光总次数
查询词点击率(有点比)
查询词点击:用户点击搜索结果页上任意一篇文档,就算"查询词点击"
查询词点击率(有点比):查询词点击总次数 / 搜索总次数
查询词首屏点击:用户点击搜索结果页首屏的任意一篇文档,就算"查询词首屏点击"
查询词首屏点击率(首屏有点比):查询词首屏点击总次数 / 搜索总次数
💡
各点击率数据:
文档点击率:10% 左右
查询词点击率(有点比):70% 左右
查询词首屏点击率(首屏有点比):60% 左右
有点比重要性高于文档点击率
基础知识:用户满意度、评价指标、搜索链路。
相关性:定义与分档、评价指标、文本匹配、语义匹配。
查询词处理:分词、NER、词权重、类目、意图、改写。
召回:文本召回、向量召回、离线召回。
排序:排序模型、训练。
查询词推荐:推词场景、推词召回、推词排序。
相关性是查询词q和文档d两者的关系。
相关性是客观标准,不取决于 ...
文本检索技术
对话 API
请求参数说明
参数
类型
必填
描述
messages
Array
必填
包含对话的消息列表。
model
String
必填
要使用的模型的ID。
frequency_penalty
Number 或 null
可选
根据文本中已有令牌的频率对新令牌进行惩罚。取值范围在-2.0到2.0之间。
logit_bias
Map
可选
修改指定令牌在完成中出现的可能性。接受一个将令牌映射到偏置值(-100到100)的JSON对象。
logprobs
Boolean 或 null
可选
是否返回输出令牌的对数概率。
top_logprobs
Integer 或 null
可选
如果 logprobs 设置为 true,则返回每个令牌位置上最有可能的令牌数,每个都带有关联的对数概率。
max_tokens
Integer 或 null
可选
可以在聊天完成中生成的最大 令牌数 29。
n
Integer 或 null
可选
为每个输入消息生成的聊天完成选择的数量。
presence_penalty
Number 或 null
可选
根据 ...
高级RAG
高级 RAG 技术:图解概览
对高级检索增强生成技术和算法的全面研究,系统化各种方法。本文附带了我知识库中引用的各种实现和研究链接集合。
本文旨在概述和解释可用的 RAG 算法和技术,因此不会深入代码实现细节,仅引用它们,并将具体内容留给丰富的文档和教程。
简介
本文引用翻译自IVAN ILIN 在Medium上的博客文章
如果您熟悉 RAG 概念,请跳到高级 RAG 部分。
检索增强生成,即 RAG,为 LLMs 提供从某些数据源检索到的信息,以便将其生成的答案建立在信息的基础上。基本而言,RAG 是搜索+LLM 提示,即您要求模型在搜索算法找到的信息作为上下文的情况下回答查询。查询和检索到的上下文都被注入到发送给 LLM 的提示中。
RAG 是 2023 年基于LLM系统的最受欢迎的架构。许多产品几乎完全基于 RAG 构建——从结合网络搜索引擎的问答服务到数百个与数据聊天的应用程序。
即使矢量搜索领域也因那股炒作而备受关注,尽管基于嵌入的搜索引擎早在 2019 年就已经使用 faiss 构建。像 chroma、weavaite.io 和 pinecone 这样的矢量数据库初创公司, ...
RAG
RAG(检索增强生成)通过提供对知识来源的访问来减少幻觉,这些知识来源为用户查询提供了额外的上下文,即LLM(如 Claude3.5、 GPT-4o)。它还旨在克服语言模型的上下文限制。
但是如果我们稍微简化一下,它就没有什么特别之处了。想问LLM 巴拉克·奥巴马的生日是什么?为什么不先找到奥巴马的维基百科页面(检索),将其添加到提示中(增强),然后让LLM回答问题(生成)。就这样!我们构建了我们第一个 RAG 系统。
在其核心,RAG 系统包含 2 个组件:一个检索器,用于从外部源文档中检索信息,以及一个生成器,使用检索到的信息生成响应。
RAG 常常与基于语义搜索或嵌入构建索引同时出现。
信息检索已经存在一个世纪了。在那些日子里,我们是如何检索相关文档的?没错,就是我们的好朋友 BM25。简单、快速且有效。基于词的检索解决方案如 BM25 也成功地为许多搜索引擎提供了动力。
虽然 RAG 在减少幻觉方面显示出希望,但它并非没有挑战。传统 RAG 系统中的一个关键问题是,在将文档分割成更小的块进行检索时,可能会丢失上下文。这就是 Anthropic 引入了“上下文检索”这一简单概念 ...
QGControl 图像获取
Documentation
图像相关
📘 ImageProtocolManager是一个用于处理MAVLink图像传输协议的类,主要用于接收和处理来自光流相机等设备的图像数据。以下是其主要工作流程:
1. 基本组成
两个主要成员变量:
_imageHandshake: 存储图像传输握手信息
_imageBytes: 存储接收到的图像数据
2. 图像接收流程
握手阶段
1case MAVLINK_MSG_ID_DATA_TRANSMISSION_HANDSHAKE:
接收DATA_TRANSMISSION_HANDSHAKE消息
清空之前的图像数据
记录新图像的基本信息(类型、宽度、高度等)
数据传输阶段
1case MAVLINK_MSG_ID_ENCAPSULATED_DATA:
接收ENCAPSULATED_DATA消息
根据序号(seqnr)将数据放入正确的位置
通过_imageHandshake.packets计数追踪传输完成情况
当所有数据包接收完成时,发出imageReady信号
图像获取
1QImage ImageProtocolMan ...
LangGraph 核心概念
核心概念
LangGraph 的核心是将代理工作流程建模为图表。您可以使用三个关键组件定义代理的行为:
State:表示应用程序当前快照的共享数据结构。它可以是任何 Python 类型,但通常是TypedDict或 Pydantic BaseModel。
Nodes:对代理逻辑进行编码的 Python 函数。它们接收当前值State作为输入,执行一些计算或副作用,并返回更新的State。
[Edges](https://langchain-ai.github.io/langgraph/concepts/low_level/#edges)Node:根据当前情况确定下一步执行哪个操作的 Python 函数State。它们可以是条件分支或固定转换。
通过组合Nodes和Edges,您可以创建复杂的循环工作流,使工作流随时间推移而演变State。然而,真正的强大之处在于 LangGraph 如何管理工作流State。需要强调的是:Nodes和Edges只不过是 Python 函数 - 它们可以包含 LLM 或只是好的 Python 代码。
状态¶
定义图形时要做的第一件事是定义State图 ...
推荐系统学习笔记:召回
推荐系统学习笔记:召回
1 基于物品的协同过滤ItemCF
1.1 ItemCF的原理
推荐系统如何知道《笑傲江湖》与《鹿鼎记》相似?
看过《笑傲江湖》的用户也看过《⿅⿍记》
给《笑傲江湖》好评的用户也给《⿅⿍记》好评
1.2 ItemCF的实现
预估用户对候选物品的兴趣:
∑jlike(user,itemj)×sim(itemj,item)∑_jlike(user,item_j)×sim(item_j,item)
j∑like(user,itemj)×sim(itemj,item)
左边是用户对物品的兴趣,右边是两个物品之间的相似度
根据上面的公式进行计算即可得到:
2×0.1+1×0.4+4×0.2+3×0.6=3.22×0.1+1×0.4+4×0.2+3×0.6=3.2
2×0.1+1×0.4+4×0.2+3×0.6=3.2
表示用户对候选物品的兴趣,比如有多个候选物品,则可以计算用户对每一个物品的候选分数,然后选出分数较高的几个物品。
1.3 物品的相似度
两个物品的受众重合度越⾼,两个物品越相似。例如,喜欢《射雕英雄传》和《神雕侠侣》的读者重合度很⾼,则可以 ...