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

2026年2月24日   |   by mebius

%title插图%num

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

创建 geocoing workflow

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

%title插图%num

%title插图%num

version: "1"
name: geocoding
description: "Geocoding for a location"
enabled: true

consts:
  geocoding_api_url: https://maps.googleapis.com/maps/api/geocode/json?key=

inputs:
  - name: location
    type: string
    required: true
    descrtgcodeiption: "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_loctgcodeation
    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。

%title插图%num

创建 gettgcode_coordinate_by_location 工具

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

%title插图%num

%title插图%num

%title插图%num

%title插图%num

创建 agent

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

%title插图%num

%title插图%num

%title插图%num

%title插图%num

%title插图%num

位置查询示例

我们进行如下的查询:

哪个离湖北广水最近?

%title插图%num

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

文章来源于互联网:Elasticsearch:创建 geocoding workflow,并在 agent 中使用它进行位置搜索

相关推荐: Elasticsearch:用于 LLMs 和搜索引擎的查询重写策略以改善结果

作者:来自 ElasticChristina Nasika及Emilia Garcia Casademont 探索查询重写策略,并说明如何使用 LLMs 的输出来提升原始查询的结果,最大化搜索相关性和召回率。 Elasticsearch内置了大量新功能,帮助你…

Tags: ,