Playground
Elastic Stack Serverless
此功能为技术预览版,可能会在未来的版本中更改或删除。Elastic 将努力修复任何问题,但技术预览版的功能不受官方 GA 功能的支持 SLA 的约束。
使用 Playground 将您的 Elasticsearch 数据与大型语言模型 (LLM) 的强大功能相结合,以实现检索增强生成 (RAG)。聊天界面将您的自然语言问题转换为 Elasticsearch 查询,从您的 Elasticsearch 文档中检索最相关的结果,并将这些文档传递给 LLM 以生成定制的响应。
开始聊天后,使用 UI 查看和修改搜索数据的 Elasticsearch 查询。您还可以查看支持聊天界面的底层 Python 代码,并下载此代码以集成到您自己的应用程序中。
了解如何从本页开始。有关更高级的主题,请参阅以下内容
观看这些视频教程,帮助您快速入门
以下是 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,您需要以下内容
Elastic v8.14.0+ 部署或 Elasticsearch Serverless 项目。(开始免费试用)。
至少一个包含要搜索的文档的 Elasticsearch 索引。
- 如果您想摄取示例数据,请参阅摄取数据。
具有受支持的 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 连接器连接到它。 有关示例,请参阅以下内容

要开始使用 Playground,您需要为您的 LLM 提供程序创建一个连接器。 您还可以使用 OpenAI 连接器连接到与 OpenAI API 兼容的本地托管 LLM。
要连接到 LLM 提供程序,请在 Playground 登录页面上执行以下步骤
- 在连接到 LLM下,单击创建连接器。
- 选择您的 LLM 提供程序。
- 命名您的连接器。
- 选择 URL 端点(或使用默认值)。
- 输入您的 LLM 提供程序的访问凭据。(如果您使用 OpenAI 连接器运行本地托管的 LLM,您必须在 API 密钥表单中输入一个值,但具体值无关紧要。)
如果您需要更新连接器或添加新连接器,请单击 模型设置 旁边的 🔧 管理 按钮。
如果您的一个或多个 Elasticsearch 索引中已存在数据,则可以跳过此步骤。
将数据摄取到 Elasticsearch 中有很多选择,包括
用于 Web 内容的 Elastic 爬网程序(注意:尚未在 Serverless 中提供)
用于从第三方来源同步的数据的Elastic 连接器
用于 JSON 文档的 Elasticsearch 批量 API
展开以查看示例
要将一些文档添加到名为
books
的索引,请在开发工具控制台中运行以下命令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 客户端。
连接到 LLM 提供程序后,就可以选择要搜索的数据了。
- 单击添加数据源。
- 选择一个或多个 Elasticsearch 索引。
- 单击保存并继续以启动聊天界面。
自 8.15.0(以及 Elasticsearch Serverless 的更早版本)以来,主 Playground UI 有两种模式
- 聊天模式:默认模式,您可以通过 LLM 与您的数据聊天。
- 查询模式:查看和修改聊天界面生成的 Elasticsearch 查询。
当您首次设置 Playground 实例时,会选择聊天模式。

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

在查看和修改查询中,了解有关用于搜索数据的底层 Elasticsearch 查询的更多信息
您可以立即开始与您的数据聊天,但您可能希望先调整一些默认设置。
您可以在模型设置下调整以下内容
- 模型。 用于生成响应的模型。
- 说明。 也称为系统提示,这些初始说明和指南定义了模型在整个对话中的行为。 为了获得最佳结果,请清晰明确。
- 包括引文。 用于在响应中包含来自相关 Elasticsearch 文档的引文的切换开关。
Playground 还在后台使用另一个 LLM 来编码所有以前的问题和响应,并使它们可用于主模型。 这确保模型具有“会话记忆”。
在索引下,您可以编辑将搜索哪些 Elasticsearch 索引。 这将影响底层 Elasticsearch 查询。
单击 ✨ 重新生成 以将上次查询重新发送到模型以获得新的响应。
单击 ⟳ 清除聊天 以清除聊天历史记录并开始新的对话。
使用 查看代码 按钮查看支持聊天界面的 Python 代码。 您可以将其集成到您自己的应用程序中,并根据需要进行修改。 我们目前支持两种实现选项
- Elasticsearch Python 客户端 + LLM 提供商
- LangChain + LLM 提供商

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