aspx高性能网站建设,公司建设网站方案,网站建设费是宣传费用吗,重庆网站seo好不好作者#xff1a;来自 Elastic Jonathan Simon 及 James Williams 试用这个示例房地产搜索应用#xff0c;它结合了 Azure Gen AI LLM Functions 与 Elasticsearch#xff0c;提供灵活的混合搜索结果。在 GitHub Codespaces 中查看逐步配置和运行该示例应用的方法。
更多阅读…作者来自 Elastic Jonathan Simon 及 James Williams 试用这个示例房地产搜索应用它结合了 Azure Gen AI LLM Functions 与 Elasticsearch提供灵活的混合搜索结果。在 GitHub Codespaces 中查看逐步配置和运行该示例应用的方法。
更多阅读统一 Elastic 向量数据库与 LLM 功能实现智能查询 Elasticsearch 原生集成了业界领先的 Gen AI 工具和提供商。查看我们的网络研讨会了解如何突破 RAG 基础或使用 Elastic 向量数据库构建可投入生产的应用。
为了为你的使用场景构建最佳搜索解决方案可以立即开始免费的云试用或在本地机器上试用 Elastic。 精准性。在关键时刻精准性至关重要。当你在寻找非常具体的信息时精准性非常重要。但有时查询过于精确会导致没有结果因此能够灵活扩展查询范围以发现更多潜在相关数据是很有优势的。
这篇博客介绍了如何使用 Elasticsearch 和 Azure Open AI 创建一个示例应用在搜索非常特定的房地产时找到准确结果同时在没有完全匹配时也能提供相关结果。我们将逐步演示如何创建一个 Elasticsearch 索引及其搜索模板。接着我们将详细说明如何创建一个应用让 Azure OpenAI 将用户查询转化为 Elasticsearch 的搜索模板查询从而生成高度定制的结果。
以下是创建这个房地产搜索示例应用所需的全部资源列表 Elasticsearch 索引与搜索模板 Azure Open AI Azure Maps API Codespaces Jupyter Notebook Semantic Kernel 带 Blazor 前端的 C# 应用 智能查询工作流 该工作流结合了 LLM、LLM 工具 和 搜索将自然语言查询转化为结构化且相关的搜索结果 LLM大语言模型解释复杂用户查询并编排工具以提取搜索意图并丰富上下文。 LLM 工具每个 LLM 工具是我们为此示例创建的 C# 程序共有三个工具 参数提取工具从查询中提取卧室数、浴室数、房屋特征和价格等关键属性。 地理编码工具将位置名称转换为用于空间过滤的纬度/经度。 搜索工具使用查询参数填充 Elasticsearch 搜索模板并执行搜索。 混合搜索执行全文 稠密向量混合搜索并内置机器学习推理。
这种分层方法为最终用户提供更智能、具备上下文感知的查询体验。 应用架构
下面是该示例应用的系统架构图。我们将使用 Codespaces 中的 Jupyter Notebook 与 Elastic Cloud 交互。 前置条件
你只需要一个浏览器因为我们将使用 GitHub Codespaces 来克隆示例应用、进行配置并运行它。Elastic 相关部分将使用 Elastic Cloud 创建一个 Elasticsearch Serverless 项目。我们还将使用 Azure Portal 来操作 Azure 资源。 在 Codespaces 中克隆示例应用仓库
首先克隆示例应用程序的代码。你可以在 GitHub Codespaces 中完成这一步它可以让你克隆并运行应用。点击 “New Codespace”。 然后在 “Repository” 下拉菜单中选择仓库 jwilliams-elastic/msbuild-intelligent-query-demo然后点击 “Create Codespace”。 创建 .env 文件
我们将使用 Python Jupyter Notebook 访问和操作 Elastic Cloud操作时会使用存储在配置文件中的配置值。Notebook 的配置文件应命名为 .env你现在需要创建它。
在 GitHub Codespaces 中点击 New File 按钮添加一个名为 .env 的文件将以下内容添加到新创建的 .env 文件中
ELASTIC_URL
ELASTIC_API_KEY 如你所见我们有几个缺失的值ELASTIC_URL 和 ELASTIC_API_KEY需要添加到 .env 文件中。现在我们通过创建一个 Elasticsearch 无服务器项目作为后端为我们的示例应用提供搜索功能。 创建 Elastic 无服务器项目
访问 cloud.elastic.co 并点击 Create New Serverless project点击 Next选择 Elasticsearch 解决方案选择 Optimized for Vectors设置 Cloud Provider 为 Azure点击 Create Serverless Project在主导航菜单点击 Getting Started向下滚动复制 Connection Details点击 Copy 按钮复制 Connection Details 中的 Elasticsearch Endpoint更新 .env 文件将 ELASTIC_URL 设置为复制的 Elasticsearch Endpoint 创建 Elastic API Key
打开 Elasticsearch Getting Started 页面在 Add an API Key 部分点击 New输入 Key Name点击 Create API Key点击 Copy 按钮复制 API key 的值回到 Codespaces打开正在编辑的 .env 文件粘贴复制的值设置 ELASTIC_API_KEY 打开 Codespaces Notebook 并安装库依赖
在文件资源管理器中选择 VectorDBSetup.ipynb 文件打开 Notebook。Notebook 加载后找到标题为 Install libraries 的部分点击该部分的播放按钮。
如果这是你第一次在 GitHub Codespaces 运行 Notebook系统会提示你选择 Codespaces Kernel 并配置 Python 环境。 使用 Codespaces Notebook 定义导入并加载环境变量
进入 Notebook 中标题为 Define imports and load environment variables 的下一部分点击该部分的播放按钮。
这段代码导入了 Notebook 使用的 Python 库并从你之前创建的 .env 文件加载环境变量。 使用 Codespaces Notebook 创建 Elastic ML 推理端点
进入 Notebook 中标题为 Create ML inference endpoint 的下一部分点击该部分的播放按钮。
这将会在 Elasticsearch 项目中创建一个新的 ML 推理端点用于从我们的数据生成文本向量。文本向量是文本的向量表示将存储在 Elasticsearch 中以支持语义搜索。 使用 Codespaces Notebook 创建 Elasticsearch 索引
进入 Notebook 中标题为 Create Elasticsearch index 的下一部分点击该部分的播放按钮。
这将创建 Elasticsearch 索引用来存储我们的示例数据以及通过 ML 推理端点生成的相关向量数据。 使用 Codespaces Notebook 创建 Elasticsearch 搜索模板
继续进入 Notebook 中标题为 Search Template 的下一部分点击该部分的播放按钮。
这会创建一个搜索模板我们的示例应用将使用该模板并填充用户搜索查询中解析出的词语。这样可以配置和控制我们在 Elasticsearch 索引中查询数据时的具体程度。 使用 Codespaces Notebook 向 Elasticsearch 索引导入数据
进入 Notebook 中标题为 Ingest property data 的下一部分点击该部分的运行按钮。
运行这段代码会批量加载 properties.jsonl 文件中的示例数据。几分钟后你会看到流程成功完成的确认信息。你可以通过访问 Elastic Cloud 中的 Index Management 部分确认索引中包含了预期的记录。 创建 appsettings.json 来配置 C# 应用
我们的 Elasticsearch 索引已经创建并填充了数据现在准备配置示例应用使其可以与 Elastic 和 Azure Cloud 一起使用。这个 C# 示例应用使用名为 appsettings.json 的文件来存储和加载访问信息如 API key。你现在将在 Codespaces 编辑器中创建 appsettings.json 文件。 在 HomeFinderApp 文件夹中创建 appsettings.json 将以下代码粘贴到 appsettings.json 文件中 {ElasticSettings: {Url: ,ApiKey: ,IndexName: properties,TemplateId: properties-search-template},AzureOpenAISettings: {Endpoint: ,ApiKey: ,DeploymentName: gpt-4o},AzureMapsSettings: {Url: https://atlas.microsoft.com/geocode,ApiKey: },Logging: {LogLevel: {Default: Information,Microsoft.AspNetCore: Warning}},AllowedHosts: *
}找到 ElasticSettings 部分下的 Url 和 ApiKey 值将它们设置为之前在 .env 文件中设置的相同值。 创建 Azure OpenAI 服务
我们的示例应用将使用 Azure OpenAI 来解析用户查询然后通过填充搜索模板向 Elasticsearch 发送请求以灵活地表达用户的搜索内容。
打开一个新的浏览器标签进入 Azure 门户中的 AI Foundry | Azure OpenAI点击 Create在创建表单中选择一个 Resource Group输入名称Name选择定价等级Pricing Tier点击 Next在 Network 标签页点击 Next在 Tags 标签页点击 Next在 Review and submit 标签页点击 Create创建完成后点击 Go to resource从左侧导航菜单选择 Keys and Endpoint复制 Endpoint并粘贴到你打开 Codespaces 编辑器的浏览器标签中的 appsettings.json 文件中然后回到包含 Azure OpenAI Key 和 Endpoint 页面浏览器标签点击 Key 1 的复制按钮将复制的值粘贴到你打开 Codespaces 编辑器的浏览器标签中的 appsettings.json 文件中 为 Azure OpenAI 服务添加 gpt-4o 模型部署
很好我们现在有了运行中的 Azure OpenAI 服务但还需要部署模型才能为示例应用提供所需的 LLM 功能。模型有很多选择我们这次部署 gpt-4o因为它已经在你创建的 appsettings.json 文件中指定了。
进入 Azure AI Foundry点击 Create a deployment搜索 gpt-4o 并从结果中选择它点击 Confirm 进行选择点击 Deploy 部署该模型
部署成功后点击左侧导航菜单的 Deployments确认列表中有 gpt-4o 部署且状态为 Succeeded。 创建 Azure Maps 账户
我们希望示例应用的用户能搜索特定区域的房产但不需要过于具体。如果有人想搜索靠近当地农贸市场的房产Azure Maps 是一个服务OpenAI 的 LLM 可以用它获取农贸市场的纬度和经度坐标。然后这些坐标会包含在基于搜索模板的请求中发送给 Elasticsearch用于处理包含具体位置和地理距离的用户查询。
点击 Azure Maps Accounts 中的 Create选择一个 Resource group输入 Name同意许可和隐私声明点击 Review and create点击 Create账户创建完成后点击 Go to resource点击左侧导航菜单的 Authentication复制 Primary Key 值粘贴到你打开 Codespaces 编辑器的浏览器标签中 appsettings.json 文件的 AzureMapsSettings 部分的 ApiKey 值中 试用示例应用
现在到了有趣的部分是时候运行示例应用了。我们已经完成所有配置细节并准备好了支持应用的 Elastic Cloud 和 Azure Cloud 资源。 在 Codespaces 编辑器中打开一个 Terminal 窗口。 使用以下命令将当前目录切换到示例应用文件夹。 cd HomeFinderApp 使用以下 dotnet 命令运行应用。 dotnet run 当出现 Open in Browser 按钮时点击它。 测试默认搜索然后尝试一些你自己的自定义搜索。如果你想查看更多关于后台如何生成搜索结果的细节可以点击 Tool Invocations 旁边的 Show 链接。 额外提示如果你真的想测试 GPT-4o试试以下搜索 Im looking for property near disney world fl with 30 bedrooms and 20 bathrooms and a pool and garage and near the beach for less than 200K. 这个查询会经过多次搜索工具调用后返回结果。 Elastic 是你搜索 AI 的解决方案
运行中的应用是一个示例展示了通过搜索模板使用 Elasticsearch 作为基础数据源进行生成式 AI LLM 引导的搜索。欢迎你试验并定制这个示例应用打造既精准又灵活的搜索体验帮助你的用户找到他们想要的内容。
谢谢阅读。试试 Elastic Cloud 吧。 原文Using Azure LLM Functions with Elasticsearch for smarter query experiences - Elasticsearch Labs