挑战:了解印度地址质量
印度的地址系统以其多样性和复杂性而闻名。地址可能包含非常详细的描述信息,不符合标准化格式,包含当地地标,并且通常缺少精确的邮政编码或一致的组成部分顺序。这给依赖于准确位置数据的个人、电子商务平台、物流公司和服务提供商带来了巨大挑战。 印度地址经常遇到的主要问题包括:
- 邮政编码缺失或不正确:邮政编码对于高效的邮件和包裹投递至关重要,但经常出现不准确或缺失的情况。
- 拼写错误:地区、城市或州名称中的常见错误可能会导致误解。
- 非标准地址组成部分顺序:地址元素的顺序(例如门牌号、街道、地区、城市)可能差异很大,这使得自动处理变得困难。
- 缺乏标准化:使用口语化术语、缩写和描述性参考(例如“在旧庙附近”)很常见,但标准系统无法理解。
- 包含关系信息:地址中经常嵌入“S/o”(某某之子)、“D/o”(某某之女)或“C/o”(转交)等字词,从而添加非位置数据。
- 子地址表示法的变体:单元号、门牌号或地块号等组成部分(例如,“2/1”)的写法有很多种,例如“2/1”“2-1”“2 by 1”或“No 2, 1st part”,因此很难以一致的方式进行解析。
- 子地址详细信息的普遍性:许多地址(尤其是在城市地区)都包含重要的子地址信息,例如公寓编号、单元编号或楼栋翼楼详细信息,这些信息对于最后一英里配送至关重要,但通常是非结构化的。
- 歧义:地址有时可以有多种解读方式,导致无法确定确切的地点。
这些挑战可能会导致配送失败、运营成本增加、客户体验不佳,以及数据分析和服务规划困难。显然,我们需要一种能够快速获得有关地址质量的可据以采取行动的反馈的方法。
解决方案:AI 赋能的地址反馈
为了应对这些挑战,我们提出了一种使用生成式 AI 的解决方案。
此系统旨在为印度用户提供有关其地址的宝贵反馈,帮助他们了解潜在问题以及如何更好地设置地址格式,从而提高地理编码结果和整体准确性。
核心理念是在 Vertex AI 上使用 Gemini 模型来:
- 分析和解读复杂(通常格式有误)的印度地址。
- 识别常见错误和不一致之处。
- 建议标准化和更正后的版本。
- 清晰地说明所做的更改。
该系统提供两种形式: - REST API - 网页界面
印度客户如何使用此工具
虽然主要目的是提供有关地址质量的反馈,但好处远不止于此:
- 提高投递成功率:对于企业而言,了解如何更好地构建地址意味着投递失败次数更少、运营成本更低,以及客户满意度更高。个人还可以使用格式正确的地址,确保更可靠地收到包裹和邮件。
- 数据增强:公司可以使用从该工具中获得的洞见(或集成底层 API)来指导清理和标准化现有客户地址数据库,从而实现更好的分析和有针对性的服务。
- 直观验证:双图钉地图显示功能尤其有用。用户可以直观地确认原始地址和优化后的地址是否指向同一位置。这有助于确定“清理”后的版本是否准确反映了预期位置,或者原始输入是否过于模糊或错误,以致无法进行正确的地理编码。
通过了解反馈中指出的地址的具体问题,用户可以采取纠正措施、更新记录,并更有效地传达自己的位置信息。
这是什么应用?
此 Web 应用充当 AI 赋能的地址反馈系统的界面。该 API 旨在帮助用户和商家验证、了解和改进实体地址,尤其侧重于印度地址的细微差别。 该应用提供了一个人性化的界面,用户可以在其中执行以下操作:
- 输入地址:直接输入地址,或粘贴多个地址以进行批量处理。
- 接收清理后的地址:应用会处理输入内容,并根据 AI 模型的理解提供标准化、更正后的版本。
- 了解更改:它会突出显示对原始地址所做的具体修改,让您清楚了解反馈流程。
- 直观呈现差异:原始地址和清理后的地址都会固定在互动式地图上,以便用户直观地比较其位置,并一眼发现潜在的差异。
- 获取详细的组成部分:地理编码(清理)后的地址会分解为各个组成部分(例如门牌号、地点、城市、邮政编码),从而提供结构化视图。
此应用特别适合用于快速评估地址质量、了解潜在问题,以及了解如何更好地构建地址,以便供依赖标准化格式的系统使用。
后端架构:由 Gemini 和 Vertex AI 提供支持
此应用之所以能够理解和优化地址,是因为它采用了 Google Cloud 的先进 AI 技术:
- **核心地址处理:** 解析、理解、更正和标准化地址字符串的基本任务由 Google 的 Gemini 2.5 Flash 模型处理。提交地址时:
- 前端应用将输入地址发送到后端服务。
- 此后端服务利用了 Gemini API。Gemini 2.5 Flash 模型会收到详细的提示,以验证处理是否准确且标准化。提供给模型的核心指令如下:
You are an address cleaning expert. Your task is to take malformed addresses
and output cleaned and standardized versions. All addresses will be from India.
BEGIN:
Follow these instructions:
Remove any mention of "House Number," "H.No," "Door Number," "D.No,"
"Building No", "Flat No." etc. along with the number it's associated with
Remove any "C/O," "S/O," etc.
DO NOT REMOVE any name of building
It should also remove any name of person or actual house numbers etc which
appear after the texts mentioned in the previous point
Ensure there are no duplicate mentions of town names, state names, etc.
If no valid zip code is available, add an error in the Errors field:
"No valid zip code found. Please verify."
Remove mention of any Floors in the address
If there are any mention of "Near or landmark" put that in a new field called
"address_descriptors"
Expand any rd, ln, st and similar other abbreviations to road, lane, street etc.
END:
BEGIN: Structuring the output
Output the cleaned address in a single line.
Output address should put State, Country, Zip code at the end in that order.
If any critical component of the address is missing, mention that in errors section.
**Critically important:** Provide a detailed description of every change made
to the address in the "changes_made" field. Do not omit this field.
IF a House number or unit number was removed add that in a separate field
called "subpremise_details".
Output the errors in the field called "errors". If no errors, provide an empty
array.
Output all responses in JSON format.
END:
这种结构化提示可引导 Gemini 2.5 Flash 执行以下操作:
- 剖析复杂且通常非结构化的地址输入内容。
- 识别并提取关键地址组成部分(例如, 门牌号/公寓号、楼名、街道、市行政区、次级市行政区、城市、省/直辖市/自治区/地区、邮政编码)。
- 更正常见的拼写错误和变体。
- 将组件重新排序为更适合印度的标准化格式。
- 尽可能推断或标记缺失的关键信息。
生成“所做更改”的列表以及任何错误,从而提高透明度。 该模型能够遵循这些详细说明,同时处理各种语言模式和上下文信息,这是它在处理各种地址格式时能够发挥出色效果的关键。
服务和可伸缩性(Vertex AI/Google Cloud 上的 Cloud Run):用于编排对 Gemini API 的调用的后端服务,并将结果返回给前端,该服务构建为无服务器容器化应用。
此无服务器架构展示了部署此类服务的一种方式。作为演示应用,其主要目的是让客户快速获得有关地址质量的一些反馈。
如何使用该应用
您可以在印度地址反馈应用中找到该应用。
要使用此应用,请执行以下操作:
- 输入您的地址:在输入字段中输入或粘贴您的印度地址。
- 处理地址:点击“清理地址”按钮。
- 查看结果:应用将显示:
- 清理后的地址。
- 一张地图,显示原始位置和清理后的位置。
- 地址组成部分的细分。
- AI 所做的更改列表。
- 检测到的任何错误。
直接 API 调用示例(面向开发者)
对于希望直接集成地址处理功能的开发者或系统,可以通过编程方式调用后端服务。下面是一个使用 cURL
的示例:
curl -X POST \
https://gemini-address-cleaner-480439120941.us-central1.run.app/clean_address \
-H "Content-Type: application/json" \
-d '{
"input_address": "S/O Laum Mirzapur Mirzapur Muzaffarpur Bihar India Mirzapur purani Darbhanga road SELAMBA BIHAR 843103"
}'
此命令会发送一个 POST 请求,其中包含 JSON 有效负载中的地址字符串,并返回一个 JSON 响应,其中包含处理后的地址和其他相关信息,类似于应用中显示的内容。
此应用旨在简化地址的复杂性,提供一个有价值的工具来提高准确性和效率,尤其是在印度这样多样化且动态的环境中。