上一章我们主要讲搜索引擎和LLM的应用设计,这一章我们来唠唠大模型和DB数据库之间的交互方案。有很多数据平台已经接入,可以先去玩玩再来看下面的实现方案,推荐
- sql translate:简单,文本到SQL,SQL到文本双向翻译,新手体验
- ai2sql:功能更全,包括语法检查,格式化等
- chat2query:可处理复杂query和实时数据
- OuterBase:加入电子表格的交互和可视化模块
本章会提到的前置知识点有Chain-of-thought,Least-to-Most Prompt,Self-Consistency Prompt,建议不熟悉的同学先看下解密Prompt系列9. 模型复杂推理-思维链基础和进阶玩法
DB Agent设计
和数据库进行交互的应用设计,主要涉及以下几个子模块
- Decomposition:把SQL生成任务,拆分成先定位表,再定位表字段,最后基于以上信息生成SQL的多个子问题,降低每一步的任务难度,和上文输入的长度
- Schema Linking:数据表较多的数据库,不能一次性把所有表schema都作为上文输入,需要先针对问题筛选相关的数据表和相关字段
- Schema description:如何描述Table和Column让模型更好理解每张表是做什么的,每个字段有哪些含义。以及在真实世界中庞大数据库中的表字段往往存在很多噪音,甚至需要领域知识,和详细字段描述才能明确每张表每个字段究竟是做什么的。
- self-correction:对SQL执行结果,或者代码本身进行自我修正,提高SQL语句准确率
下面我们分别基于C3, DIN-SQL, SQL-PALM,BIRD这四篇论文了解DB应用中可以提升SQL生成效果的各个子模块,前三篇都是基于传统的Spider数据集,BIRD则提出了全新的难度