news 2026/6/16 1:37:03

【RAG】【vector_stores043】使用LlamaIndex和KDB.AI向量存储的高级RAG与时间过滤器

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【RAG】【vector_stores043】使用LlamaIndex和KDB.AI向量存储的高级RAG与时间过滤器

本案例演示如何使用KDB.AI向量数据库和LlamaIndex框架构建一个具有时间过滤功能的检索增强生成(RAG)系统,用于分析美国金融危机前后的金融法规变化。

1. 案例目标

本案例的主要目标是:

  1. 构建时间感知的RAG系统:使用KDB.AI向量数据库存储金融法规文档,并支持基于时间的过滤查询。
  2. 分析金融法规变化:对比2008年金融危机前后的美国金融法规,分析其变化和影响。
  3. 演示高级查询功能:展示如何使用时间过滤器进行精确查询,获取特定时间范围内的相关信息。

2. 技术栈与核心依赖

  • LlamaIndex:用于构建RAG系统的核心框架
  • KDB.AI:高性能向量数据库,支持时间过滤功能
  • OpenAI:提供嵌入模型和语言模型服务
  • Pandas:用于数据处理和分析
  • kdbai_client:KDB.AI的Python客户端库

在Python环境中,需要安装以下核心依赖:

!pip install llama-index llama-index-llms-openai llama-index-embeddings-openai llama-index-readers-file llama-index-vector-stores-kdbai !pip install kdbai_client pandas

3. 环境配置

在运行本案例前,需要配置以下环境:

  1. OpenAI API密钥:设置OpenAI API密钥用于嵌入和生成服务
  2. KDB.AI端点和API密钥:获取KDB.AI的访问端点和API密钥
  3. 模型配置:选择合适的嵌入模型和生成模型
# 设置OpenAI API密钥 os.environ["OPENAI_API_KEY"] = "your-openai-api-key" # 设置KDB.AI端点和API密钥 KDBAI_ENDPOINT = "your-kdbai-endpoint" KDBAI_API_KEY = "your-kdbai-api-key" # 配置模型 EMBEDDING_MODEL = "text-embedding-3-small" GENERATION_MODEL = "gpt-4o-mini"

4. 案例实现

4.1 创建KDB.AI会话和表

首先,我们需要连接到KDB.AI并创建一个表来存储金融法规文档的向量表示:

# 连接到KDB.AI session = kdbai.Session(endpoint=KDBAI_ENDPOINT, api_key=KDBAI_API_KEY) database = session.database("default") # 定义表结构 schema = [ {"name": "document_id", "type": "bytes"}, {"name": "text", "type": "bytes"}, {"name": "embeddings", "type": "float32s"}, {"name": "title", "type": "str"}, {"name": "publication_date", "type": "datetime64[ns]"}, ] # 定义索引 indexFlat = { "name": "flat_index", "type": "flat", "column": "embeddings", "params": {"dims": 1536, "metric": "L2"}, } # 创建表 table = database.create_table(KDBAI_TABLE_NAME, schema=schema, indexes=[indexFlat])

4.2 准备金融法规文档

本案例使用两份重要的美国金融法规文档:

  1. Gramm-Leach-Bliley Act (1999):2008年金融危机前的主要金融法规
  2. Dodd-Frank Wall Street Reform and Consumer Protection Act (2010):2008年金融危机后的主要金融法规
# 定义文档URL和元数据 INPUT_URLS = [ "https://www.govinfo.gov/content/pkg/PLAW-106publ102/pdf/PLAW-106publ102.pdf", "https://www.govinfo.gov/content/pkg/PLAW-111publ203/pdf/PLAW-111publ203.pdf", ] METADATA = { "pdf/PLAW-106publ102.pdf": { "title": "GRAMM–LEACH–BLILEY ACT, 1999", "publication_date": pd.to_datetime("1999-11-12"), }, "pdf/PLAW-111publ203.pdf": { "title": "DODD-FRANK WALL STREET REFORM AND CONSUMER PROTECTION ACT, 2010", "publication_date": pd.to_datetime("2010-07-21"), }, }

4.3 构建LlamaIndex RAG管道

使用LlamaIndex和KDB.AI向量存储构建RAG管道:

# 加载文档 documents = SimpleDirectoryReader( input_files=local_files, file_metadata=get_metadata, ) docs = documents.load_data() # 创建向量存储和索引 vector_store = KDBAIVectorStore(table) storage_context = StorageContext.from_defaults(vector_store=vector_store) index = VectorStoreIndex.from_documents( docs, storage_context=storage_context, transformations=[SentenceSplitter(chunk_size=2048, chunk_overlap=0)], )

4.4 实现时间过滤查询

创建支持时间过滤的查询引擎:

# 查询2008年金融危机前的法规 query_engine_before = index.as_query_engine( similarity_top_k=15, vector_store_kwargs={ "index": "flat_index", "filter": [["<", "publication_date", datetime.date(2008, 9, 15)]], "sort_columns": "publication_date", }, ) # 查询2008年金融危机后的法规 query_engine_after = index.as_query_engine( similarity_top_k=15, vector_store_kwargs={ "index": "flat_index", "filter": [[">=", "publication_date", datetime.date(2008, 9, 15)]], "sort_columns": "publication_date", }, )

5. 案例效果

5.1 2008年金融危机前的金融法规分析

通过查询2008年金融危机前的法规,我们了解到:

2008年金融危机前,美国主要的金融法规是1999年颁布的Gramm-Leach-Bliley法案。该法案促进了银行、证券公司和保险公司之间的关联,实际上废除了Glass-Steagall法案的部分内容,该法案此前将这些金融服务分离开来。Gramm-Leach-Bliley法案旨在通过为各种金融机构的整合提供框架,增强金融服务行业的竞争力。

5.2 2008年金融危机后的金融法规分析

通过查询2008年金融危机后的法规,我们了解到:

2008年金融危机后颁布的新美国金融法规是2010年7月21日签署成为法律的Dodd-Frank华尔街改革和消费者保护法案。该立法旨在促进金融稳定,增强金融系统的问责制和透明度,并保护消费者免受滥用金融行为的侵害。

5.3 深度分析

通过综合分析危机前后的法规变化,我们得出以下结论:

对美国2008年金融危机前后的金融法规分析显示,为防止此类危机再次发生,法规发生了重大变化。危机前,监管框架的特点是缺乏全面监督,特别是对非银行金融机构。监管环境允许过度冒险、资本要求不足和金融交易透明度不足。这种环境导致了房地产泡沫和随后主要金融机构的倒闭,引发了广泛的经济动荡。作为回应,2010年颁布了Dodd-Frank华尔街改革和消费者保护法案。该立法引入了几项关键改革:1) 创建金融稳定监督委员会(FSOC);2) 加强监管监督;3) 消费者保护措施;4) 沃尔克规则;5) 增加透明度和报告要求。

6. 案例实现思路

6.1 时间感知的RAG系统设计

本案例的核心创新是构建了一个时间感知的RAG系统,通过以下方式实现:

  1. 时间元数据存储:在向量数据库中存储文档的发布日期作为元数据
  2. 时间过滤查询:利用KDB.AI的时间过滤功能,在向量搜索时应用时间条件
  3. 时间排序:按时间顺序组织搜索结果,便于分析法规演变

6.2 多阶段查询策略

案例采用了多阶段查询策略来获取全面的分析:

  1. 危机前查询:了解2008年金融危机前的监管环境
  2. 危机后查询:了解2008年金融危机后的监管变化
  3. 综合分析:结合前后两个时期的信息,进行深度分析

6.3 向量存储优化

通过KDB.AI的高级功能优化向量存储和检索:

  1. 高效索引:使用平面索引提供精确的向量相似度搜索
  2. 多维过滤:结合向量相似度和时间过滤进行精确检索
  3. 性能优化:利用KDB.AI的高性能向量计算能力

7. 扩展建议

7.1 多维度过滤扩展

  • 地理过滤:添加地理位置信息,支持按国家或地区过滤法规
  • 主题分类:添加主题标签,支持按金融监管领域分类查询
  • 影响范围:添加法规影响范围信息,支持按影响对象分类

7.2 交互式分析界面

  • 时间轴可视化:创建交互式时间轴,直观展示法规演变
  • 对比分析工具:开发工具对比不同时期的法规差异
  • 影响评估:集成经济数据,评估法规变化的市场影响

7.3 智能问答系统

  • 多轮对话:扩展为支持多轮对话的智能问答系统
  • 假设分析:支持基于历史数据的假设性法规分析
  • 预测模型:基于历史趋势预测未来可能的法规变化

8. 总结

本案例成功演示了如何使用LlamaIndex和KDB.AI构建一个时间感知的RAG系统,用于分析美国金融危机前后的金融法规变化。通过结合向量搜索和时间过滤,我们能够精确检索特定时间范围内的相关信息,并进行深度分析。

该案例的主要贡献包括:

  1. 时间感知检索:展示了如何在RAG系统中集成时间过滤功能
  2. 法规分析应用:提供了一个实用的金融法规分析框架
  3. 多阶段查询策略:演示了如何通过分阶段查询获取全面的分析结果

这个框架可以扩展到其他需要时间感知检索的领域,如历史事件分析、科技发展追踪、政策变化研究等,为构建更智能的信息检索和分析系统提供了有价值的参考。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/11 19:50:58

卡证检测模型项目代码管理:GitHub协作与CI/CD流水线搭建

GitHub协作与CI/CD流水线搭建&#xff1a;让卡证检测模型开发更高效 如果你正在参与一个卡证检测模型的项目&#xff0c;或者任何类似的AI集成项目&#xff0c;你可能已经感受到了团队协作的痛点&#xff1a;代码版本混乱、谁改了哪行代码说不清、测试和部署全靠手动、新功能上…

作者头像 李华
网站建设 2026/6/8 14:18:11

GitHub中文界面终极指南:5分钟告别英文困扰的完整教程

GitHub中文界面终极指南&#xff1a;5分钟告别英文困扰的完整教程 【免费下载链接】github-chinese GitHub 汉化插件&#xff0c;GitHub 中文化界面。 (GitHub Translation To Chinese) 项目地址: https://gitcode.com/gh_mirrors/gi/github-chinese 你是否曾因为GitHub…

作者头像 李华
网站建设 2026/4/14 8:18:10

操作系统虚拟内存:页面置换算法与工作集模型

**操作系统虚拟内存&#xff1a;页面置换算法与工作集模型** 在现代操作系统中&#xff0c;虚拟内存技术通过将物理内存与磁盘空间结合&#xff0c;为程序提供了远大于实际内存的地址空间。物理内存有限&#xff0c;如何高效管理内存页面成为关键问题。页面置换算法与工作集模…

作者头像 李华
网站建设 2026/6/4 13:40:04

双频 WiFi 机柜天线:2.4G+5.8G 全覆盖无死角

WiFi 进机柜&#xff0c;最容易遇到干扰大、衰减快、金属屏蔽。今天分享一步到位的双频 WiFi 机柜天线&#xff0c;2.4G 与 5.8G 同时覆盖&#xff0c;布线少、信号稳。 双频机柜天线优势&#xff1a;一根顶两根&#xff0c;省空间、省布线&#xff1b;抗金属优化&#xff0c;…

作者头像 李华
网站建设 2026/4/14 8:14:06

Qwen-Ranker Pro多场景落地:智能制造设备手册检索、航空维修工单匹配

Qwen-Ranker Pro多场景落地&#xff1a;智能制造设备手册检索、航空维修工单匹配 1. 引言&#xff1a;当搜索遇到瓶颈时 你有没有遇到过这样的情况&#xff1a;在庞大的设备手册里找一个故障代码&#xff0c;翻了几十页都找不到&#xff1b;或者在维修工单系统里搜索类似问题…

作者头像 李华