概览
通过 Kinetica LLM 工作流程,您可以在数据库中创建 LLM 上下文,该上下文提供推理所需的信息,包括表、注释、规则和示例。调用ChatKinetica.load_messages_from_context() 将从数据库中检索上下文信息,以便用于创建聊天提示。 聊天提示由一个 SystemMessage 和包含问题/SQL 对的 HumanMessage/AIMessage 对组成。您可以将配对示例添加到此列表中,但它并非旨在促进典型的自然语言对话。 当您从聊天提示创建链并执行它时,Kinetica LLM 将从输入生成 SQL。您可以选择使用 KineticaSqlOutputParser 执行 SQL 并将结果作为数据框返回。 目前,支持 2 个 LLM 用于 SQL 生成:- Kinetica SQL-GPT:此 LLM 基于 OpenAI ChatGPT API。
- Kinetica SqlAssist:此 LLM 专门用于与 Kinetica 数据库集成,并且可以在安全的客户场所运行。
先决条件
要开始使用,您需要一个 Kinetica DB 实例。如果您没有,可以获取一个免费的开发实例。 您需要安装以下软件包……数据库连接
您必须在以下环境变量中设置数据库连接。如果您正在使用虚拟环境,可以在项目的.env 文件中设置它们
KINETICA_URL:数据库连接 URLKINETICA_USER:数据库用户KINETICA_PASSWD:安全密码。
KineticaChatLLM 实例,则表示您已成功连接。
创建测试数据
在生成 SQL 之前,我们需要创建一个 Kinetica 表和一个可以推断该表的 LLM 上下文。创建一些虚假用户资料
我们将使用faker 包创建一个包含 100 个虚假资料的数据框。
从数据框创建 Kinetica 表
创建 LLM 上下文
您可以使用 Kinetica Workbench UI 创建 LLM 上下文,也可以使用CREATE OR REPLACE CONTEXT 语法手动创建。 这里我们根据 SQL 语法创建一个上下文,引用我们创建的表。使用 LangChain 进行推理
在下面的示例中,我们将从之前创建的表和 LLM 上下文创建一条链。该链将生成 SQL 并将结果数据作为数据框返回。从 Kinetica 数据库加载聊天提示
此链的最后一个元素是KineticaSqlOutputParser,它将执行 SQL 并返回一个数据框。这是可选的,如果省略它,则只返回 SQL。
创建链
我们创建的链将以问题作为输入,并返回包含生成的 SQL 和数据的KineticaSqlResponse。问题必须与我们用于创建提示的 LLM 上下文相关。
生成 SQL
我们创建的链将以问题作为输入,并返回包含生成的 SQL 和数据的KineticaSqlResponse。问题必须与我们用于创建提示的 LLM 上下文相关。
以编程方式连接这些文档到 Claude、VSCode 等,通过 MCP 获取实时答案。