本地地点搜索代理Skill local-places

这是一个本地代理工具,用于通过Google Places API搜索附近地点(如餐厅、咖啡馆等)。支持两步流程:先解析位置,再根据用户偏好进行精确搜索。适用于快速查找和集成到其他应用中。关键词:地点搜索、API代理、位置服务、Google Places、REST API。

后端开发 0 次安装 0 次浏览 更新于 3/24/2026

名称: 本地地点 描述: 通过本地Google Places API代理搜索地点(餐厅、咖啡馆等)。 主页: https://github.com/Hyaxia/local_places 元数据: { “otto”: { “emoji”: “📍”, “requires”: { “bins”: [“uv”], “env”: [“GOOGLE_PLACES_API_KEY”] }, “primaryEnv”: “GOOGLE_PLACES_API_KEY”, }, }

📍 本地地点

查找地点,快速行动

使用本地Google Places API代理搜索附近地点。两步流程:先解析位置,然后搜索。

设置

cd {baseDir}
echo "GOOGLE_PLACES_API_KEY=your-key" > .env
uv venv && uv pip install -e ".[dev]"
uv run --env-file .env uvicorn local_places.main:app --host 127.0.0.1 --port 8000

需要在.env或环境中设置GOOGLE_PLACES_API_KEY

快速开始

  1. 检查服务器: curl http://127.0.0.1:8000/ping

  2. 解析位置:

curl -X POST http://127.0.0.1:8000/locations/resolve \
  -H "Content-Type: application/json" \
  -d '{"location_text": "Soho, London", "limit": 5}'
  1. 搜索地点:
curl -X POST http://127.0.0.1:8000/places/search \
  -H "Content-Type: application/json" \
  -d '{
    "query": "coffee shop",
    "location_bias": {"lat": 51.5137, "lng": -0.1366, "radius_m": 1000},
    "filters": {"open_now": true, "min_rating": 4.0},
    "limit": 10
  }'
  1. 获取详情:
curl http://127.0.0.1:8000/places/{place_id}

对话流程

  1. 如果用户说“near me”或给出模糊位置 → 先解析它
  2. 如果多个结果 → 显示编号列表,让用户选择
  3. 询问偏好:类型、是否营业、评分、价格水平
  4. 使用选定位置的location_bias进行搜索
  5. 呈现结果,包括名称、评分、地址、营业状态
  6. 提供获取详情或精炼搜索的选项

过滤器约束

  • filters.types: 必须是一个类型(例如,“restaurant”、“cafe”、“gym”)
  • filters.price_levels: 整数0-4(0=免费,4=非常昂贵)
  • filters.min_rating: 0-5,以0.5递增
  • filters.open_now: 布尔值
  • limit: 搜索1-20,解析1-10
  • location_bias.radius_m: 必须大于0

响应格式

{
  "results": [
    {
      "place_id": "ChIJ...",
      "name": "Coffee Shop",
      "address": "123 Main St",
      "location": { "lat": 51.5, "lng": -0.1 },
      "rating": 4.6,
      "price_level": 2,
      "types": ["cafe", "food"],
      "open_now": true
    }
  ],
  "next_page_token": "..."
}

使用next_page_token作为page_token在下一个请求中获取更多结果。