介绍 Surreal Sidekick,你的个人 AI 助理

随着 Surreal Cloud(测试版)的近期发布以及 Surrealist 中 Surreal Cloud 面板的引入,我们推出了一款全新工具来帮助您提高 SurrealDB 的生产力。Surreal Sidekick 是我们功能齐全的 AI 助手,可以帮助您调试查询、根据最新可用文档回答问题并优化您对 SurrealDB 的使用。

在这篇文章中,我们将探讨使用 Surreal Sidekick 的优势、它如何增强您的 SurrealDB 工作流程以及如何充分利用这个强大的工具。

你好!我是 Sidekick

Sidekick 位于 Surrealist 的 Surreal Cloud 面板中,Surrealist 是我们的图形数据库管理界面,可用作 Web 和桌面应用程序。开始使用 Sidekick 的第一步是打开 Surrealist Web 应用程序或在系统上安装 Surrealist Desktop。

完成后,导航到云面板并登录。如果您之前没有创建帐户,请免费注册 Surreal Cloud。除了 Sidekick,您还可以访问 Surreal Cloud 提供的所有其他功能,包括在云中运行您自己的 SurrealDB 托管实例的能力。

Image description

进入 Surreal Cloud 面板后,您只需导航到左侧边栏中的 Sidekick 页面即可开始您的第一次对话。

您的私人助理

Sidekick 不断从所有可用的 SurrealDB 资源中学习,使其能够以准确和最新的信息回答您的问题。这使您能够毫不费力地了解 SurrealDB 中的任何主题,包括查询语言、存储驱动程序、SDK 等。您甚至可以使用您喜欢的语言与 Sidekick 交流,从而更轻松地获取所需的信息。

现在,关于 Sidekick 的功能已经介绍得足够多了,让我们实际动手探索一下,看看它的实际效果。在这个例子中,我将询问 Sidekick 如何在 SurrealDB 中执行最近邻向量搜索。

Image description

如您所见,Sidekick 为我们提供了 SurrealDB 向量搜索功能的快速概述,包括解释 KNN 运算符的存在,以及演示其实际操作的查询片段。每次回复后,Sidekick 都会汇编用于回答您的问题的资源列表,并将其列在回复的底部。这使您能够进一步研究相关功能的文档。

Sidekick 不仅限于回答有关查询和代码的问题,它还可以帮助您使用 CLI 工具找到解决方案。在第二个示例中,让我们询问 Sidekick 如何验证 SurrealQL 文件,我们可能希望将其作为自动化系统的一部分来执行。

Image description

这次,Sidekick 使用 shell 命令进行响应,允许我们使用 CLI 验证 surql 文件。与前面的示例一样,此答案还列出了其来源,让我们可以在文档网站上了解有关 CLI 工具的更多信息。

虽然向 Sidekick 询问广泛的数据库问题非常有用,但我们实际上可以要求 Sidekick 执行更具体的任务,例如关于查询的主题。

您的个人作家

有时,您只是不想编写复杂的查询,我们所有人都会遇到这种情况!您可以随时要求 Sidekick 为您生成查询。这是我个人最喜欢的 Sidekick 用例之一,也是它如何帮助提高您的工作效率的一个很好的例子。虽然 Sidekick 总是会尝试用有用的查询来响应,但一些生成的查询可能并不总是您想要的。在这些情况下,您可以简单地要求 Sidekick 修改之前的响应,或者生成一个完全不同的查询。

在下一个场景中,我们希望对假设的帖子表执行全文搜索,同时将标题置于内容之上。虽然这对于您希望将标题匹配排名更高时很有用,但它需要在查询中编写一些数学运算来计算综合分数。让我们让 Sidekick 为我们生成此查询。

Image description

就这样,Sidekick 为我们提供了一个 `SELECT` 查询,我们可能只需稍微修改一下就可以使用它,多么方便啊!虽然这只是一个具体的例子,但我们可以提出更多不同的问题,例如“如何从记录中选择除特定字段之外的所有字段”,或者“如何从图形边缘中选择多个字段?”。我不会用更多的例子来打扰你,相反,你可以自己尝试一下!

说到查询,Sidekick 的功能远不止创建查询。您可能会遇到同事编写的查询,但又无法理解。对于这些情况,Sidekick 也可以成为您的救星。

你的私人老师

除了告诉 Sidekick 生成查询之外,我们还可以反过来做。如果我们给 Sidekick 一个查询,并让它逐步解释它,会怎么样?

举个例子,我们来看看这个包含图形递归语法的查询。有很多事情要做,所以也许 Sidekick 可以帮助我们将其分解为单独的步骤并解释每个部分。

Image description

太棒了!我们现在可以了解每个单独的部分,并开始理解这个查询是如何组合在一起的。如果您仍然不太清楚,请随时回复后续问题,Sidekick 会尝试回答。

除了提供查询让 Sidekick 解释之外,您可能还会遇到以前从未见过的特定关键字或语法。在这些情况下,您也可以让 Sidekick 向您解释。在这个例子中,我们可以采用 SurrealQL 中存在的闭包语法,用于动态创建匿名函数。让我们看看 Sidekick 能否告诉我们它是如何工作的。

Image description

我们现在已经了解了如何使用 Sidekick 创建查询并向我们解释它们,但是还有一个最后用例可能更有用。

你的私人侦探

编写查询可能很困难,但调试查询可能更难。虽然 SurrealQL 是最容易使用的查询语言之一,但编写有效、高效且可维护的查询背后仍有许多错综复杂的问题。您可能会在编写复杂查询时遇到困难,或者遇到无法解决的错误。在这种情况下,您也可以让 Sidekick 为您提供帮助。

例如,在我们的产品表中,我们想要添加一个奶酪磨碎机,因此我们运行一个 `CREATE` 语句来创建一个 id 为 `product:cheese-grater` 的新记录,但是在执行此查询时,我们收到以下错误

Parse error: Unexpected token `-``, expected Eof

这真是太糟糕了,让我们看看 Sidekick 是否可以通过询问我们的记录 ID 被拒绝的原因来帮助我们解决这个问题。

Image description

Sidekick 正确地帮助我们确定了错误的原因,即记录 ID 必须进行转义,因为默认情况下不允许使用连字符。

就像我们在本博文中讨论的所有示例一样,这也只是众多可能性中的一个用例。下次您在调试查询时遇到困难时,我强烈建议您亲自尝试一下 Sidekick,因为它可能会为您节省宝贵的时间。

未来

虽然 Sidekick 是一款功能极其强大的工具,可以在很多方面为您提供帮助,但它目前仍处于测试阶段。这意味着响应可能并不总是完全准确。随着 Sidekick 继续回答问题并帮助编写查询,它将从对话中学习和成长。我们打算继续改进 Sidekick,并让它随时了解最新的 SurrealDB 功能。

此外,我们还计划进行许多进一步的改进,使 Sidekick 成为您 SurrealDB 体验的更大资产。