当前位置: 首页 > news >正文

TripGenie:畅游济南旅行规划助手:个人工作纪实(二十二)

      这周,我进行了历史记录的设计与制作,我对于每一个用户与智能体交互得出的历史行程的数据进行了存储与可视化展示。

      首先,我设置了一个csv文件存储每一个得出的行程规划,注意这里的地图我设置了一个全路径进行存储,这样可以保证url路径可以被可视化到前端页面。csv文件中的标题为data、itinerary、mappath灯,存储相应的行程规划信息。

      在js文件中,我从后端获取存入的csv文件,并且对文件内容进行了切分。

      这里我对行程规划得到的行程规划、总体理由、行程设计进行展示,同时我设置了一个iframe框架来展示地图。

 try {// 尝试解析 Itinerary 字段中的 JSON 数据const itineraryInfo = JSON.parse(record.fullContent.replace(/'/g, '"'));// 提取行程规划const itineraryParts = itineraryInfo.itinerary || '行程规划信息暂无';// 提取总体理由const reasonParts = itineraryInfo['总体理由'] || '总体理由暂无';// 提取景点详细描述并格式化let poisHtml = '<div><strong>详细景点描述:</strong></div>';if (itineraryInfo.pois && typeof itineraryInfo.pois === 'object') {for (const key in itineraryInfo.pois) {poisHtml += `<div>${itineraryInfo.pois[key]}</div>`;}} else {poisHtml += '<div>景点描述暂无</div>';}// 创建历史记录卡片const historyCard = document.createElement('div');historyCard.className = 'history-card';historyCard.innerHTML = `<div class="history-card-header"><h3>${record.title}</h3></div><div class="history-card-body"><div class="history-date">${record.date}</div><div class="history-summary">${itineraryParts}</div><button class="history-toggle" onclick="toggleHistoryDetails(${record.id})"><i class="fas fa-chevron-down"></i> 查看详情</button><div class="history-details" id="details-${record.id}" style="display: none;"><div class="history-full-content"><div><strong>行程规划:</strong>${itineraryParts}</div>${poisHtml}<div><strong>总体理由:</strong>${reasonParts}</div></div><iframe class="history-map" src="${record.mapUrl}" frameborder="0"></iframe></div></div>`;historyCardsContainer.appendChild(historyCard);} catch (e) {console.error('解析历史记录失败:', e);// 如果解析失败,仍然显示基本的历史记录卡片const historyCard = document.createElement('div');historyCard.className = 'history-card';historyCard.innerHTML = `<div class="history-card-header"><h3>${record.title}</h3></div><div class="history-card-body"><div class="history-date">${record.date}</div><div class="history-summary">行程规划信息暂无</div><button class="history-toggle" onclick="toggleHistoryDetails(${record.id})"><i class="fas fa-chevron-down"></i> 查看详情</button><div class="history-details" id="details-${record.id}" style="display: none;"><div class="history-full-content"><div>行程规划:暂无详细信息</div><div>详细景点描述:暂无详细信息</div><div>总体理由:暂无详细信息</div></div><iframe class="history-map" src="${record.mapUrl}" frameborder="0"></iframe></div></div>`;historyCardsContainer.appendChild(historyCard);}

最终效果如下:

http://www.xdnf.cn/news/914977.html

相关文章:

  • [总结篇]个人网站
  • 应用层协议:HTTPS
  • 微软PowerBI考试 PL300-使用适用于 Power BI 的 Copilot 创建交互式报表
  • 2025年- H75-Lc183--121.买卖股票的最佳时机1(贪心or动态规划)--Java版
  • Vue:Ajax
  • 学习STC51单片机30(芯片为STC89C52RCRC)
  • 【leetcode】递归,回溯思想 + 巧妙解法-解决“N皇后”,以及“解数独”题目
  • c++学习-this指针
  • 微信小程序带参分享、链接功能
  • ​​Android 如何查看CPU架构?2025年主流架构有哪些?​
  • 文字转语音
  • 安卓基础(Java 和 Gradle 版本)
  • Qt Quick Test模块功能及架构
  • Qt/C++学习系列之列表使用记录
  • 网络原理5 - TCP4
  • 【HarmonyOS Next之旅】DevEco Studio使用指南(三十一) -> 同步云端代码至DevEco Studio工程
  • 【Java学习笔记】StringBuilder类(重点)
  • 基于 Transformer robert的情感分类任务实践总结之二——R-Drop
  • Python实例题:Python计算线性代数
  • SQL 基础入门
  • Vue学习之---nextTick
  • 抖去推--短视频矩阵系统源码开发
  • vue3 + vite实现动态路由,并进行vuex持久化设计
  • Vue ④-组件通信 || 进阶语法
  • 基于SFC的windows系统损坏修复程序
  • 个人电脑部署本地大模型+UI
  • SQL Server全局搜索:在整个数据库中查找特定值的高效方法
  • 11.RV1126-ROCKX项目 API和人脸检测画框
  • SCAU数值计算OJ
  • ​​Java 异常处理​​ 的详细说明及示例,涵盖 try-catch-finally、自定义异常、throws 与 throw 的核心概念和使用场景