用途:通过运行在本地的 Google Places API 代理搜索附近地点,如餐厅、咖啡馆等。采用两步流程:先解析位置,再执行搜索。
主要能力:提供位置解析、地点搜索和地点详情查询接口。搜索支持位置偏好(经纬度与半径)、筛选条件(类型、价格等级、最低评分、是否营业)以及分页。
使用方式:在项目目录创建 .env 并写入 GOOGLE_PLACES_API_KEY,然后执行 uv venv && uv pip install -e ".[dev]",再用 uv run --env-file .env uvicorn local_places.main:app --host 127.0.0.1 --port 8000 启动服务。可用 curl http://127.0.0.1:8000/ping 检查服务。位置解析调用 POST /locations/resolve,搜索调用 POST /places/search,详情调用 GET /places/{place_id}。
对话流程建议:用户说“near me”或位置模糊时先解析位置;多个结果时列出编号让用户选择;询问类型、是否营业、评分、价格等偏好;用选定位置作为 location_bias 搜索;展示名称、评分、地址、营业状态;可继续获取详情或细化搜索。
限制:filters.types 只能指定一个类型;price_levels 为 0-4 整数;min_rating 为 0-5 且以 0.5 递增;open_now 为布尔值;搜索 limit 为 1-20,解析 limit 为 1-10;location_bias.radius_m 必须大于 0。响应包含 results 与 next_page_token,下一页请求需将 next_page_token 作为 page_token 传入。需在 .env 或环境变量中提供 GOOGLE_PLACES_API_KEY。