news 2026/8/6 19:20:27

用Seed Evolving+高德地图做城市旅行规划Agent,完美解决出行选择困难

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
用Seed Evolving+高德地图做城市旅行规划Agent,完美解决出行选择困难

前言

作为一个经常写 Flask 后端的 Python 开发者,我平时习惯用高德 API 做一些位置相关的工具。前段时间看到 Seed Evolving 模型做了第二次升级,主打 Coding 工程能力、Agent 检索能力和幻觉控制三个方向的提升。正好手头有高德开放平台的 API Key,就想试试:能不能让 Evolving 模型当"大脑",高德 API 当"眼睛",搭一个能真正用的城市旅行规划 Agent?

答案是:能,而且效果比我想象中好。

本篇是一个 Python 开发者的真实搭建记录:让 AI 帮你规划一场完美的城市旅行。

想做什么

简单说,就是用户输入一个城市名和旅行偏好,Agent 自动帮你:

  1. 规划每天的行程(上午、下午、晚上分别去哪)
  2. 从高德 API 拉取真实景点信息(地址、评分、电话)
  3. 查当天天气,给出穿衣和出行建议
  4. 生成一篇有温度的旅行指南文案
  5. 还能继续追问,比如"杭州有什么好吃的"

核心思路是验证 Seed Evolving 的三个升级点:

  • Agent 能力:多步骤任务规划,调用外部工具,整合结果
  • 检索能力:通过高德 API 搜索真实景点和美食
  • 幻觉控制:基于真实 API 数据生成内容,不编造地址和评分

怎么搭的

技术栈

组件选型说明
模型Doubao-Seed-Evolving火山方舟平台调用
地图 API高德开放平台地理编码、POI 搜索、天气查询
后端Flask + Python轻量 Web 框架
前端原生 HTML/CSS/JS不依赖框架,一个文件搞定

接入 Seed Evolving

火山方舟的 API 完全兼容 OpenAI 格式,接入非常简单。先在控制台创建推理接入点,拿到 Endpoint ID,然后直接 HTTP 调用就行:

创建在线推理:

下一步开通授权模型,享受免费token,不错不错!
开通并授权。

代码如下:

importrequestsdefcall_evolving(messages):headers={"Content-Type":"application/json","Authorization":f"Bearer{ARK_API_KEY}",}payload={"model":"ep-20260805083044-t5r5c",# 你的 Endpoint ID"messages":messages,"temperature":0.7,"max_tokens":4096,}resp=requests.post("https://ark.cn-beijing.volces.com/api/v3/chat/completions",headers=headers,json=payload,timeout=120,)resp.raise_for_status()returnresp.json()["choices"][0]["message"]["content"]

这里有个小细节:文档说可以直接用模型名doubao-seed-evolving调用,但我实际测试时发现需要先在控制台开通模型,创建推理接入点后用 Endpoint ID 调用才行。如果直接用模型名会返回 404 提示模型未开通。

Agent 三步走架构

整个 Agent 的核心是三步调用:

第一步:分析需求,生成行程框架

让 Evolving 根据城市名、天数、偏好生成 JSON 格式的行程规划。这里我用 system prompt 约束输出格式,要求它给出每天上午/下午/晚上的景点安排和美食推荐。

defagent_analyze_city(city,days,preferences):system_prompt="""你是一个专业的城市旅行规划助手。 根据用户提供的城市、旅行天数和偏好,生成详细的旅行规划框架。 输出 JSON 格式:包含每天的上下午晚行程、美食推荐、预算预估..."""user_msg=f"城市:{city}\n旅行天数:{days}天\n偏好:{preferences}"content=call_evolving([{"role":"system","content":system_prompt},{"role":"user","content":user_msg},])returnjson.loads(content)

第二步:用高德 API 获取真实数据

这一步是整个 Agent 的关键——拿 Evolving 生成的景点名,去高德 POI 搜索接口查真实信息。这样做有两个好处:一是景点地址、电话都是真实的,不会被模型编造;二是高德返回的评分数据可以作为推荐参考。

defagent_enrich_with_real_data(city,plan_json):spots=[]fordayinplan_json.get("days",[]):forperiodin["morning","afternoon","evening"]:spot=day.get(period,{}).get("spot","")ifspot:spots.append(spot)enriched_spots={}forspot_nameinspots:poi_data=amap_search_poi(spot_name,city)pois=poi_data.get("pois",[])ifpois:poi=pois[0]enriched_spots[spot_name]={"name":poi.get("name",spot_name),"address":poi.get("address","暂无地址"),"tel":poi.get("tel","暂无电话"),"rating":poi.get("biz_ext",{}).get("rating","暂无评分"),}# 顺便查天气weather_data=amap_weather(city)returnenriched_spots,weather_info

第三步:生成最终旅行指南

把前两步的结果——行程框架和真实景点数据——一起喂给 Evolving,让它生成一篇有温度的旅行文案。这一步最能体现模型的信息整合能力,它需要把行程安排、天气信息、真实景点地址融合成一篇流畅的文章。

defagent_generate_guide(city,plan_json,enriched_spots,weather_info,preferences):spots_summary="\n".join([f"-{info['name']}{info['address']}(评分:{info.get('rating','暂无')})"forinfoinenriched_spots.values()])returncall_evolving([{"role":"system","content":"你是一个旅行文案创作者..."},{"role":"user","content":f"城市:{city}\n天气:{weather_info}\n..."},])

高德 API 集成

高德的接口我用到了四个:

  1. 地理编码:城市名转坐标,验证城市是否有效
  2. POI 搜索:搜景点、搜美食,返回名称、地址、评分
  3. 天气查询:查城市当天天气,用于出行建议
  4. 景点/美食分类搜索:用高德的类型码筛选(景点 110000,美食 050000)
defamap_search_poi(keyword,city,types="",page=1):params={"key":AMAP_KEY,"keywords":keyword,"city":city,"citylimit":"true","offset":10,"page":page,"extensions":"all",}iftypes:params["types"]=types resp=requests.get(f"https://restapi.amap.com/v3/place/text",params=params)returnresp.json()

前端界面

前端就是一个 HTML 文件,用渐变色做背景,卡片式布局展示结果。交互上做了三步动画提示,让用户知道 Agent 正在做什么:

  • 第一步显示"分析旅行需求"
  • 第二步显示"调用高德 API 检索真实数据"
  • 第三步显示"生成个性化旅行指南"

还加了一个对话功能,规划完行程后可以继续追问关于这个城市的任何问题。

实际效果

运行效果如下:

输入目标城市,分析需求,智能Agent就检索数据,开始搜索并生成指南。

输入"杭州,2天,历史文化、美食",Agent 返回的结果让我挺惊喜的:



内容非常丰富,包括图文并茂,知识全面而且细腻:

天气感知:Evolving 注意到当天杭州中雨 26°C~36°C,主动给出了防滑、带伞、穿速干衣的建议。这不是模板话术,是真的看了天气数据后给的针对性建议。

行程合理性:Day 1 上午飞来峰+灵隐寺,下午岳王庙+孤山+西泠印社,晚上河坊街+南宋御街——这些景点在地理位置上确实是串联的,不是随机堆的。Day 2 去德寿宫遗址博物馆→胡雪岩故居→京杭大运河桥西街区,也是一条合理的路线。

真实数据校验:每个景点都从高德 API 拉到了真实地址。飞来峰的地址是"灵隐街道灵隐路法云弄1号",胡雪岩故居是"元宝街18号"——我查过,都是对的。没有出现编造地址的情况。

文案质量:生成的旅行指南标题是"两天一夜杭州旅行指南:雨中东晋南宋,一口杭帮烟火"——这个标题有调性,不像 AI 味的"杭州两日游攻略"。

对 Seed Evolving 的真实感受

用完之后说几点切身感受:

Agent 能力确实强。整个流程是三步串行调用,每步的输出作为下一步的输入。Evolving 在每一步都能稳定输出结构化 JSON,没有出现格式错乱。第二步用高德 API 拿到的真实数据喂给它,它能正确地把这些信息整合到最终文案里,没有丢失或混淆。

幻觉控制有明显改善。我特意测试了:如果高德 API 没返回某个景点的评分,Evolving 在文案里会写"暂无评分"而不是编一个分数。在景点地址上,它完全使用了高德返回的真实地址,没有自己编。这个在实际项目中非常重要——用户按 AI 给的地址去导航,结果地址是假的,这种体验是灾难性的。

长文本生成质量不错。最终生成的旅行指南有 800-1200 字,结构清晰,有开头引入、天气建议、每天行程详情、结尾总结。语言风格不是干巴巴的列表,而是有叙事感的旅行散文。

Token 效率。三步调用加起来消耗的 token 不算多,个人开发者 50 万免费额度够用很久了。

写在最后

这个项目原本只是想验证一下 Seed Evolving 的 Agent 能力,没想到做出来效果还不错,已经可以实际用了。整个开发过程大概花了半天时间,大部分时间在调试 prompt 和前端样式。

Seed Evolving 在这个项目里扮演的角色很清晰:它是 Agent 的大脑,负责理解需求、规划行程、整合信息、生成文案。高德 API 是眼睛和手,负责获取真实数据和验证。两者配合,做出一个既聪明又靠谱的旅行助手。

如果你也有类似的需求——需要让 AI 调用外部 API、整合多源数据、生成有质量的内容——可以参考这个方案试试。Seed Evolving 的 Agent 能力和幻觉控制,确实能撑住真实业务场景。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/6 19:17:59

LinkSwift网盘直链下载助手:一键获取九大网盘下载链接的终极解决方案

LinkSwift网盘直链下载助手:一键获取九大网盘下载链接的终极解决方案 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ,支持 百度网盘 / 阿里云盘 / 中国移…

作者头像 李华
网站建设 2026/8/6 19:14:33

视频处理效率工具盘点:压缩、裁剪、转格式、转文字的一站式方案

前言 视频处理的日常需求其实高度重复:录屏太大要压缩、横屏视频要裁成竖屏发短视频、Mov 要转 MP4、会议视频要转文字。每个需求装一个软件,电脑迟早变成"全家桶"。 这篇文章盘点视频处理的常见需求与工具方案,重点看看"浏览…

作者头像 李华
网站建设 2026/8/6 19:12:11

AI时代服务业增长新引擎:合肥GEO优化让品牌被看见

当客户在DeepSeek、文心一言或Kimi里问出“合肥哪家服务业公司口碑好”时,你的品牌会不会出现在答案里?这已经不是假设,而是每天都在发生的商业现实。越来越多的消费者已经养成了“遇事不决问AI”的习惯,从选餐厅到挑服务商&#…

作者头像 李华
网站建设 2026/8/6 19:03:29

联想拯救者工具箱终极指南:如何彻底告别臃肿的官方软件

联想拯救者工具箱终极指南:如何彻底告别臃肿的官方软件 【免费下载链接】LenovoLegionToolkit Lightweight Lenovo Vantage and Hotkeys replacement for Lenovo Legion laptops. 项目地址: https://gitcode.com/gh_mirrors/le/LenovoLegionToolkit 联想拯救…

作者头像 李华