挑战:了解印度地址质量
印度的地址系统以多样性和复杂性而闻名。地址可能具有很强的描述性,但并不规范,包含当地地标,并且通常缺少精确的 PIN 码或一致的组成部分顺序。这给依赖准确位置数据的个人、电子商务平台、物流公司和服务提供商带来了重大挑战。印度地址经常遇到的主要问题包括:
- 缺少或错误的邮政编码: 邮政编码对于高效的邮件和包裹路由至关重要,但经常不准确或缺失。
- 拼写错误: 市行政区、城市或邦的名称中常见的拼写错误可能会导致误解。
- 组成部分顺序不规范: 地址元素的顺序(例如门牌号、街道、市行政区、城市)可能差异很大,导致难以进行自动化处理。
- 缺乏标准化: 口语术语、缩写和描述性引用(例如“在旧寺庙附近”)很常见,但标准系统无法理解。
- 包含关系信息: 诸如“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 - Web 界面
印度客户如何使用此工具
虽然主要目标是提供有关地址质量的反馈,但其优势远不止于此:
- 提高可送达性: 对于企业而言,了解如何更好地构建地址意味着配送失败的尝试次数更少、运营成本降低,以及客户满意度提高。个人也可以通过使用格式正确的地址,确保更可靠地收到包裹和邮件。
- 数据增强: 公司可以使用从该工具获得的洞见(或集成底层 API)来指导清理和标准化其现有的客户地址数据库,从而实现更好的分析和有针对性的服务。
- 直观验证: 双图钉地图显示功能尤其有价值。用户可以直观地确认原始地址和优化后的地址是否指向相同或不同的位置。这有助于确定“清理”后的版本是否准确反映了预期位置,或者原始输入是否过于模糊或错误,导致无法进行正确的地理编码。
通过了解地址中存在的具体问题(通过提供的反馈),用户可以采取纠正措施、更新记录并更有效地传达其位置信息。
此应用是什么?
此 Web 应用充当 AI 赋能的地址反馈系统的界面。它旨在帮助用户和企业验证、了解和改进实际地址,尤其侧重于印度地址的细微差别。该应用提供了一个用户友好的界面,用户可以在其中执行以下操作:
- 输入地址: 可以直接输入地址,也可以粘贴多个地址进行批量处理。
- 接收清理后的地址: 该应用会处理输入内容,并根据 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 执行以下操作:
- 剖析复杂且通常非结构化的地址输入。
- 识别和提取关键地址组成部分(例如 门牌号/单元号、楼栋名称、街道、市行政区、区/城镇、 城市、邦、PIN 码)。
- 更正常见的拼写错误和变体。
- 将组成部分重新排序为更适合印度的标准化格式 适合印度。
- 尽可能推断或标记缺失的关键信息。
生成“所做更改”列表和任何错误, 从而提高透明度。 该模型能够遵循这些详细指令,同时 处理各种语言模式和上下文信息,这是其在处理各种地址格式时发挥效力的关键。
服务和可伸缩性(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 响应,其中包含处理后的地址和其他相关信息,类似于应用中显示的内容。
此应用旨在简化地址的复杂性,提供一个有价值的工具来提高准确性和效率,尤其是在印度这样多样化且动态的环境中。