什么是Query Construction
典型的RAG方法将用户query转换为向量表示,然后将该向量与源文档的向量表示进行比较,找到具有最相似的向量表示的源文档。这种方式对非结构化数据相当有效,但对结构化数据呢?
世界上大部分数据都有一定的结构,这些数据大多存储在关系数据库(例如SQL)或图形数据库中,甚至非结构化数据也经常与结构化元数据(例如,作者、流派、发布时间等)相关联。许多用户query的最佳答案不仅是通过在embedding空间中找到相似的文档或数据,而且还利用数据中固有的以及在用户query中表达的结构。
例如,对于“what are movies about aliens in the year 1980”这个查询,一部分(aliens )可能要从语义上查找,但也有一部分("year == 1980")我们想以精确的方式查找。Query construction就是将自然语言查询转换为与之交互的数据库的查询语言。
下面我们将介绍三种典型的Query Construction的示例。
Text-to-metadata-filter
将query转换为合适的结构化语言,一以便进行有效地搜索和过滤。
Text-to-SQL
关系型数据库是