local-places

📍 本地智能地点发现助手

🥥90总安装量 19评分人数 25
100% 的用户推荐

基于 Google Places API 的本地地点搜索代理,由知名开发者 steipete 开源,帮助用户快速发现周边餐厅、咖啡馆等场所。

A

基本安全,请在特定环境下使用

  • 来自可信组织或认证账号,需要结合权限范围判断
  • ✅ 无危险代码操作:未使用 eval/exec、subprocess、pickle 等高风险函数
  • ✅ 输入验证完善:Pydantic 模型对所有参数进行严格边界检查和类型约束
  • ✅ API 密钥管理规范:通过环境变量获取,无硬编码,缺失时返回通用错误
  • ✅ 网络请求安全:使用 httpx 并设置 10 秒超时,错误处理不暴露敏感信息
  • ⚠️ 缺少生产级防护:无内置速率限制、CORS 配置和请求审计日志

使用说明

核心用法

Local Places 是一个轻量级的 FastAPI 服务,作为 Google Places API 的本地代理,提供三步式地点发现流程:首先通过文本解析获取地理坐标(如"Soho, London"),然后基于位置偏移搜索特定类型场所(餐厅、咖啡馆等),最后可获取详细地点信息。支持丰富的过滤条件包括营业时间、评分阈值、价格等级等,并采用分页机制处理大量结果。

显著优点

1. 架构简洁清晰:代码结构简单,仅包含 4 个核心文件,功能单一专注,易于理解和维护
2. 输入验证严格:使用 Pydantic 模型对所有参数进行边界检查,包括经纬度范围、评分增量、价格等级等,有效防止无效输入

3. 安全设计良好:API 密钥通过环境变量管理,无硬编码风险;错误处理完善,不向用户暴露内部细节

4. 开发者信誉可靠:由知名 iOS 开发者 Peter Steinberger(steipete)创建,代码完全开源可审计

5. 部署便捷:基于 uv 工具链,支持一键安装和启动,适合本地开发环境快速搭建

潜在缺点与局限性

1. 功能范围受限:仅支持单一类型过滤(无法同时搜索餐厅和咖啡馆),且依赖 Google Places API 的配额限制
2. 无内置保护机制:缺少速率限制、CORS 配置和请求审计日志,在生产环境直接使用存在风险

3. 网络依赖性强:所有功能完全依赖 Google Places API,服务可用性与 Google 服务绑定

4. 本地部署限制:设计为 localhost 运行,如需公网访问需额外配置反向代理和安全加固

适合的目标群体

  • 需要快速集成地点搜索功能的本地开发者和原型设计师
  • 构建基于位置服务的 AI Agent 或聊天机器人开发者
  • 希望避免直接处理 Google Places API 复杂认证流程的团队
  • 对代码透明度有要求、偏好自托管方案的技术用户

使用风险

1. API 配额成本:Google Places API 按调用量计费,高频使用可能产生意外费用
2. 服务可用性:Google API 服务中断或网络问题将直接导致功能失效

3. 环境配置依赖:需要正确配置 GOOGLE_PLACES_API_KEY,密钥泄露可能导致配额被盗用

4. 性能瓶颈:未实现缓存机制,重复查询会多次调用付费 API

local-places 内容

src文件夹
local_places文件夹
手动下载zip · 7.1 kB
__init__.pytext/plain
请选择文件