返回市场
核心

核心

作者:korykiai3 星标更新:2025-11-01

项目介绍

【技术文档摘要】

koryki.ai/core

koryki.ai/core 库改进了业务用户与关系数据库之间的交互,用于搜索和数据分析,这些操作由大型语言模型(LLM)辅助。

通过引入易于理解和验证的查询语言(kql),用户可以掌控整个过程。

通过引入kql减少不确定性

kql 避免了 SQL 的模糊性和冗余性。kql 具有简洁的语法,易于学习。

进一步降低数据分析师面临的复杂度:

  • 在数据库模式之上使用业务术语引入业务模型,而不是暴露数据库内部细节。
  • 标记实体关系以隐藏连接条件。
  • 跳过人类已知或 AI 模型从上下文中已知且不需要知道的细节。
  • 隐藏用于优化的数据库技术,如分区表、基于函数的索引、预先计算的值(如 soundex)等。

每一步抽象处理都减少了用户和 LLM 可见的复杂度。这些确定的过程可以通过 SQL 生成来可靠地处理。这使得用户更容易理解并验证要执行的查询,同时也降低了 LLM 计算的难度。

除了语法检查外,查询没有所谓的“正确”或“错误”。一切都取决于用户的需要和期望。帮助用户理解系统行为是提高生产力和数据质量的关键。

MCP-Server

借助 koryki.ai MCP-Server,用户可以在 AI 模型的支持下获得对数据库的读取访问权限,参见 Model-Context-Protocol

MCP-Server 概览

koryki.ai MCP-Server 的主要任务是在 kql 形式的查询和关系数据库的形式化语言(SQL)之间架起桥梁。

为此,koryki.ai 引入了两种查询语言:

  • kql:korykiai 查询语言旨在以易于理解的形式表达查询。
  • iql:中间查询语言通过规则集补充查询的技术信息。这种语言考虑了用户的隐含期望。数据库所需的但对用户无关紧要的细节在此引入。

在 AI 模型将自然语言查询转换为 kql 形式后,koryki.ai MCP-Server 将此查询转换为 iql 形式,使用规则集丰富和转换查询,并最终生成适用于数据库系统的 SQL。

我们来看一个示例:

用户输入:

查找在2023年1月下单超过10次的客户,
返回公司名称和订单数量,按订单数量排序。

借助 koryki.ai 发布的资源,包括 kql 语法和实体关系模型,AI 可能会创建一个 kql 形式的查询:

FIND customers c, c-orders o
FILTER count(o) > 10 AND 
    o.order_date BETWEEN DATE '2023-01-01' AND DATE '2023-01-31'
FETCH c.company_name, count(o)
ORDER count(o) DESC

同样的查询在 iql 中:

SELECT
    "customers" "c"
        OUT "c"."company_name" 1
        GROUP "c"."company_name"
    JOIN "orders" "o"
        OUT count("o"."order_id") 2
        FILTER "o"."order_date" BETWEEN DATE '2023-01-01' AND DATE '2023-01-31'
        HAVING count("o"."order_id") > 1
        ORDER count("o"."order_id") DESC
    OWNER

应用规则:

  1. 根据聚合情况将 FILTER 子句解析为 iql-FILTER 或 iql-HAVING。
  2. 在必要时添加 GROUP-BY 子句。
  3. 解析计数函数中的主键列以确保唯一性。

连接子句尚未解析为连接列。

同样的查询在 SQL 中,解析连接列:

SELECT
    c.company_name
,   count(o.order_id)
FROM
    customers c
    INNER JOIN orders o ON
        c.customer_id = o.customer_id
WHERE
    o.order_date BETWEEN DATE '2023-01-01' AND DATE '2023-01-31'
GROUP BY
    c.company_name
HAVING
    count(o.order_id) > 10
ORDER BY
    count(o.order_id) DESC

但至少还有两个要求需要注意:

  • 构建一个值得信赖的系统
    • 仅限访问授权区域
    • 提供准确的结果
    • 避免误用,特别是 SQL 注入
  • 最佳响应时间

koryki.ai MCP-Server 使用 https://github.com/modelcontextprotocol/java-sdk 实现。

关于 koryki.ai 的更多信息

演示:Northwind 数据库

演示 MCP-Server

相关 GitHub 项目

  • 数据库 测试和演示用的样本数据库
  • h2 测试和演示用的 h2 数据库
  • 演示 用于演示交互的 MCP-Server