Playground

编辑

此功能处于技术预览阶段,可能会在未来的版本中更改或删除。Elastic 将努力解决任何问题,但技术预览中的功能不受官方 GA 功能的支持 SLA 约束。

使用 Playground 将您的 Elasticsearch 数据与大型语言模型 (LLM) 的强大功能结合起来,实现检索增强生成 (RAG)。聊天界面将您的自然语言问题转换为 Elasticsearch 查询,从您的 Elasticsearch 文档中检索最相关的结果,并将这些文档传递给 LLM 以生成定制的响应。

开始聊天后,可以使用 UI 查看和修改搜索您数据的 Elasticsearch 查询。您还可以查看为聊天界面提供支持的底层 Python 代码,并下载此代码以集成到您自己的应用程序中。

了解如何在此页面上入门。有关更高级的主题,请参阅以下内容

Playground 的工作原理

编辑

以下是 Playground 工作原理的简化概述

  • 用户 创建与 LLM 提供商的连接
  • 用户 选择用于生成响应的模型
  • 用户使用初始指令 定义模型的行为和语气

    • 示例: “您是一个用于问答任务的友好助手。保持响应尽可能清晰简洁。
  • 用户 选择要搜索的 Elasticsearch 索引
  • 用户在聊天界面中 输入问题
  • Playground 自动生成 Elasticsearch 查询以检索相关文档

    • 用户可以在 UI 中 查看和修改底层 Elasticsearch 查询
  • Playground 自动选择从检索到的文档中传递给 LLM 的相关字段

    • 用户可以 编辑目标字段
  • Playground 将 已筛选的文档 传递给 LLM

    • LLM 根据原始查询、初始指令、聊天记录和 Elasticsearch 上下文生成响应
  • 用户可以 查看为聊天界面提供支持的 Python 代码

    • 用户还可以 下载代码以集成到应用程序中

可用性和先决条件

编辑

对于 Elastic Cloud 和自管理部署,Playground 在 Kibana 的 搜索空间中提供,位于 内容 > Playground 下。

对于 Elastic Serverless,Playground 在您的 Elasticsearch 项目 UI 中提供。

要使用 Playground,您需要以下内容

  1. Elastic v8.14.0+ 部署或 Elasticsearch Serverless 项目。(开始免费试用)。
  2. 至少一个带有要搜索的文档的 Elasticsearch 索引

  3. 一个拥有 支持的 LLM 提供商 的帐户。Playground 支持以下内容

    提供商 模型 备注

    Amazon Bedrock

    • Anthropic:Claude 3.5 Sonnet
    • Anthropic:Claude 3 Haiku

    OpenAI

    • GPT-3 turbo
    • GPT-4 turbo
    • GPT-4 omni

    Azure OpenAI

    • GPT-3 turbo
    • GPT-4 turbo

    以大块缓冲响应

    Google

    • Google Gemini 1.5 Pro
    • Google Gemini 1.5 Flash

您还可以使用与 OpenAI SDK 兼容的本地托管 LLM。设置 LLM 后,您可以使用 OpenAI 连接器连接到它。有关示例,请参阅以下内容

入门

编辑
get started

连接到 LLM 提供商

编辑

要开始使用 Playground,您需要为您的 LLM 提供商创建一个 连接器。您还可以通过使用 OpenAI 连接器连接到与 OpenAI API 兼容的 本地托管 LLM

要连接到 LLM 提供商,请在 Playground 登录页面上按照以下步骤操作

  1. 连接到 LLM 下,单击 创建连接器
  2. 选择您的 LLM 提供商
  3. 命名 您的连接器。
  4. 选择一个 URL 端点(或使用默认值)。
  5. 输入您的 LLM 提供商的 访问凭据。(如果您使用 OpenAI 连接器运行本地托管 LLM,则必须在 API 密钥表单中输入一个值,但具体值无关紧要。)

如果您需要更新连接器或添加新连接器,请单击 模型设置 旁边的 🔧 管理 按钮。

引入数据(可选)

编辑

如果您的一个或多个 Elasticsearch 索引中已存在数据,则可以跳过此步骤。

将数据引入 Elasticsearch 有多种选项,包括

  • 用于 Web 内容的 Elastic 爬网程序注意:在 Serverless 中尚不可用)
  • 用于从第三方来源同步数据的 Elastic 连接器
  • 用于 JSON 文档的 Elasticsearch Bulk API

    展开以查看示例

    要将一些文档添加到名为 books 的索引中,请在 Dev Tools 控制台中运行以下命令

    POST /_bulk
    { "index" : { "_index" : "books" } }
    {"name": "Snow Crash", "author": "Neal Stephenson", "release_date": "1992-06-01", "page_count": 470}
    { "index" : { "_index" : "books" } }
    {"name": "Revelation Space", "author": "Alastair Reynolds", "release_date": "2000-03-15", "page_count": 585}
    { "index" : { "_index" : "books" } }
    {"name": "1984", "author": "George Orwell", "release_date": "1985-06-01", "page_count": 328}
    { "index" : { "_index" : "books" } }
    {"name": "Fahrenheit 451", "author": "Ray Bradbury", "release_date": "1953-10-15", "page_count": 227}
    { "index" : { "_index" : "books" } }
    {"name": "Brave New World", "author": "Aldous Huxley", "release_date": "1932-06-01", "page_count": 268}
    { "index" : { "_index" : "books" } }
    {"name": "The Handmaids Tale", "author": "Margaret Atwood", "release_date": "1985-06-01", "page_count": 311}

我们还提供了一些 Jupyter 笔记本,以轻松地将示例数据引入 Elasticsearch。在 elasticsearch-labs 存储库中找到这些笔记本。这些笔记本使用官方的 Elasticsearch Python 客户端。

选择 Elasticsearch 索引

编辑

连接到 LLM 提供商后,就可以选择要搜索的数据了。

  1. 单击 添加数据源
  2. 选择一个或多个 Elasticsearch 索引。
  3. 单击 保存并继续 以启动聊天界面。

您始终可以通过从主 Playground UI 中选择 数据 按钮来稍后添加或删除索引。

data button

聊天和查询模式

编辑

从 8.15.0 版本开始(以及更早版本的 Elasticsearch Serverless),主 Playground UI 有两种模式

  • 聊天模式:默认模式,您可以通过 LLM 与您的数据聊天。
  • 查询模式:查看和修改聊天界面生成的 Elasticsearch 查询。

当您首次设置 Playground 实例时,会选择 聊天模式

chat interface

要切换到 查询模式,请从主 UI 中选择 查询

query interface

查看和修改查询中了解有关用于搜索数据的底层 Elasticsearch 查询的更多信息

设置聊天界面

编辑

您可以立即开始与您的数据聊天,但您可能需要先调整一些默认设置。

您可以在 模型设置 下调整以下内容

  • 模型。用于生成响应的模型。
  • 指令。也称为系统提示,这些初始指令和指南定义了模型在整个对话过程中的行为。为了获得最佳效果,请清晰明确
  • 包含引用。一个切换开关,用于在响应中包含来自相关 Elasticsearch 文档的引用。

Playground 还在后台使用另一个 LLM 来编码所有先前的问题和响应,并使它们可供主模型使用。这确保了模型具有“对话记忆”。

索引 下,您可以编辑将搜索的 Elasticsearch 索引。这将影响底层的 Elasticsearch 查询。

单击 ✨ 重新生成 以将上一个查询重新发送到模型,以获得新的响应。

单击 ⟳ 清除聊天 以清除聊天记录并开始新的对话。

查看和下载 Python 代码

编辑

使用 查看代码 按钮查看为聊天界面提供支持的 Python 代码。您可以将其集成到您自己的应用程序中,并根据需要进行修改。我们目前支持两种实现选项

  • Elasticsearch Python 客户端 + LLM 提供商
  • LangChain + LLM 提供商
view code button

后续步骤

编辑

一旦您启动并运行 Playground,并且测试了聊天界面,您可能需要探索一些更高级的主题