Elasticsearch:创建 geocoding workflow,并在 agent 中使用它进行位置搜索

我们知道在很多的应用场景中,我们需要定位服务,比如附近最近的餐馆或者酒店。当我们使用大模型进行 agent 任务执行的时候,我们需要位置服务。确切地说,我们需要根据位置来得到相应的经纬度来对数据进行搜索。而大模型有时不具备这种能力。我们在 AI Agents 的设计中,可以通过 workflow 的方法来创建这种工具。

创建 geocoing workflow

我们按照如下的方式来创建一个叫做 geocoding 的 workflow:

复制代码
version: "1"
name: geocoding
description: "Geocoding for a location"
enabled: true

consts:
  geocoding_api_url: https://maps.googleapis.com/maps/api/geocode/json?key=<Your API key>

inputs:
  - name: location
    type: string
    required: true
    description: "location (e.g., Washington)"

triggers:
  - type: manual


steps:
  - name: get_coordinate
    type: http
    with:
      url: "{{ consts.geocoding_api_url }}address={{ inputs.location }}"
      method: GET 


  - name: print_location
    type: console
    with:
      message: "{{ inputs.location }} coordinate is {\"lat\": {{ steps.get_coordinate.output.data.results[0].geometry.location.lat }}, \"lon\": {{ steps.get_coordinate.output.data.results[0].geometry.location.lng }} }."

在上面,我们需要填入自己的谷歌位置开发者 API key。

创建 get_coordinate_by_location 工具

我们接下来创建一个叫做 get_coordinate_by_location 的工具:

创建 agent

我们仿照之前的文章 "Elastic AI agent builder 介绍(一)" 来创建一个叫做 Find parents 的 agent。 它包含创建一个叫做 people 及 parents 的索引。

位置查询示例

我们进行如下的查询:

复制代码
哪个离湖北广水最近?

我们可以看到相应的 get_coordinate_by_location 被调用。

相关推荐
米小虾3 小时前
Agent = 大脑 + 眼睛 + 手脚:一篇看懂现代 AI Agent 的骨架
人工智能
小小测试开发3 小时前
安全评测得分 0.9556 掉到 0.3257,只改了 top_k 和 prompt_style 之外的题面比例
人工智能·安全·prompt
slacker-kian4 小时前
[实践]-用LLM对文本结构化:把多段文本描述变成规范的 JSON 知识库
人工智能·llm·prompt·结构化·pydantic·one-shot 提示
品牌常新4 小时前
景区巡逻机器人怎么选?派宝S5全地形守护解析
运维·人工智能·机器人
Elastic 中国社区官方博客4 小时前
一条 ES|QL 查询,涵盖365天的审计日志:在热数据和可搜索快照上执行相同的搜索
大数据·运维·服务器·elasticsearch·搜索引擎·全文检索
冬奇Lab4 小时前
LLM 驱动的自动化测试系列(13):Flaky Test 不是重跑几次就能解决的分类问题
人工智能·测试
血小溅4 小时前
当交付不再带来增长,医疗产品如何借 AI 持续进化?
人工智能
幻灭行度4 小时前
基于昇腾 910B NPU 部署 SenseVoiceSmall 语音识别服务
人工智能·语音识别
冬奇Lab5 小时前
一天一个开源项目(第237篇):DeepSeek Bot —— 把 DeepSeek Harness 变成一个有记忆、能群聊、会互相派活的 Bot 团队
人工智能·开源·deepseek