diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 00000000..359bb530 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,3 @@ +# 默认忽略的文件 +/shelf/ +/workspace.xml diff --git a/.idea/competition.iml b/.idea/competition.iml new file mode 100644 index 00000000..fb5c91ca --- /dev/null +++ b/.idea/competition.iml @@ -0,0 +1,15 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/inspectionProfiles/profiles_settings.xml b/.idea/inspectionProfiles/profiles_settings.xml new file mode 100644 index 00000000..105ce2da --- /dev/null +++ b/.idea/inspectionProfiles/profiles_settings.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 00000000..596e3697 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,7 @@ + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 00000000..70071cda --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 00000000..83067447 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/summer-ospp/McpMultiTravelPlanner/README b/summer-ospp/McpMultiTravelPlanner/README deleted file mode 100644 index 192956da..00000000 --- a/summer-ospp/McpMultiTravelPlanner/README +++ /dev/null @@ -1,12 +0,0 @@ -## 项目描述 -基于模型上下文协议(MCP)整合用户偏好、实时交通/天气数据、景点热度、消费成本等多源信息,并结合 SOTA模型(如Qwen3等)实现个性化行程生成、动态路线优化及体验模拟。 - -## 项目要求 -1. 集成来自交通、天气、景点等多个开放API的实时数据,对多源数据及进行预处理和融合 -2. 基于MindSpore,采用SOTA的多模态大语言模型,实现对用户偏好和多源信息的理解和处理,提供初步行程建议和路线规划 -3. 采用策略梯度的强化学习算法(如PPO),实现动态路线优化 -4. 开发交互式用户界面,展示个性化行程和路线规划结果,提升用户体验 - -## 版本要求 -* python>=3.9 -* MindSpore>=2.6 diff --git a/summer-ospp/McpMultiTravelPlanner/README.md b/summer-ospp/McpMultiTravelPlanner/README.md new file mode 100644 index 00000000..270b83b4 --- /dev/null +++ b/summer-ospp/McpMultiTravelPlanner/README.md @@ -0,0 +1,140 @@ +## 项目描述 +基于模型上下文协议(MCP)整合用户偏好、实时交通/天气数据、景点热度、消费成本等多源信息,并结合 SOTA模型(如Qwen3等)实现个性化行程生成、动态路线优化及体验模拟。 + +## 项目要求 +1. 集成来自交通、天气、景点等多个开放API的实时数据,对多源数据及进行预处理和融合 +2. 基于MindSpore,采用SOTA的多模态大语言模型,实现对用户偏好和多源信息的理解和处理,提供初步行程建议和路线规划 +3. 采用策略梯度的强化学习算法(如PPO),实现动态路线优化 +4. 开发交互式用户界面,展示个性化行程和路线规划结果,提升用户体验 + +## 版本要求 +* python>=3.9 +* MindSpore>=2.6 + +## 项目进度 +- 已完成获取天气、交通、酒店、景点、小红书旅游帖子、经纬度、美食等MCP工具的开发 +- 已完成ppo基于景点间距离、景点评分和花费,实现动态路线优化 +- 已完成文字、图片等多源信息的旅游攻略生成开发 +- 已完成vue3+flask的前后端分类的用户友好型web开发 +- 已完成基本测试 + +## 项目开发环境 +- 镜像环境: mindspore_2.4.10-cann_8.0.0-py_3.10-euler_2.10.11-aarch64-snt9 +- 实例规格:Ascend: 2*ascend-d910b|CPU: 48核 384GB +- Ascend-cann-nnae_8.0.0_linux-aarch64 +- Ascend-cann-kernels-910b_8.0.0_linux-aarch64.run +- python 库 + - mindspore == 2.4.10 + - transformers==4.39.2 + - torch==2.4.0 + - accelerate==0.24.1 + - mcp == 1.15.0 + - transformers-stream-generator==0.0.5 + - torch_npu==2.4.0 + - stable-baselines3 + - gymnasium + - sb3-contrib +- vite == 7.1.2 +- vue@3.5.21 + - @rollup/rollup-win32-x64-msvc == 4.50.1 + - @types/node == 24.5.2 + - @types/vue-router == 2.0.0 + - @vitejs/plugin-vue == 6.0.1 + - @vue/tsconfig == 0.7.0 + - typescript ~= 5.8.3 + +## 项目方案 +### MCP工具开发 +- 获取指定地点景点列表:利用高德地图的地点检索API, 5000次/月 +- 获取指定景点附近的酒店:利用百度地图的地点检索API,100次/天 +- 获取小红书上相关的旅游帖子作为参考:在coze中利用小红书插件搭建工作流并使用API +- 获取两地之间的步行/骑行/驾车/公共交通路线:利用百度地图的路径规划API,30000次/天 +- 获取指定地区的天气情况:利用百度地图天气API,300000次/天 +- 获取指定地点的经纬度(用于路径规划):利用百度地图地理编码API,5000次/天 +- 获取指定地点附近的美食:利用百度地图地点检索服务,通过美食相关关键字进行检索,100次/天 + +其中,百度地图和高德地图均需要在对应的开发者平台进行注册申请并替换相应的密钥。 + +获取小红书上相关的旅游帖子在coze中搭建的工作流样式为 +![img.png](imgs/img.png) + +### 强化学习 + +1. 状态空间 + +定义了智能体可观察到的环境信息,包含: + +```python +self.observation_space = spaces.Box( + low=0, + high=100, + shape=(max_attractions * 3 + 7,), # 维度:景点数*3 + 7个额外特征 + dtype=np.float32 +) +``` +具体观察内容(在`_get_obs`中定义): + +- 已访问景点标记(`self.visited`) +- 当前位置的独热编码(`current_pos_onehot`) +- 每个景点成本与剩余预算的比例(`cost_ratio`) +- 步数、剩余需访问景点数、总距离、总花费等辅助信息 + +2. 动作空间(Action Space) + +定义了智能体可执行的动作: + +```python +self.action_space = spaces.Discrete(max_attractions + 1) +``` + +- 动作`0 ~ max_attractions-1`:选择访问对应的景点 +- 动作`max_attractions`:终止行程(只有达到最少访问数后才有效) + +3. 奖励机制 + +- **基础奖励**:访问景点获得固定奖励(8 分)+ 景点评分奖励(评分 ×3) +- **惩罚项**:距离惩罚(距离 ×0.3)+ 超预算惩罚(超支部分 ×0.1) +- 激励项: + - 开始行程奖励(15 分) + - 达到最少访问数奖励(200 分) + - 探索未访问景点奖励(未访问数 ×0.3) + - 完成所有景点奖励(100 分) +- **终止奖励**:综合考虑访问数量、总评分、总距离和花费 + +4. 算法训练 + +采用200组景点数量为10-25的随机生成的景点数据进行训练 + +### 用户友好界面开发 +采用vue3进行前端界面的开发,首页支持用户填写地点、时间、人数、兴趣偏好、预算类型、活动强度等信息,聊天页支持查看旅游攻略生成结果并进行继续聊天。 +采用flask框架进行python后端接口的开发,分步骤返回方案生成状态。 + +## 效果与测试 + +### 首页效果 +![img](imgs/image-20250928004132390.png) +在旅游规划系统的首页,目的地、日期和人数为必填项。 + +点击“设置更多偏好?”,可以进行一些更细致的个人偏好设置,如兴趣标签、活动强度等。 +![image-20250928004315583](imgs/image-20250928004315583.png) +填写并保存好旅行信息和个人偏好后,点击“开始规划”按钮即可跳转到对话界面。 + +### 3.2 对话页面 + +进入对话界面,首先会展示用户设置的偏好取消,然后AI助手会实时返回后端接口处理步骤,如调用MCP工具、强化学习动态规划、生成旅行方案等。 + +![imgs](imgs/68d4587bfb6f6dbdb3c5861b37a93089.png) +![imgs](imgs/401364a97585769f9b2e1a51eb960817.png) +![imgs](imgs/087378480e8a3153cec71199fae83c1b.png) +![imgs](imgs/image-20250928022904772.png) +### 3.3 方案生成效果测试 + +方案包括每天的详细计划、包括景区的详细信息、图片、天气、景区间的交通方式和对应推荐等信息,用一种用户友好的方式进行展现。 + +![智能旅行助手 (2)](imgs/智能旅行助手%20(2).png) + +### 3.4 动态规划、自由对话效果测试 + +会根据用户的需求进行动态调整,而且会动态考虑天气、交通等情况。 + +![智能旅行助手 (3)](imgs/智能旅行助手%20(3).png) \ No newline at end of file diff --git a/summer-ospp/McpMultiTravelPlanner/TravelVue/.gitignore b/summer-ospp/McpMultiTravelPlanner/TravelVue/.gitignore new file mode 100644 index 00000000..a547bf36 --- /dev/null +++ b/summer-ospp/McpMultiTravelPlanner/TravelVue/.gitignore @@ -0,0 +1,24 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +dist +dist-ssr +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/summer-ospp/McpMultiTravelPlanner/TravelVue/.vscode/extensions.json b/summer-ospp/McpMultiTravelPlanner/TravelVue/.vscode/extensions.json new file mode 100644 index 00000000..a7cea0b0 --- /dev/null +++ b/summer-ospp/McpMultiTravelPlanner/TravelVue/.vscode/extensions.json @@ -0,0 +1,3 @@ +{ + "recommendations": ["Vue.volar"] +} diff --git a/summer-ospp/McpMultiTravelPlanner/TravelVue/README.md b/summer-ospp/McpMultiTravelPlanner/TravelVue/README.md new file mode 100644 index 00000000..33895ab2 --- /dev/null +++ b/summer-ospp/McpMultiTravelPlanner/TravelVue/README.md @@ -0,0 +1,5 @@ +# Vue 3 + TypeScript + Vite + +This template should help get you started developing with Vue 3 and TypeScript in Vite. The template uses Vue 3 ` + + diff --git a/summer-ospp/McpMultiTravelPlanner/TravelVue/package-lock.json b/summer-ospp/McpMultiTravelPlanner/TravelVue/package-lock.json new file mode 100644 index 00000000..ba3d43b6 --- /dev/null +++ b/summer-ospp/McpMultiTravelPlanner/TravelVue/package-lock.json @@ -0,0 +1,1689 @@ +{ + "name": "travelvue", + "version": "0.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "travelvue", + "version": "0.0.0", + "dependencies": { + "axios": "^1.12.2", + "marked": "^16.3.0", + "vue": "^3.5.18", + "vue-router": "^4.5.1" + }, + "devDependencies": { + "@rollup/rollup-win32-x64-msvc": "^4.50.1", + "@types/node": "^24.5.2", + "@types/vue-router": "^2.0.0", + "@vitejs/plugin-vue": "^6.0.1", + "@vue/tsconfig": "^0.7.0", + "typescript": "~5.8.3", + "vite": "^7.1.2", + "vue-tsc": "^3.0.5" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.27.1", + "resolved": "https://registry.npmmirror.com/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", + "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.27.1", + "resolved": "https://registry.npmmirror.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz", + "integrity": "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.28.4", + "resolved": "https://registry.npmmirror.com/@babel/parser/-/parser-7.28.4.tgz", + "integrity": "sha512-yZbBqeM6TkpP9du/I2pUZnJsRMGGvOuIrhjzC1AwHwW+6he4mni6Bp/m8ijn0iOuZuPI2BfkCoSRunpyjnrQKg==", + "dependencies": { + "@babel/types": "^7.28.4" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/types": { + "version": "7.28.4", + "resolved": "https://registry.npmmirror.com/@babel/types/-/types-7.28.4.tgz", + "integrity": "sha512-bkFqkLhh3pMBUQQkpVgWDWq/lqzc2678eUyDlTBhRqhCHFguYYGM0Efga7tYk4TogG/3x0EEl66/OQ+WGbWB/Q==", + "dependencies": { + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.25.9", + "resolved": "https://registry.npmmirror.com/@esbuild/aix-ppc64/-/aix-ppc64-0.25.9.tgz", + "integrity": "sha512-OaGtL73Jck6pBKjNIe24BnFE6agGl+6KxDtTfHhy1HmhthfKouEcOhqpSL64K4/0WCtbKFLOdzD/44cJ4k9opA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.25.9", + "resolved": "https://registry.npmmirror.com/@esbuild/android-arm/-/android-arm-0.25.9.tgz", + "integrity": "sha512-5WNI1DaMtxQ7t7B6xa572XMXpHAaI/9Hnhk8lcxF4zVN4xstUgTlvuGDorBguKEnZO70qwEcLpfifMLoxiPqHQ==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.25.9", + "resolved": "https://registry.npmmirror.com/@esbuild/android-arm64/-/android-arm64-0.25.9.tgz", + "integrity": "sha512-IDrddSmpSv51ftWslJMvl3Q2ZT98fUSL2/rlUXuVqRXHCs5EUF1/f+jbjF5+NG9UffUDMCiTyh8iec7u8RlTLg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.25.9", + "resolved": "https://registry.npmmirror.com/@esbuild/android-x64/-/android-x64-0.25.9.tgz", + "integrity": "sha512-I853iMZ1hWZdNllhVZKm34f4wErd4lMyeV7BLzEExGEIZYsOzqDWDf+y082izYUE8gtJnYHdeDpN/6tUdwvfiw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.25.9", + "resolved": "https://registry.npmmirror.com/@esbuild/darwin-arm64/-/darwin-arm64-0.25.9.tgz", + "integrity": "sha512-XIpIDMAjOELi/9PB30vEbVMs3GV1v2zkkPnuyRRURbhqjyzIINwj+nbQATh4H9GxUgH1kFsEyQMxwiLFKUS6Rg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.25.9", + "resolved": "https://registry.npmmirror.com/@esbuild/darwin-x64/-/darwin-x64-0.25.9.tgz", + "integrity": "sha512-jhHfBzjYTA1IQu8VyrjCX4ApJDnH+ez+IYVEoJHeqJm9VhG9Dh2BYaJritkYK3vMaXrf7Ogr/0MQ8/MeIefsPQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.25.9", + "resolved": "https://registry.npmmirror.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.9.tgz", + "integrity": "sha512-z93DmbnY6fX9+KdD4Ue/H6sYs+bhFQJNCPZsi4XWJoYblUqT06MQUdBCpcSfuiN72AbqeBFu5LVQTjfXDE2A6Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.25.9", + "resolved": "https://registry.npmmirror.com/@esbuild/freebsd-x64/-/freebsd-x64-0.25.9.tgz", + "integrity": "sha512-mrKX6H/vOyo5v71YfXWJxLVxgy1kyt1MQaD8wZJgJfG4gq4DpQGpgTB74e5yBeQdyMTbgxp0YtNj7NuHN0PoZg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.25.9", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-arm/-/linux-arm-0.25.9.tgz", + "integrity": "sha512-HBU2Xv78SMgaydBmdor38lg8YDnFKSARg1Q6AT0/y2ezUAKiZvc211RDFHlEZRFNRVhcMamiToo7bDx3VEOYQw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.25.9", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-arm64/-/linux-arm64-0.25.9.tgz", + "integrity": "sha512-BlB7bIcLT3G26urh5Dmse7fiLmLXnRlopw4s8DalgZ8ef79Jj4aUcYbk90g8iCa2467HX8SAIidbL7gsqXHdRw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.25.9", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-ia32/-/linux-ia32-0.25.9.tgz", + "integrity": "sha512-e7S3MOJPZGp2QW6AK6+Ly81rC7oOSerQ+P8L0ta4FhVi+/j/v2yZzx5CqqDaWjtPFfYz21Vi1S0auHrap3Ma3A==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.25.9", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-loong64/-/linux-loong64-0.25.9.tgz", + "integrity": "sha512-Sbe10Bnn0oUAB2AalYztvGcK+o6YFFA/9829PhOCUS9vkJElXGdphz0A3DbMdP8gmKkqPmPcMJmJOrI3VYB1JQ==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.25.9", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-mips64el/-/linux-mips64el-0.25.9.tgz", + "integrity": "sha512-YcM5br0mVyZw2jcQeLIkhWtKPeVfAerES5PvOzaDxVtIyZ2NUBZKNLjC5z3/fUlDgT6w89VsxP2qzNipOaaDyA==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.25.9", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-ppc64/-/linux-ppc64-0.25.9.tgz", + "integrity": "sha512-++0HQvasdo20JytyDpFvQtNrEsAgNG2CY1CLMwGXfFTKGBGQT3bOeLSYE2l1fYdvML5KUuwn9Z8L1EWe2tzs1w==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.25.9", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-riscv64/-/linux-riscv64-0.25.9.tgz", + "integrity": "sha512-uNIBa279Y3fkjV+2cUjx36xkx7eSjb8IvnL01eXUKXez/CBHNRw5ekCGMPM0BcmqBxBcdgUWuUXmVWwm4CH9kg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.25.9", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-s390x/-/linux-s390x-0.25.9.tgz", + "integrity": "sha512-Mfiphvp3MjC/lctb+7D287Xw1DGzqJPb/J2aHHcHxflUo+8tmN/6d4k6I2yFR7BVo5/g7x2Monq4+Yew0EHRIA==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.25.9", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-x64/-/linux-x64-0.25.9.tgz", + "integrity": "sha512-iSwByxzRe48YVkmpbgoxVzn76BXjlYFXC7NvLYq+b+kDjyyk30J0JY47DIn8z1MO3K0oSl9fZoRmZPQI4Hklzg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.25.9", + "resolved": "https://registry.npmmirror.com/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.9.tgz", + "integrity": "sha512-9jNJl6FqaUG+COdQMjSCGW4QiMHH88xWbvZ+kRVblZsWrkXlABuGdFJ1E9L7HK+T0Yqd4akKNa/lO0+jDxQD4Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.25.9", + "resolved": "https://registry.npmmirror.com/@esbuild/netbsd-x64/-/netbsd-x64-0.25.9.tgz", + "integrity": "sha512-RLLdkflmqRG8KanPGOU7Rpg829ZHu8nFy5Pqdi9U01VYtG9Y0zOG6Vr2z4/S+/3zIyOxiK6cCeYNWOFR9QP87g==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.25.9", + "resolved": "https://registry.npmmirror.com/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.9.tgz", + "integrity": "sha512-YaFBlPGeDasft5IIM+CQAhJAqS3St3nJzDEgsgFixcfZeyGPCd6eJBWzke5piZuZ7CtL656eOSYKk4Ls2C0FRQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.25.9", + "resolved": "https://registry.npmmirror.com/@esbuild/openbsd-x64/-/openbsd-x64-0.25.9.tgz", + "integrity": "sha512-1MkgTCuvMGWuqVtAvkpkXFmtL8XhWy+j4jaSO2wxfJtilVCi0ZE37b8uOdMItIHz4I6z1bWWtEX4CJwcKYLcuA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openharmony-arm64": { + "version": "0.25.9", + "resolved": "https://registry.npmmirror.com/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.9.tgz", + "integrity": "sha512-4Xd0xNiMVXKh6Fa7HEJQbrpP3m3DDn43jKxMjxLLRjWnRsfxjORYJlXPO4JNcXtOyfajXorRKY9NkOpTHptErg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.25.9", + "resolved": "https://registry.npmmirror.com/@esbuild/sunos-x64/-/sunos-x64-0.25.9.tgz", + "integrity": "sha512-WjH4s6hzo00nNezhp3wFIAfmGZ8U7KtrJNlFMRKxiI9mxEK1scOMAaa9i4crUtu+tBr+0IN6JCuAcSBJZfnphw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.25.9", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-arm64/-/win32-arm64-0.25.9.tgz", + "integrity": "sha512-mGFrVJHmZiRqmP8xFOc6b84/7xa5y5YvR1x8djzXpJBSv/UsNK6aqec+6JDjConTgvvQefdGhFDAs2DLAds6gQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.25.9", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-ia32/-/win32-ia32-0.25.9.tgz", + "integrity": "sha512-b33gLVU2k11nVx1OhX3C8QQP6UHQK4ZtN56oFWvVXvz2VkDoe6fbG8TOgHFxEvqeqohmRnIHe5A1+HADk4OQww==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.25.9", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-x64/-/win32-x64-0.25.9.tgz", + "integrity": "sha512-PPOl1mi6lpLNQxnGoyAfschAodRFYXJ+9fs6WHXz7CSWKbOqiMZsubC+BQsVKuul+3vKLuwTHsS2c2y9EoKwxQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "resolved": "https://registry.npmmirror.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==" + }, + "node_modules/@rolldown/pluginutils": { + "version": "1.0.0-beta.29", + "resolved": "https://registry.npmmirror.com/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.29.tgz", + "integrity": "sha512-NIJgOsMjbxAXvoGq/X0gD7VPMQ8j9g0BiDaNjVNVjvl+iKXxL3Jre0v31RmBYeLEmkbj2s02v8vFTbUXi5XS2Q==", + "dev": true + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.50.1", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.50.1.tgz", + "integrity": "sha512-HJXwzoZN4eYTdD8bVV22DN8gsPCAj3V20NHKOs8ezfXanGpmVPR7kalUHd+Y31IJp9stdB87VKPFbsGY3H/2ag==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.50.1", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.50.1.tgz", + "integrity": "sha512-PZlsJVcjHfcH53mOImyt3bc97Ep3FJDXRpk9sMdGX0qgLmY0EIWxCag6EigerGhLVuL8lDVYNnSo8qnTElO4xw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.50.1", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.50.1.tgz", + "integrity": "sha512-xc6i2AuWh++oGi4ylOFPmzJOEeAa2lJeGUGb4MudOtgfyyjr4UPNK+eEWTPLvmPJIY/pgw6ssFIox23SyrkkJw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.50.1", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.50.1.tgz", + "integrity": "sha512-2ofU89lEpDYhdLAbRdeyz/kX3Y2lpYc6ShRnDjY35bZhd2ipuDMDi6ZTQ9NIag94K28nFMofdnKeHR7BT0CATw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.50.1", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.50.1.tgz", + "integrity": "sha512-wOsE6H2u6PxsHY/BeFHA4VGQN3KUJFZp7QJBmDYI983fgxq5Th8FDkVuERb2l9vDMs1D5XhOrhBrnqcEY6l8ZA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.50.1", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.50.1.tgz", + "integrity": "sha512-A/xeqaHTlKbQggxCqispFAcNjycpUEHP52mwMQZUNqDUJFFYtPHCXS1VAG29uMlDzIVr+i00tSFWFLivMcoIBQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.50.1", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.50.1.tgz", + "integrity": "sha512-54v4okehwl5TaSIkpp97rAHGp7t3ghinRd/vyC1iXqXMfjYUTm7TfYmCzXDoHUPTTf36L8pr0E7YsD3CfB3ZDg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.50.1", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.50.1.tgz", + "integrity": "sha512-p/LaFyajPN/0PUHjv8TNyxLiA7RwmDoVY3flXHPSzqrGcIp/c2FjwPPP5++u87DGHtw+5kSH5bCJz0mvXngYxw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.50.1", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.50.1.tgz", + "integrity": "sha512-2AbMhFFkTo6Ptna1zO7kAXXDLi7H9fGTbVaIq2AAYO7yzcAsuTNWPHhb2aTA6GPiP+JXh85Y8CiS54iZoj4opw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.50.1", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.50.1.tgz", + "integrity": "sha512-Cgef+5aZwuvesQNw9eX7g19FfKX5/pQRIyhoXLCiBOrWopjo7ycfB292TX9MDcDijiuIJlx1IzJz3IoCPfqs9w==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loongarch64-gnu": { + "version": "4.50.1", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.50.1.tgz", + "integrity": "sha512-RPhTwWMzpYYrHrJAS7CmpdtHNKtt2Ueo+BlLBjfZEhYBhK00OsEqM08/7f+eohiF6poe0YRDDd8nAvwtE/Y62Q==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-gnu": { + "version": "4.50.1", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.50.1.tgz", + "integrity": "sha512-eSGMVQw9iekut62O7eBdbiccRguuDgiPMsw++BVUg+1K7WjZXHOg/YOT9SWMzPZA+w98G+Fa1VqJgHZOHHnY0Q==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.50.1", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.50.1.tgz", + "integrity": "sha512-S208ojx8a4ciIPrLgazF6AgdcNJzQE4+S9rsmOmDJkusvctii+ZvEuIC4v/xFqzbuP8yDjn73oBlNDgF6YGSXQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-musl": { + "version": "4.50.1", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.50.1.tgz", + "integrity": "sha512-3Ag8Ls1ggqkGUvSZWYcdgFwriy2lWo+0QlYgEFra/5JGtAd6C5Hw59oojx1DeqcA2Wds2ayRgvJ4qxVTzCHgzg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.50.1", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.50.1.tgz", + "integrity": "sha512-t9YrKfaxCYe7l7ldFERE1BRg/4TATxIg+YieHQ966jwvo7ddHJxPj9cNFWLAzhkVsbBvNA4qTbPVNsZKBO4NSg==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.50.1", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.50.1.tgz", + "integrity": "sha512-MCgtFB2+SVNuQmmjHf+wfI4CMxy3Tk8XjA5Z//A0AKD7QXUYFMQcns91K6dEHBvZPCnhJSyDWLApk40Iq/H3tA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.50.1", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.50.1.tgz", + "integrity": "sha512-nEvqG+0jeRmqaUMuwzlfMKwcIVffy/9KGbAGyoa26iu6eSngAYQ512bMXuqqPrlTyfqdlB9FVINs93j534UJrg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-openharmony-arm64": { + "version": "4.50.1", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.50.1.tgz", + "integrity": "sha512-RDsLm+phmT3MJd9SNxA9MNuEAO/J2fhW8GXk62G/B4G7sLVumNFbRwDL6v5NrESb48k+QMqdGbHgEtfU0LCpbA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "openharmony" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.50.1", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.50.1.tgz", + "integrity": "sha512-hpZB/TImk2FlAFAIsoElM3tLzq57uxnGYwplg6WDyAxbYczSi8O2eQ+H2Lx74504rwKtZ3N2g4bCUkiamzS6TQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.50.1", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.50.1.tgz", + "integrity": "sha512-SXjv8JlbzKM0fTJidX4eVsH+Wmnp0/WcD8gJxIZyR6Gay5Qcsmdbi9zVtnbkGPG8v2vMR1AD06lGWy5FLMcG7A==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.50.1", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.50.1.tgz", + "integrity": "sha512-StxAO/8ts62KZVRAm4JZYq9+NqNsV7RvimNK+YM7ry//zebEH6meuugqW/P5OFUCjyQgui+9fUxT6d5NShvMvA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "os": [ + "win32" + ] + }, + "node_modules/@types/estree": { + "version": "1.0.8", + "resolved": "https://registry.npmmirror.com/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", + "dev": true + }, + "node_modules/@types/node": { + "version": "24.5.2", + "resolved": "https://registry.npmmirror.com/@types/node/-/node-24.5.2.tgz", + "integrity": "sha512-FYxk1I7wPv3K2XBaoyH2cTnocQEu8AOZ60hPbsyukMPLv5/5qr7V1i8PLHdl6Zf87I+xZXFvPCXYjiTFq+YSDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~7.12.0" + } + }, + "node_modules/@types/vue-router": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/@types/vue-router/-/vue-router-2.0.0.tgz", + "integrity": "sha512-E454lQ6tp9ftVWdZ8VGZpRcIV4YeqVAcx/uifl3P1GGwscYsxOFdYfgIuKasKO0Fm6Np2JM/L378D3bcRQE9hg==", + "deprecated": "This is a stub types definition for vue-router (https://github.com/vuejs/vue-router). ecmarkup provides its own type definitions, so you don\\'t need @types/ecmarkup installed!", + "dev": true, + "license": "MIT", + "dependencies": { + "vue-router": "*" + } + }, + "node_modules/@vitejs/plugin-vue": { + "version": "6.0.1", + "resolved": "https://registry.npmmirror.com/@vitejs/plugin-vue/-/plugin-vue-6.0.1.tgz", + "integrity": "sha512-+MaE752hU0wfPFJEUAIxqw18+20euHHdxVtMvbFcOEpjEyfqXH/5DCoTHiVJ0J29EhTJdoTkjEv5YBKU9dnoTw==", + "dev": true, + "dependencies": { + "@rolldown/pluginutils": "1.0.0-beta.29" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "peerDependencies": { + "vite": "^5.0.0 || ^6.0.0 || ^7.0.0", + "vue": "^3.2.25" + } + }, + "node_modules/@volar/language-core": { + "version": "2.4.23", + "resolved": "https://registry.npmmirror.com/@volar/language-core/-/language-core-2.4.23.tgz", + "integrity": "sha512-hEEd5ET/oSmBC6pi1j6NaNYRWoAiDhINbT8rmwtINugR39loROSlufGdYMF9TaKGfz+ViGs1Idi3mAhnuPcoGQ==", + "dev": true, + "dependencies": { + "@volar/source-map": "2.4.23" + } + }, + "node_modules/@volar/source-map": { + "version": "2.4.23", + "resolved": "https://registry.npmmirror.com/@volar/source-map/-/source-map-2.4.23.tgz", + "integrity": "sha512-Z1Uc8IB57Lm6k7q6KIDu/p+JWtf3xsXJqAX/5r18hYOTpJyBn0KXUR8oTJ4WFYOcDzWC9n3IflGgHowx6U6z9Q==", + "dev": true + }, + "node_modules/@volar/typescript": { + "version": "2.4.23", + "resolved": "https://registry.npmmirror.com/@volar/typescript/-/typescript-2.4.23.tgz", + "integrity": "sha512-lAB5zJghWxVPqfcStmAP1ZqQacMpe90UrP5RJ3arDyrhy4aCUQqmxPPLB2PWDKugvylmO41ljK7vZ+t6INMTag==", + "dev": true, + "dependencies": { + "@volar/language-core": "2.4.23", + "path-browserify": "^1.0.1", + "vscode-uri": "^3.0.8" + } + }, + "node_modules/@vue/compiler-core": { + "version": "3.5.21", + "resolved": "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.5.21.tgz", + "integrity": "sha512-8i+LZ0vf6ZgII5Z9XmUvrCyEzocvWT+TeR2VBUVlzIH6Tyv57E20mPZ1bCS+tbejgUgmjrEh7q/0F0bibskAmw==", + "dependencies": { + "@babel/parser": "^7.28.3", + "@vue/shared": "3.5.21", + "entities": "^4.5.0", + "estree-walker": "^2.0.2", + "source-map-js": "^1.2.1" + } + }, + "node_modules/@vue/compiler-dom": { + "version": "3.5.21", + "resolved": "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.5.21.tgz", + "integrity": "sha512-jNtbu/u97wiyEBJlJ9kmdw7tAr5Vy0Aj5CgQmo+6pxWNQhXZDPsRr1UWPN4v3Zf82s2H3kF51IbzZ4jMWAgPlQ==", + "dependencies": { + "@vue/compiler-core": "3.5.21", + "@vue/shared": "3.5.21" + } + }, + "node_modules/@vue/compiler-sfc": { + "version": "3.5.21", + "resolved": "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.5.21.tgz", + "integrity": "sha512-SXlyk6I5eUGBd2v8Ie7tF6ADHE9kCR6mBEuPyH1nUZ0h6Xx6nZI29i12sJKQmzbDyr2tUHMhhTt51Z6blbkTTQ==", + "dependencies": { + "@babel/parser": "^7.28.3", + "@vue/compiler-core": "3.5.21", + "@vue/compiler-dom": "3.5.21", + "@vue/compiler-ssr": "3.5.21", + "@vue/shared": "3.5.21", + "estree-walker": "^2.0.2", + "magic-string": "^0.30.18", + "postcss": "^8.5.6", + "source-map-js": "^1.2.1" + } + }, + "node_modules/@vue/compiler-ssr": { + "version": "3.5.21", + "resolved": "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.5.21.tgz", + "integrity": "sha512-vKQ5olH5edFZdf5ZrlEgSO1j1DMA4u23TVK5XR1uMhvwnYvVdDF0nHXJUblL/GvzlShQbjhZZ2uvYmDlAbgo9w==", + "dependencies": { + "@vue/compiler-dom": "3.5.21", + "@vue/shared": "3.5.21" + } + }, + "node_modules/@vue/compiler-vue2": { + "version": "2.7.16", + "resolved": "https://registry.npmmirror.com/@vue/compiler-vue2/-/compiler-vue2-2.7.16.tgz", + "integrity": "sha512-qYC3Psj9S/mfu9uVi5WvNZIzq+xnXMhOwbTFKKDD7b1lhpnn71jXSFdTQ+WsIEk0ONCd7VV2IMm7ONl6tbQ86A==", + "dev": true, + "dependencies": { + "de-indent": "^1.0.2", + "he": "^1.2.0" + } + }, + "node_modules/@vue/devtools-api": { + "version": "6.6.4", + "resolved": "https://registry.npmmirror.com/@vue/devtools-api/-/devtools-api-6.6.4.tgz", + "integrity": "sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==", + "license": "MIT" + }, + "node_modules/@vue/language-core": { + "version": "3.0.7", + "resolved": "https://registry.npmmirror.com/@vue/language-core/-/language-core-3.0.7.tgz", + "integrity": "sha512-0sqqyqJ0Gn33JH3TdIsZLCZZ8Gr4kwlg8iYOnOrDDkJKSjFurlQY/bEFQx5zs7SX2C/bjMkmPYq/NiyY1fTOkw==", + "dev": true, + "dependencies": { + "@volar/language-core": "2.4.23", + "@vue/compiler-dom": "^3.5.0", + "@vue/compiler-vue2": "^2.7.16", + "@vue/shared": "^3.5.0", + "alien-signals": "^2.0.5", + "muggle-string": "^0.4.1", + "path-browserify": "^1.0.1", + "picomatch": "^4.0.2" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@vue/reactivity": { + "version": "3.5.21", + "resolved": "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.5.21.tgz", + "integrity": "sha512-3ah7sa+Cwr9iiYEERt9JfZKPw4A2UlbY8RbbnH2mGCE8NwHkhmlZt2VsH0oDA3P08X3jJd29ohBDtX+TbD9AsA==", + "dependencies": { + "@vue/shared": "3.5.21" + } + }, + "node_modules/@vue/runtime-core": { + "version": "3.5.21", + "resolved": "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.5.21.tgz", + "integrity": "sha512-+DplQlRS4MXfIf9gfD1BOJpk5RSyGgGXD/R+cumhe8jdjUcq/qlxDawQlSI8hCKupBlvM+3eS1se5xW+SuNAwA==", + "dependencies": { + "@vue/reactivity": "3.5.21", + "@vue/shared": "3.5.21" + } + }, + "node_modules/@vue/runtime-dom": { + "version": "3.5.21", + "resolved": "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.5.21.tgz", + "integrity": "sha512-3M2DZsOFwM5qI15wrMmNF5RJe1+ARijt2HM3TbzBbPSuBHOQpoidE+Pa+XEaVN+czbHf81ETRoG1ltztP2em8w==", + "dependencies": { + "@vue/reactivity": "3.5.21", + "@vue/runtime-core": "3.5.21", + "@vue/shared": "3.5.21", + "csstype": "^3.1.3" + } + }, + "node_modules/@vue/server-renderer": { + "version": "3.5.21", + "resolved": "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.5.21.tgz", + "integrity": "sha512-qr8AqgD3DJPJcGvLcJKQo2tAc8OnXRcfxhOJCPF+fcfn5bBGz7VCcO7t+qETOPxpWK1mgysXvVT/j+xWaHeMWA==", + "dependencies": { + "@vue/compiler-ssr": "3.5.21", + "@vue/shared": "3.5.21" + }, + "peerDependencies": { + "vue": "3.5.21" + } + }, + "node_modules/@vue/shared": { + "version": "3.5.21", + "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.5.21.tgz", + "integrity": "sha512-+2k1EQpnYuVuu3N7atWyG3/xoFWIVJZq4Mz8XNOdScFI0etES75fbny/oU4lKWk/577P1zmg0ioYvpGEDZ3DLw==" + }, + "node_modules/@vue/tsconfig": { + "version": "0.7.0", + "resolved": "https://registry.npmmirror.com/@vue/tsconfig/-/tsconfig-0.7.0.tgz", + "integrity": "sha512-ku2uNz5MaZ9IerPPUyOHzyjhXoX2kVJaVf7hL315DC17vS6IiZRmmCPfggNbU16QTvM80+uYYy3eYJB59WCtvg==", + "dev": true, + "peerDependencies": { + "typescript": "5.x", + "vue": "^3.4.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + }, + "vue": { + "optional": true + } + } + }, + "node_modules/alien-signals": { + "version": "2.0.7", + "resolved": "https://registry.npmmirror.com/alien-signals/-/alien-signals-2.0.7.tgz", + "integrity": "sha512-wE7y3jmYeb0+h6mr5BOovuqhFv22O/MV9j5p0ndJsa7z1zJNPGQ4ph5pQk/kTTCWRC3xsA4SmtwmkzQO+7NCNg==", + "dev": true + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "license": "MIT" + }, + "node_modules/axios": { + "version": "1.12.2", + "resolved": "https://registry.npmmirror.com/axios/-/axios-1.12.2.tgz", + "integrity": "sha512-vMJzPewAlRyOgxV2dU0Cuz2O8zzzx9VYtbJOaBgXFeLc4IV/Eg50n4LowmehOOR61S8ZMpc2K5Sa7g6A4jfkUw==", + "license": "MIT", + "dependencies": { + "follow-redirects": "^1.15.6", + "form-data": "^4.0.4", + "proxy-from-env": "^1.1.0" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmmirror.com/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "license": "MIT", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmmirror.com/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" + }, + "node_modules/de-indent": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/de-indent/-/de-indent-1.0.2.tgz", + "integrity": "sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==", + "dev": true + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmmirror.com/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/esbuild": { + "version": "0.25.9", + "resolved": "https://registry.npmmirror.com/esbuild/-/esbuild-0.25.9.tgz", + "integrity": "sha512-CRbODhYyQx3qp7ZEwzxOk4JBqmD/seJrzPa/cGjY1VtIn5E09Oi9/dB4JwctnfZ8Q8iT7rioVv5k/FNT/uf54g==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.25.9", + "@esbuild/android-arm": "0.25.9", + "@esbuild/android-arm64": "0.25.9", + "@esbuild/android-x64": "0.25.9", + "@esbuild/darwin-arm64": "0.25.9", + "@esbuild/darwin-x64": "0.25.9", + "@esbuild/freebsd-arm64": "0.25.9", + "@esbuild/freebsd-x64": "0.25.9", + "@esbuild/linux-arm": "0.25.9", + "@esbuild/linux-arm64": "0.25.9", + "@esbuild/linux-ia32": "0.25.9", + "@esbuild/linux-loong64": "0.25.9", + "@esbuild/linux-mips64el": "0.25.9", + "@esbuild/linux-ppc64": "0.25.9", + "@esbuild/linux-riscv64": "0.25.9", + "@esbuild/linux-s390x": "0.25.9", + "@esbuild/linux-x64": "0.25.9", + "@esbuild/netbsd-arm64": "0.25.9", + "@esbuild/netbsd-x64": "0.25.9", + "@esbuild/openbsd-arm64": "0.25.9", + "@esbuild/openbsd-x64": "0.25.9", + "@esbuild/openharmony-arm64": "0.25.9", + "@esbuild/sunos-x64": "0.25.9", + "@esbuild/win32-arm64": "0.25.9", + "@esbuild/win32-ia32": "0.25.9", + "@esbuild/win32-x64": "0.25.9" + } + }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" + }, + "node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmmirror.com/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "dev": true, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/follow-redirects": { + "version": "1.15.11", + "resolved": "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.11.tgz", + "integrity": "sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "license": "MIT", + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/form-data": { + "version": "4.0.4", + "resolved": "https://registry.npmmirror.com/form-data/-/form-data-4.0.4.tgz", + "integrity": "sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==", + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", + "hasown": "^2.0.2", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true, + "bin": { + "he": "bin/he" + } + }, + "node_modules/magic-string": { + "version": "0.30.19", + "resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.30.19.tgz", + "integrity": "sha512-2N21sPY9Ws53PZvsEpVtNuSW+ScYbQdp4b9qUaL+9QkHUrGFKo56Lg9Emg5s9V/qrtNBmiR01sYhUOwu3H+VOw==", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.5" + } + }, + "node_modules/marked": { + "version": "16.3.0", + "resolved": "https://registry.npmmirror.com/marked/-/marked-16.3.0.tgz", + "integrity": "sha512-K3UxuKu6l6bmA5FUwYho8CfJBlsUWAooKtdGgMcERSpF7gcBUrCGsLH7wDaaNOzwq18JzSUDyoEb/YsrqMac3w==", + "license": "MIT", + "bin": { + "marked": "bin/marked.js" + }, + "engines": { + "node": ">= 20" + } + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/muggle-string": { + "version": "0.4.1", + "resolved": "https://registry.npmmirror.com/muggle-string/-/muggle-string-0.4.1.tgz", + "integrity": "sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==", + "dev": true + }, + "node_modules/nanoid": { + "version": "3.3.11", + "resolved": "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/path-browserify": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/path-browserify/-/path-browserify-1.0.1.tgz", + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", + "dev": true + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==" + }, + "node_modules/picomatch": { + "version": "4.0.3", + "resolved": "https://registry.npmmirror.com/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/postcss": { + "version": "8.5.6", + "resolved": "https://registry.npmmirror.com/postcss/-/postcss-8.5.6.tgz", + "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.11", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "license": "MIT" + }, + "node_modules/rollup": { + "version": "4.50.1", + "resolved": "https://registry.npmmirror.com/rollup/-/rollup-4.50.1.tgz", + "integrity": "sha512-78E9voJHwnXQMiQdiqswVLZwJIzdBKJ1GdI5Zx6XwoFKUIk09/sSrr+05QFzvYb8q6Y9pPV45zzDuYa3907TZA==", + "dev": true, + "dependencies": { + "@types/estree": "1.0.8" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.50.1", + "@rollup/rollup-android-arm64": "4.50.1", + "@rollup/rollup-darwin-arm64": "4.50.1", + "@rollup/rollup-darwin-x64": "4.50.1", + "@rollup/rollup-freebsd-arm64": "4.50.1", + "@rollup/rollup-freebsd-x64": "4.50.1", + "@rollup/rollup-linux-arm-gnueabihf": "4.50.1", + "@rollup/rollup-linux-arm-musleabihf": "4.50.1", + "@rollup/rollup-linux-arm64-gnu": "4.50.1", + "@rollup/rollup-linux-arm64-musl": "4.50.1", + "@rollup/rollup-linux-loongarch64-gnu": "4.50.1", + "@rollup/rollup-linux-ppc64-gnu": "4.50.1", + "@rollup/rollup-linux-riscv64-gnu": "4.50.1", + "@rollup/rollup-linux-riscv64-musl": "4.50.1", + "@rollup/rollup-linux-s390x-gnu": "4.50.1", + "@rollup/rollup-linux-x64-gnu": "4.50.1", + "@rollup/rollup-linux-x64-musl": "4.50.1", + "@rollup/rollup-openharmony-arm64": "4.50.1", + "@rollup/rollup-win32-arm64-msvc": "4.50.1", + "@rollup/rollup-win32-ia32-msvc": "4.50.1", + "@rollup/rollup-win32-x64-msvc": "4.50.1", + "fsevents": "~2.3.2" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/tinyglobby": { + "version": "0.2.15", + "resolved": "https://registry.npmmirror.com/tinyglobby/-/tinyglobby-0.2.15.tgz", + "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==", + "dev": true, + "dependencies": { + "fdir": "^6.5.0", + "picomatch": "^4.0.3" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/typescript": { + "version": "5.8.3", + "resolved": "https://registry.npmmirror.com/typescript/-/typescript-5.8.3.tgz", + "integrity": "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==", + "devOptional": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/undici-types": { + "version": "7.12.0", + "resolved": "https://registry.npmmirror.com/undici-types/-/undici-types-7.12.0.tgz", + "integrity": "sha512-goOacqME2GYyOZZfb5Lgtu+1IDmAlAEu5xnD3+xTzS10hT0vzpf0SPjkXwAw9Jm+4n/mQGDP3LO8CPbYROeBfQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/vite": { + "version": "7.1.5", + "resolved": "https://registry.npmmirror.com/vite/-/vite-7.1.5.tgz", + "integrity": "sha512-4cKBO9wR75r0BeIWWWId9XK9Lj6La5X846Zw9dFfzMRw38IlTk2iCcUt6hsyiDRcPidc55ZParFYDXi0nXOeLQ==", + "dev": true, + "dependencies": { + "esbuild": "^0.25.0", + "fdir": "^6.5.0", + "picomatch": "^4.0.3", + "postcss": "^8.5.6", + "rollup": "^4.43.0", + "tinyglobby": "^0.2.15" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^20.19.0 || >=22.12.0", + "jiti": ">=1.21.0", + "less": "^4.0.0", + "lightningcss": "^1.21.0", + "sass": "^1.70.0", + "sass-embedded": "^1.70.0", + "stylus": ">=0.54.8", + "sugarss": "^5.0.0", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "jiti": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, + "node_modules/vscode-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/vscode-uri/-/vscode-uri-3.1.0.tgz", + "integrity": "sha512-/BpdSx+yCQGnCvecbyXdxHDkuk55/G3xwnC0GqY4gmQ3j+A+g8kzzgB4Nk/SINjqn6+waqw3EgbVF2QKExkRxQ==", + "dev": true + }, + "node_modules/vue": { + "version": "3.5.21", + "resolved": "https://registry.npmmirror.com/vue/-/vue-3.5.21.tgz", + "integrity": "sha512-xxf9rum9KtOdwdRkiApWL+9hZEMWE90FHh8yS1+KJAiWYh+iGWV1FquPjoO9VUHQ+VIhsCXNNyZ5Sf4++RVZBA==", + "dependencies": { + "@vue/compiler-dom": "3.5.21", + "@vue/compiler-sfc": "3.5.21", + "@vue/runtime-dom": "3.5.21", + "@vue/server-renderer": "3.5.21", + "@vue/shared": "3.5.21" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/vue-router": { + "version": "4.5.1", + "resolved": "https://registry.npmmirror.com/vue-router/-/vue-router-4.5.1.tgz", + "integrity": "sha512-ogAF3P97NPm8fJsE4by9dwSYtDwXIY1nFY9T6DyQnGHd1E2Da94w9JIolpe42LJGIl0DwOHBi8TcRPlPGwbTtw==", + "license": "MIT", + "dependencies": { + "@vue/devtools-api": "^6.6.4" + }, + "funding": { + "url": "https://github.com/sponsors/posva" + }, + "peerDependencies": { + "vue": "^3.2.0" + } + }, + "node_modules/vue-tsc": { + "version": "3.0.7", + "resolved": "https://registry.npmmirror.com/vue-tsc/-/vue-tsc-3.0.7.tgz", + "integrity": "sha512-BSMmW8GGEgHykrv7mRk6zfTdK+tw4MBZY/x6fFa7IkdXK3s/8hQRacPjG9/8YKFDIWGhBocwi6PlkQQ/93OgIQ==", + "dev": true, + "dependencies": { + "@volar/typescript": "2.4.23", + "@vue/language-core": "3.0.7" + }, + "bin": { + "vue-tsc": "bin/vue-tsc.js" + }, + "peerDependencies": { + "typescript": ">=5.0.0" + } + } + } +} diff --git a/summer-ospp/McpMultiTravelPlanner/TravelVue/package.json b/summer-ospp/McpMultiTravelPlanner/TravelVue/package.json new file mode 100644 index 00000000..1764c6d9 --- /dev/null +++ b/summer-ospp/McpMultiTravelPlanner/TravelVue/package.json @@ -0,0 +1,27 @@ +{ + "name": "travelvue", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "vue-tsc -b && vite build", + "preview": "vite preview" + }, + "dependencies": { + "axios": "^1.12.2", + "marked": "^16.3.0", + "vue": "^3.5.18", + "vue-router": "^4.5.1" + }, + "devDependencies": { + "@rollup/rollup-win32-x64-msvc": "^4.50.1", + "@types/node": "^24.5.2", + "@types/vue-router": "^2.0.0", + "@vitejs/plugin-vue": "^6.0.1", + "@vue/tsconfig": "^0.7.0", + "typescript": "~5.8.3", + "vite": "^7.1.2", + "vue-tsc": "^3.0.5" + } +} diff --git a/summer-ospp/McpMultiTravelPlanner/TravelVue/public/vite.svg b/summer-ospp/McpMultiTravelPlanner/TravelVue/public/vite.svg new file mode 100644 index 00000000..e7b8dfb1 --- /dev/null +++ b/summer-ospp/McpMultiTravelPlanner/TravelVue/public/vite.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/summer-ospp/McpMultiTravelPlanner/TravelVue/src/App.vue b/summer-ospp/McpMultiTravelPlanner/TravelVue/src/App.vue new file mode 100644 index 00000000..5a54a8b8 --- /dev/null +++ b/summer-ospp/McpMultiTravelPlanner/TravelVue/src/App.vue @@ -0,0 +1,21 @@ + + + + + \ No newline at end of file diff --git a/summer-ospp/McpMultiTravelPlanner/TravelVue/src/api/travel.ts b/summer-ospp/McpMultiTravelPlanner/TravelVue/src/api/travel.ts new file mode 100644 index 00000000..210475b6 --- /dev/null +++ b/summer-ospp/McpMultiTravelPlanner/TravelVue/src/api/travel.ts @@ -0,0 +1,59 @@ +import request from '../utils/request'; + +// 定义请求参数类型(与Flask后端接收的参数对应) +export interface TravelPlanParams { + city: string; + date: string; + people: string; // 注意后端用的是peolpe(可能是拼写错误),但前端传参仍用people + tag: string | string[]; + activityIntensity: string; + money: string; + food: string; +} + +// 定义单个行程项类型 +export interface ItineraryItem { + date: string; + time_begin: string; + time_end: string; + name: string; + spend_money: string; + category: string; + detail: string; +} + +// 定义接口响应类型 +export interface TravelPlanResponse { + system_message: string; + user_message: string; + tool_message: string; + response: string; // 这里实际是JSON数组字符串,后续需要解析为ItineraryItem[] +} + +/** + * 调用Flask后端生成旅游规划 + * @param params 旅游规划参数 + * @returns 规划结果 + */ +export const getTravelResponse = async (params: TravelPlanParams): Promise => { + const res = await request.post('/api/getRespone', params); + return res.data; +}; + +/** + * 解析响应中的行程数据为对象数组 + * @param responseStr 后端返回的response字段字符串 + * @returns 行程项数组 + */ +export const parseItinerary = (responseStr: string): ItineraryItem[] => { + try { + // 处理可能的格式问题(比如后端返回的字符串可能包含多余的分号或空格) + const cleaned = responseStr.replace(/;/g, '').trim(); + // 如果是数组形式但缺少外层括号,补充完整 + const jsonStr = cleaned.startsWith('[') ? cleaned : `[${cleaned}]`; + return JSON.parse(jsonStr) as ItineraryItem[]; + } catch (error) { + console.error('解析行程数据失败:', error); + return []; + } +}; \ No newline at end of file diff --git a/summer-ospp/McpMultiTravelPlanner/TravelVue/src/assets/vue.svg b/summer-ospp/McpMultiTravelPlanner/TravelVue/src/assets/vue.svg new file mode 100644 index 00000000..770e9d33 --- /dev/null +++ b/summer-ospp/McpMultiTravelPlanner/TravelVue/src/assets/vue.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/summer-ospp/McpMultiTravelPlanner/TravelVue/src/components/Chat.vue b/summer-ospp/McpMultiTravelPlanner/TravelVue/src/components/Chat.vue new file mode 100644 index 00000000..4e49d942 --- /dev/null +++ b/summer-ospp/McpMultiTravelPlanner/TravelVue/src/components/Chat.vue @@ -0,0 +1,1195 @@ + + + + + diff --git a/summer-ospp/McpMultiTravelPlanner/TravelVue/src/components/HelloWorld.vue b/summer-ospp/McpMultiTravelPlanner/TravelVue/src/components/HelloWorld.vue new file mode 100644 index 00000000..1b40df22 --- /dev/null +++ b/summer-ospp/McpMultiTravelPlanner/TravelVue/src/components/HelloWorld.vue @@ -0,0 +1,25 @@ + + + + + diff --git a/summer-ospp/McpMultiTravelPlanner/TravelVue/src/components/Home.vue b/summer-ospp/McpMultiTravelPlanner/TravelVue/src/components/Home.vue new file mode 100644 index 00000000..e87f27ea --- /dev/null +++ b/summer-ospp/McpMultiTravelPlanner/TravelVue/src/components/Home.vue @@ -0,0 +1,784 @@ + + + + + diff --git a/summer-ospp/McpMultiTravelPlanner/TravelVue/src/main.ts b/summer-ospp/McpMultiTravelPlanner/TravelVue/src/main.ts new file mode 100644 index 00000000..b6aa5f55 --- /dev/null +++ b/summer-ospp/McpMultiTravelPlanner/TravelVue/src/main.ts @@ -0,0 +1,8 @@ +import { createApp } from 'vue' +import './style.css' +import App from './App.vue' +import router from './router' // 导入路由配置 + +const app = createApp(App); +app.use(router) // 注册路由到应用 +app.mount('#app') // 挂载到DOM \ No newline at end of file diff --git a/summer-ospp/McpMultiTravelPlanner/TravelVue/src/router/index.ts b/summer-ospp/McpMultiTravelPlanner/TravelVue/src/router/index.ts new file mode 100644 index 00000000..19b00e26 --- /dev/null +++ b/summer-ospp/McpMultiTravelPlanner/TravelVue/src/router/index.ts @@ -0,0 +1,27 @@ +// src/router/index.ts +import { createRouter, createWebHistory } from 'vue-router' +// 导入views中的子页面 +import Chat from '../components/Chat.vue' +import Home from '../components/Home.vue' + +// 路由规则:path(URL路径)对应component(子页面组件) +const routes = [ + { + path: '/chat', // 对话页路径(URL为xxx/chat) + name: 'Chat', + component: Chat // 关联ChatPage.vue子页面 + }, + { + path: '/', // 根路径重定向到对话页 + name: 'Home', + component: Home + }, +] + +// 创建路由实例 +const router = createRouter({ + history: createWebHistory(), // 无#号的HTML5历史模式 + routes // 传入路由规则 +}) + +export default router \ No newline at end of file diff --git a/summer-ospp/McpMultiTravelPlanner/TravelVue/src/style.css b/summer-ospp/McpMultiTravelPlanner/TravelVue/src/style.css new file mode 100644 index 00000000..c12ccc42 --- /dev/null +++ b/summer-ospp/McpMultiTravelPlanner/TravelVue/src/style.css @@ -0,0 +1,578 @@ +* { + margin: 0; + padding: 0; + box-sizing: border-box; + font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; +} + +:root { + --primary: #3a86ff; + --secondary: #ff006e; + --accent: #8338ec; + --light: #f8f9fa; + --dark: #212529; + --success: #38b000; + --warning: #ffbe0b; + --info: #219ebc; + --gray: #6c757d; + --light-gray: #e9ecef; +} + +body { + background-color: #f5f7fa; + color: var(--dark); + line-height: 1.6; +} + +.container { + max-width: 1200px; + margin: 0 auto; + padding: 0 20px; +} + +header { + background: linear-gradient(135deg, var(--primary) 0%, var(--accent) 100%); + color: white; + padding: 15px 0; + box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1); +} + +.header-content { + display: flex; + justify-content: space-between; + align-items: center; +} + +.logo { + font-size: 1.8rem; + font-weight: 700; + display: flex; + align-items: center; +} + +.logo i { + margin-right: 10px; +} + +nav ul { + display: flex; + list-style: none; +} + +nav li { + margin-left: 25px; +} + +nav a { + color: white; + text-decoration: none; + font-weight: 500; + transition: opacity 0.3s; +} + +nav a:hover { + opacity: 0.8; +} + +.hero { + position: relative; + height: 550px; + overflow: hidden; + border-radius: 0 0 15px 15px; + margin-bottom: 40px; + box-shadow: 0 10px 30px rgba(0, 0, 0, 0.15); +} + +.hero-background { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + background: url('https://images.unsplash.com/photo-1469474968028-56623f02e42e?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1470&q=80') center/cover no-repeat; + filter: brightness(0.85); + transition: transform 10s ease; +} + +.hero-content { + position: relative; + z-index: 2; + color: white; + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + height: 100%; + text-align: center; + padding: 0 20px; +} + +.hero h1 { + font-size: 3rem; + margin-bottom: 15px; + text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.5); +} + +.hero p { + font-size: 1.2rem; + max-width: 600px; + margin-bottom: 30px; + text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.5); +} + +.search-box { + background: white; + border-radius: 12px; + padding: 25px; + width: 90%; + max-width: 800px; + box-shadow: 0 15px 30px rgba(0, 0, 0, 0.2); +} + +.search-form { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); + gap: 20px; +} + +.form-group { + margin-bottom: 15px; +} + +.form-group label { + display: block; + margin-bottom: 8px; + font-weight: 600; + color: var(--dark); +} + +.form-control { + width: 100%; + padding: 12px 15px; + border: 2px solid var(--light-gray); + border-radius: 8px; + font-size: 1rem; + transition: border-color 0.3s; +} + +.form-control:focus { + border-color: var(--primary); + outline: none; +} + +.counter { + display: flex; + align-items: center; + border: 2px solid var(--light-gray); + border-radius: 8px; + overflow: hidden; +} + +.counter button { + background: var(--light-gray); + border: none; + padding: 12px; + cursor: pointer; + font-size: 1.2rem; + transition: background 0.3s; +} + +.counter button:hover { + background: #dcdcdc; +} + +.counter input { + width: 50px; + text-align: center; + border: none; + padding: 12px 5px; + font-size: 1rem; +} + +.btn { + padding: 14px 25px; + border: none; + border-radius: 8px; + font-size: 1rem; + font-weight: 600; + cursor: pointer; + transition: all 0.3s; +} + +.btn-primary { + background: var(--primary); + color: white; +} + +.btn-primary:hover { + background: #2563eb; + transform: translateY(-2px); +} + +.btn-link { + background: transparent; + color: var(--primary); + text-decoration: underline; +} + +.btn-link:hover { + color: #2563eb; +} + +.section-title { + text-align: center; + margin-bottom: 40px; + color: var(--dark); +} + +.section-title h2 { + font-size: 2.2rem; + margin-bottom: 15px; + position: relative; + display: inline-block; +} + +.section-title h2:after { + content: ''; + position: absolute; + bottom: -10px; + left: 50%; + transform: translateX(-50%); + width: 80px; + height: 4px; + background: var(--primary); + border-radius: 2px; +} + +.section-title p { + color: var(--gray); + max-width: 700px; + margin: 0 auto; +} + +.cards { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); + gap: 25px; + margin-bottom: 50px; +} + +.card { + background: white; + border-radius: 12px; + overflow: hidden; + box-shadow: 0 5px 15px rgba(0, 0, 0, 0.08); + transition: transform 0.3s, box-shadow 0.3s; +} + +.card:hover { + transform: translateY(-5px); + box-shadow: 0 10px 25px rgba(0, 0, 0, 0.15); +} + +.card-img { + height: 200px; + overflow: hidden; +} + +.card-img img { + width: 100%; + height: 100%; + object-fit: cover; + transition: transform 0.5s; +} + +.card:hover .card-img img { + transform: scale(1.05); +} + +.card-content { + padding: 20px; +} + +.card h3 { + margin-bottom: 12px; + color: var(--dark); +} + +.card p { + color: var(--gray); + margin-bottom: 15px; +} + +.preferences { + background: white; + border-radius: 12px; + padding: 30px; + margin-bottom: 40px; + box-shadow: 0 5px 15px rgba(0, 0, 0, 0.08); +} + +.preferences-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); + gap: 20px; +} + +.tags { + display: flex; + flex-wrap: wrap; + gap: 10px; +} + +.tag { + padding: 8px 16px; + background: var(--light-gray); + border-radius: 50px; + cursor: pointer; + transition: all 0.3s; +} + +.tag:hover { + background: #dee2e6; +} + +.tag.selected { + background: var(--primary); + color: white; +} + +.slider-container { + padding: 10px 0; +} + +.slider { + -webkit-appearance: none; + width: 100%; + height: 8px; + border-radius: 4px; + background: var(--light-gray); + outline: none; +} + +.slider::-webkit-slider-thumb { + -webkit-appearance: none; + appearance: none; + width: 20px; + height: 20px; + border-radius: 50%; + background: var(--primary); + cursor: pointer; +} + +.timeline { + position: relative; + max-width: 1000px; + margin: 0 auto 50px; +} + +.timeline::after { + content: ''; + position: absolute; + width: 6px; + background-color: var(--light-gray); + top: 0; + bottom: 0; + left: 50%; + margin-left: -3px; + border-radius: 3px; +} + +.timeline-item { + padding: 10px 40px; + position: relative; + width: 50%; + box-sizing: border-box; +} + +.timeline-item:nth-child(odd) { + left: 0; +} + +.timeline-item:nth-child(even) { + left: 50%; +} + +.timeline-content { + padding: 20px; + background-color: white; + position: relative; + border-radius: 12px; + box-shadow: 0 5px 15px rgba(0, 0, 0, 0.08); +} + +.timeline-content h3 { + margin-bottom: 10px; + color: var(--dark); +} + +.timeline-content p { + margin-bottom: 15px; + color: var(--gray); +} + +.timeline-item::after { + content: ''; + position: absolute; + width: 25px; + height: 25px; + background-color: white; + border: 4px solid var(--primary); + border-radius: 50%; + top: 20px; + z-index: 1; +} + +.timeline-item:nth-child(odd)::after { + right: -13px; +} + +.timeline-item:nth-child(even)::after { + left: -13px; +} + +.feedback-buttons { + display: flex; + gap: 10px; + margin-top: 15px; +} + +.feedback-btn { + padding: 8px 15px; + border: none; + border-radius: 6px; + cursor: pointer; + font-weight: 500; + transition: all 0.3s; +} + +.like-btn { + background: #e8f5e9; + color: var(--success); +} + +.like-btn:hover { + background: #c8e6c9; +} + +.dislike-btn { + background: #ffebee; + color: var(--secondary); +} + +.dislike-btn:hover { + background: #ffcdd2; +} + +footer { + background: var(--dark); + color: white; + padding: 40px 0 20px; +} + +.footer-content { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); + gap: 30px; + margin-bottom: 30px; +} + +.footer-section h3 { + margin-bottom: 20px; + font-size: 1.3rem; +} + +.footer-section ul { + list-style: none; +} + +.footer-section li { + margin-bottom: 10px; +} + +.footer-section a { + color: #e0e0e0; + text-decoration: none; + transition: color 0.3s; +} + +.footer-section a:hover { + color: white; +} + +.social-icons { + display: flex; + gap: 15px; + margin-top: 20px; +} + +.social-icons a { + display: inline-flex; + align-items: center; + justify-content: center; + width: 40px; + height: 40px; + background: rgba(255, 255, 255, 0.1); + border-radius: 50%; + transition: background 0.3s; +} + +.social-icons a:hover { + background: rgba(255, 255, 255, 0.2); +} + +.copyright { + text-align: center; + padding-top: 20px; + border-top: 1px solid rgba(255, 255, 255, 0.1); + color: #e0e0e0; +} + +@media (max-width: 768px) { + .header-content { + flex-direction: column; + text-align: center; + } + + nav ul { + margin-top: 15px; + } + + nav li { + margin: 0 10px; + } + + .hero h1 { + font-size: 2.2rem; + } + + .hero p { + font-size: 1rem; + } + + .search-form { + grid-template-columns: 1fr; + } + + .timeline::after { + left: 31px; + } + + .timeline-item { + width: 100%; + padding-left: 70px; + padding-right: 25px; + } + + .timeline-item:nth-child(even) { + left: 0; + } + + .timeline-item::after { + left: 18px; + } + + .timeline-item:nth-child(odd)::after { + right: auto; + } +} \ No newline at end of file diff --git a/summer-ospp/McpMultiTravelPlanner/TravelVue/src/utils/request.ts b/summer-ospp/McpMultiTravelPlanner/TravelVue/src/utils/request.ts new file mode 100644 index 00000000..be926b40 --- /dev/null +++ b/summer-ospp/McpMultiTravelPlanner/TravelVue/src/utils/request.ts @@ -0,0 +1,62 @@ +import axios from 'axios'; +import type { AxiosResponse, AxiosRequestConfig } from 'axios'; + +// 创建axios实例 +const request = axios.create({ + baseURL: "http://127.0.0.1:5000", // 从环境变量获取基础URL + timeout: 60000, // 超时时间设置为60秒(因为涉及AI模型生成,可能耗时较长) + headers: { + 'Content-Type': 'application/json' + } +}); + +// 请求拦截器 +request.interceptors.request.use( + (config: import('axios').InternalAxiosRequestConfig) => { + // 可以在这里添加认证信息,如token + // const token = localStorage.getItem('token'); + // if (token && config.headers) { + // config.headers.Authorization = `Bearer ${token}`; + // } + return config; + }, + (error) => { + return Promise.reject(error); + } +); + +// 响应拦截器 +request.interceptors.response.use( + (response: AxiosResponse) => { + // 直接返回响应数据中的data字段 + return response.data; + }, + (error) => { + // 统一错误处理 + let errorMessage = '请求失败,请稍后重试'; + + if (error.response) { + // 服务器返回错误 + switch (error.response.status) { + case 400: + errorMessage = error.response.data.error || '参数错误'; + break; + case 500: + errorMessage = error.response.data.error || '服务器内部错误'; + break; + default: + errorMessage = `请求错误: ${error.response.status}`; + } + } else if (error.request) { + // 无响应 + errorMessage = '无法连接到服务器,请检查网络'; + } + + // 可以在这里添加全局错误提示,如使用Element Plus的Message + // ElMessage.error(errorMessage); + + return Promise.reject(new Error(errorMessage)); + } +); + +export default request; diff --git a/summer-ospp/McpMultiTravelPlanner/TravelVue/src/vite-env.d.ts b/summer-ospp/McpMultiTravelPlanner/TravelVue/src/vite-env.d.ts new file mode 100644 index 00000000..11f02fe2 --- /dev/null +++ b/summer-ospp/McpMultiTravelPlanner/TravelVue/src/vite-env.d.ts @@ -0,0 +1 @@ +/// diff --git a/summer-ospp/McpMultiTravelPlanner/TravelVue/tsconfig.app.json b/summer-ospp/McpMultiTravelPlanner/TravelVue/tsconfig.app.json new file mode 100644 index 00000000..3dbbc453 --- /dev/null +++ b/summer-ospp/McpMultiTravelPlanner/TravelVue/tsconfig.app.json @@ -0,0 +1,15 @@ +{ + "extends": "@vue/tsconfig/tsconfig.dom.json", + "compilerOptions": { + "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo", + + /* Linting */ + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "erasableSyntaxOnly": true, + "noFallthroughCasesInSwitch": true, + "noUncheckedSideEffectImports": true + }, + "include": ["src/**/*.ts", "src/**/*.tsx", "src/**/*.vue"] +} diff --git a/summer-ospp/McpMultiTravelPlanner/TravelVue/tsconfig.json b/summer-ospp/McpMultiTravelPlanner/TravelVue/tsconfig.json new file mode 100644 index 00000000..1ffef600 --- /dev/null +++ b/summer-ospp/McpMultiTravelPlanner/TravelVue/tsconfig.json @@ -0,0 +1,7 @@ +{ + "files": [], + "references": [ + { "path": "./tsconfig.app.json" }, + { "path": "./tsconfig.node.json" } + ] +} diff --git a/summer-ospp/McpMultiTravelPlanner/TravelVue/tsconfig.node.json b/summer-ospp/McpMultiTravelPlanner/TravelVue/tsconfig.node.json new file mode 100644 index 00000000..f85a3990 --- /dev/null +++ b/summer-ospp/McpMultiTravelPlanner/TravelVue/tsconfig.node.json @@ -0,0 +1,25 @@ +{ + "compilerOptions": { + "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo", + "target": "ES2023", + "lib": ["ES2023"], + "module": "ESNext", + "skipLibCheck": true, + + /* Bundler mode */ + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "verbatimModuleSyntax": true, + "moduleDetection": "force", + "noEmit": true, + + /* Linting */ + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "erasableSyntaxOnly": true, + "noFallthroughCasesInSwitch": true, + "noUncheckedSideEffectImports": true + }, + "include": ["vite.config.ts"] +} diff --git a/summer-ospp/McpMultiTravelPlanner/TravelVue/vite.config.ts b/summer-ospp/McpMultiTravelPlanner/TravelVue/vite.config.ts new file mode 100644 index 00000000..bbcf80cc --- /dev/null +++ b/summer-ospp/McpMultiTravelPlanner/TravelVue/vite.config.ts @@ -0,0 +1,7 @@ +import { defineConfig } from 'vite' +import vue from '@vitejs/plugin-vue' + +// https://vite.dev/config/ +export default defineConfig({ + plugins: [vue()], +}) diff --git a/summer-ospp/McpMultiTravelPlanner/imgs/087378480e8a3153cec71199fae83c1b.png b/summer-ospp/McpMultiTravelPlanner/imgs/087378480e8a3153cec71199fae83c1b.png new file mode 100644 index 00000000..801df1bd Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/imgs/087378480e8a3153cec71199fae83c1b.png differ diff --git a/summer-ospp/McpMultiTravelPlanner/imgs/401364a97585769f9b2e1a51eb960817.png b/summer-ospp/McpMultiTravelPlanner/imgs/401364a97585769f9b2e1a51eb960817.png new file mode 100644 index 00000000..904e8d71 Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/imgs/401364a97585769f9b2e1a51eb960817.png differ diff --git a/summer-ospp/McpMultiTravelPlanner/imgs/68d4587bfb6f6dbdb3c5861b37a93089.png b/summer-ospp/McpMultiTravelPlanner/imgs/68d4587bfb6f6dbdb3c5861b37a93089.png new file mode 100644 index 00000000..26af3902 Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/imgs/68d4587bfb6f6dbdb3c5861b37a93089.png differ diff --git a/summer-ospp/McpMultiTravelPlanner/imgs/image-20250928004132390.png b/summer-ospp/McpMultiTravelPlanner/imgs/image-20250928004132390.png new file mode 100644 index 00000000..36c8373c Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/imgs/image-20250928004132390.png differ diff --git a/summer-ospp/McpMultiTravelPlanner/imgs/image-20250928004315583.png b/summer-ospp/McpMultiTravelPlanner/imgs/image-20250928004315583.png new file mode 100644 index 00000000..212b8128 Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/imgs/image-20250928004315583.png differ diff --git a/summer-ospp/McpMultiTravelPlanner/imgs/image-20250928022904772.png b/summer-ospp/McpMultiTravelPlanner/imgs/image-20250928022904772.png new file mode 100644 index 00000000..5c028086 Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/imgs/image-20250928022904772.png differ diff --git a/summer-ospp/McpMultiTravelPlanner/imgs/img.png b/summer-ospp/McpMultiTravelPlanner/imgs/img.png new file mode 100644 index 00000000..654a9cb2 Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/imgs/img.png differ diff --git "a/summer-ospp/McpMultiTravelPlanner/imgs/\346\231\272\350\203\275\346\227\205\350\241\214\345\212\251\346\211\213 (2).png" "b/summer-ospp/McpMultiTravelPlanner/imgs/\346\231\272\350\203\275\346\227\205\350\241\214\345\212\251\346\211\213 (2).png" new file mode 100644 index 00000000..cfdb1c42 Binary files /dev/null and "b/summer-ospp/McpMultiTravelPlanner/imgs/\346\231\272\350\203\275\346\227\205\350\241\214\345\212\251\346\211\213 (2).png" differ diff --git "a/summer-ospp/McpMultiTravelPlanner/imgs/\346\231\272\350\203\275\346\227\205\350\241\214\345\212\251\346\211\213 (3).png" "b/summer-ospp/McpMultiTravelPlanner/imgs/\346\231\272\350\203\275\346\227\205\350\241\214\345\212\251\346\211\213 (3).png" new file mode 100644 index 00000000..5756ed3c Binary files /dev/null and "b/summer-ospp/McpMultiTravelPlanner/imgs/\346\231\272\350\203\275\346\227\205\350\241\214\345\212\251\346\211\213 (3).png" differ diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/app/__init__.py b/summer-ospp/McpMultiTravelPlanner/llm_service/app/__init__.py new file mode 100644 index 00000000..709e4ff2 --- /dev/null +++ b/summer-ospp/McpMultiTravelPlanner/llm_service/app/__init__.py @@ -0,0 +1,57 @@ +from flask import Flask +import torch +import torch_npu +from transformers import AutoModelForCausalLM, AutoTokenizer +import gymnasium as gym +from gymnasium import spaces +from stable_baselines3 import PPO +from app.ppo.touristAttractions import TouristAttractionEnv + +model = None + +def create_app(): + app = Flask(__name__) + app.config['DEBUG'] = True + # 设置设备和其他配置 + global torch_device + torch_device = "npu:1" + torch.npu.set_device(torch.device(torch_device)) + torch.npu.set_compile_mode(jit_compile=False) + option = {} + option["NPU_FUZZY_COMPILE_BLACKLIST"] = "Tril" + torch.npu.set_option(option) + + # 加载模型和分词器 + DEFAULT_CKPT_PATH = '/home/ma-user/work/Qwen2-7B-Instruct' + global model + if model is None: + model = AutoModelForCausalLM.from_pretrained( + DEFAULT_CKPT_PATH, + torch_dtype=torch.float16, + device_map=torch_device + ).npu().eval() + # 将模型封装为 DataParallel + if torch.npu.device_count() > 1: + model = torch.nn.DataParallel(model) + # 将模型注册到应用上下文 + @app.before_request + def before_first_request(): + """确保模型在第一个请求前已加载""" + app.config['MODEL'] = model + global tokenizer + tokenizer = AutoTokenizer.from_pretrained(DEFAULT_CKPT_PATH) + # 加载强化学习模型 + # 初始化环境 + global env + env = TouristAttractionEnv(max_attractions=25) + # 模型文件路径 + model_path = "./app/ppo/flexible_tourist_model" # 修改为你的模型路径 + # 加载模型 + print("正在加载模型...") + global model_ppo + model_ppo = PPO.load(model_path, env=env) + print("模型加载成功!") + from . import routes + app.register_blueprint(routes.bp) + + return app \ No newline at end of file diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/app/config.py b/summer-ospp/McpMultiTravelPlanner/llm_service/app/config.py new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/app/ppo/__init__.py b/summer-ospp/McpMultiTravelPlanner/llm_service/app/ppo/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/app/ppo/flexible_tourist_model.zip b/summer-ospp/McpMultiTravelPlanner/llm_service/app/ppo/flexible_tourist_model.zip new file mode 100644 index 00000000..beac45be Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/llm_service/app/ppo/flexible_tourist_model.zip differ diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/app/ppo/get_ans.py b/summer-ospp/McpMultiTravelPlanner/llm_service/app/ppo/get_ans.py new file mode 100644 index 00000000..20bbf123 --- /dev/null +++ b/summer-ospp/McpMultiTravelPlanner/llm_service/app/ppo/get_ans.py @@ -0,0 +1,75 @@ +import numpy as np + +def get_path(env, model, test_case): + + print(f"景点数量: {len(test_case['attractions'])}") + print(f"预算类型: {test_case['user_budget_type']}") + print(f"最大访问数: {test_case['min_attractions']}") + + env.set_attraction_data( + attractions=test_case['attractions'], + distance_matrix=test_case['distance_matrix'], + attraction_scores=test_case['attraction_scores'], + attraction_costs=test_case['attraction_costs'], + user_budget_type=test_case['user_budget_type'], + min_attractions=test_case['min_attractions'] + ) + + obs, _ = env.reset() + done = False + total_reward = 0 + path = [] + step_count = 0 + max_steps = 100 + deterministic = True + + while not done and step_count < max_steps: + # 获取当前有效动作 + valid_actions = env.get_valid_actions() + + # 使用模型预测 + action, _states = model.predict(obs, deterministic=deterministic) + + # 安全验证动作 + if action < 0 or action >= len(valid_actions): + print(f"预测的动作 {action} 超出范围,选择终止动作") + action = env.max_attractions + elif not valid_actions[action]: + # 从有效动作中选择 + valid_indices = np.where(valid_actions)[0] + if len(valid_indices) > 0: + action = valid_indices[0] # 选择第一个有效动作 + else: + action = env.max_attractions + + obs, reward, done, _, info = env.step(action) + total_reward += reward + path = info['path'] + step_count += 1 + + if step_count >= max_steps: + print(f"达到最大步数 {max_steps},强制终止") + + + # 记录结果 + result = { + 'path': [test_case['attractions'][i] for i in info['path']], + 'total_distance': info['total_distance'], + 'total_cost': info['total_cost'], + 'total_score': info['total_score'], + 'budget_remaining': info['budget_remaining'], + 'attractions_visited': info['attractions_visited'], + 'total_reward': total_reward + } + + + print(f"最终路径: {result['path']}") + print(f"访问景点数: {result['attractions_visited']}") + print(f"总距离: {result['total_distance']:.2f}") + print(f"总花费: {result['total_cost']:.2f}") + print(f"景点平均评分: {result['total_score']/result['attractions_visited']:.2f}") + # print(f"剩余预算: {result['budget_remaining']:.2f}") + # print(f"总奖励: {result['total_reward']:.2f}") + # print("-" * 50) + + return result \ No newline at end of file diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/app/ppo/touristAttractions.py b/summer-ospp/McpMultiTravelPlanner/llm_service/app/ppo/touristAttractions.py new file mode 100644 index 00000000..0fdf0d95 --- /dev/null +++ b/summer-ospp/McpMultiTravelPlanner/llm_service/app/ppo/touristAttractions.py @@ -0,0 +1,259 @@ +from typing import List +import numpy as np +import gymnasium as gym +from gymnasium import spaces +from stable_baselines3 import PPO +import torch + +class TouristAttractionEnv(gym.Env): + """改进的景点路径规划环境,考虑评分、花费和用户预算类型; 支持不同景点数量""" + + def __init__(self, max_attractions: int = 20): + super(TouristAttractionEnv, self).__init__() + + self.max_attractions = max_attractions + + # 固定大小的动作空间 + self.action_space = spaces.Discrete(max_attractions + 1) + + # 固定大小的状态空间 + self.observation_space = spaces.Box( + low=0, + high=100, + shape=(max_attractions * 3 + 7,), + dtype=np.float32 + ) + + # 将在reset时设置的实际数据 + self.attractions = None + self.n_attractions = 0 + self.distance_matrix = None + self.attraction_scores = None + self.attraction_costs = None + self.user_budget_type = "comfort" + self.daily_budget = 0 + self.min_attractions = 5 + self.cost_reward = 0 + + def set_attraction_data(self, + attractions: List[str], + distance_matrix: np.ndarray, + attraction_scores: np.ndarray, + attraction_costs: np.ndarray, + user_budget_type: str = "comfort", + daily_budget: float = None, + min_attractions: int = None): + """设置当前行程的景点数据""" + self.n_attractions = len(attractions) + if self.n_attractions > self.max_attractions: + raise ValueError(f"景点数量({self.n_attractions})超过最大限制({self.max_attractions})") + + self.attractions = attractions + self.distance_matrix = distance_matrix.astype(np.float32) + self.attraction_scores = attraction_scores.astype(np.float32) + self.attraction_costs = attraction_costs.astype(np.float32) + self.user_budget_type = user_budget_type + self.min_attractions = min_attractions if min_attractions is not None else min(5, self.n_attractions) + + if self.min_attractions > self.n_attractions: + raise ValueError(f"最少访问景点数({self.min_attractions})不能超过总景点数({self.n_attractions})") + + def _get_default_budget(self) -> float: + """根据预算类型获取默认预算""" + if self.user_budget_type == "economy": + return np.mean(self.attraction_costs) * self.min_attractions * 1.2 + elif self.user_budget_type == "comfort": + return np.mean(self.attraction_costs) * self.min_attractions * 1.5 + else: # luxury + return np.mean(self.attraction_costs) * self.min_attractions * 2.0 + + def reset(self, seed=None, options=None): + super().reset(seed=seed) + if self.attractions is None: + raise ValueError("请先调用set_attraction_data设置景点数据") + + # 初始化状态变量 + self.visited = np.zeros(self.max_attractions, dtype=np.float32) + self.current_pos = -1 + self.path = [] + self.total_distance = 0.0 + self.total_cost = 0.0 + self.total_score = 0.0 + self.steps_taken = 0 + self.has_started = False + self.budget_remaining = self._get_default_budget() + self.min_attractions_met = False + self.cost_reward = 0 + self.invalid_action_count = 0 # 跟踪无效动作次数 + + return self._get_obs(), {} + + def _get_obs(self): + """获取观察值,处理可变景点数量""" + # 当前位置的one-hot编码 + current_pos_onehot = np.zeros(self.max_attractions, dtype=np.float32) + if 0 <= self.current_pos < self.n_attractions: + current_pos_onehot[self.current_pos] = 1 + + # 每个景点的成本与剩余预算的比例 + cost_ratio = np.zeros(self.max_attractions, dtype=np.float32) + for i in range(self.n_attractions): + if self.budget_remaining > 0: + cost_ratio[i] = self.attraction_costs[i] / self.budget_remaining + else: + cost_ratio[i] = 10.0 + + # 对于超出实际景点数量的位置,设置掩码值 + for i in range(self.n_attractions, self.max_attractions): + cost_ratio[i] = -1.0 + + obs = np.concatenate([ + self.visited, + current_pos_onehot, + cost_ratio, + np.array([self.steps_taken], dtype=np.float32), + np.array([max(0, self.min_attractions - self.steps_taken)], dtype=np.float32), + np.array([self.total_distance], dtype=np.float32), + np.array([self.total_cost], dtype=np.float32), + np.array([self.budget_remaining], dtype=np.float32), + np.array([1.0 if self.has_started else 0.0], dtype=np.float32), + np.array([1.0 if self.min_attractions_met else 0.0], dtype=np.float32) + ]) + return obs + + def _get_valid_actions(self): + """获取有效动作掩码""" + valid_actions = np.ones(self.max_attractions + 1, dtype=bool) + + # 标记超出实际景点数量的动作为无效 + for i in range(self.n_attractions, self.max_attractions): + valid_actions[i] = False + + # 标记已访问的景点为无效 + for i in range(self.n_attractions): + if self.visited[i] == 1: + valid_actions[i] = False + + # 只有达到最少访问要求后才能选择终止动作 + if self.steps_taken < self.min_attractions: + valid_actions[self.max_attractions] = False + elif self.steps_taken >= self.n_attractions: # 所有景点都访问过了 + valid_actions[self.max_attractions] = True + # 将所有景点动作标记为无效,只能选择终止 + for i in range(self.n_attractions): + valid_actions[i] = False + + return valid_actions + + def get_valid_actions(self): + """公开方法获取有效动作掩码""" + return self._get_valid_actions() + + def step(self, action): + terminated = False + truncated = False + reward = 0 + + # 获取有效动作掩码 + valid_actions = self._get_valid_actions() + + # 关键修复:确保 action 在有效范围内 + if action < 0 or action >= len(valid_actions) or action >= self.n_attractions: + reward = -1000 + terminated = True + print(f"动作 {action} 超出有效范围 [0, {self.n_attractions-1}]") + + # 无效动作处理 + elif not valid_actions[action]: + self.invalid_action_count += 1 + reward = -1000 + terminated = True + print(f"无效动作: {action}, 有效动作: {np.where(valid_actions)[0]}") + + # 终止动作 + elif action == self.max_attractions: + if self.steps_taken < self.min_attractions: + reward = -500 * (self.min_attractions - self.steps_taken) + else: + # 最终奖励计算 + reward = (self.steps_taken * 10 + + self.total_score * 6 - + self.total_distance * 0.5 - + self.cost_reward * 0.2) + if self.steps_taken > self.min_attractions: + reward += (self.steps_taken - self.min_attractions) * 8 + terminated = True + + # 有效景点动作 + else: + print(f"有效动作:{action}") + # 预算检查 + cost_penalty = 0 + if self.attraction_costs[action] > self.budget_remaining: + cost_penalty = 2 * (self.attraction_costs[action] - self.budget_remaining) + self.cost_reward += cost_penalty + + # 计算移动成本 + if not self.has_started: + distance_cost = 0 + start_bonus = 15 # 开始奖励 + self.has_started = True + else: + distance_cost = self.distance_matrix[self.current_pos, action] + start_bonus = 0 + + # 更新状态 + self.total_distance += distance_cost + self.total_cost += self.attraction_costs[action] + self.total_score += self.attraction_scores[action] + self.budget_remaining -= self.attraction_costs[action] + self.visited[action] = 1 + self.current_pos = action + self.path.append(action) + self.steps_taken += 1 + + # 基础奖励计算 + reward = (start_bonus + + 8 + # 访问基础奖励 + self.attraction_scores[action] * 3 - # 评分奖励 + distance_cost * 0.3 - # 距离惩罚 + cost_penalty * 0.1) # 成本惩罚 + + # 达到最少访问景点数的奖励 + if not self.min_attractions_met and self.steps_taken >= self.min_attractions: + self.min_attractions_met = True + reward += 200 + + # 探索奖励 + unvisited_count = np.sum(self.visited[:self.n_attractions] == 0) + reward += unvisited_count * 0.3 + + # 检查是否所有景点都已访问 + if self.steps_taken >= self.n_attractions: + terminated = True + reward += 100 # 完成所有景点的额外奖励 + + info = { + 'path': self.path.copy(), + 'total_distance': self.total_distance, + 'total_cost': self.total_cost, + 'total_score': self.total_score, + 'budget_remaining': self.budget_remaining, + 'attractions_visited': self.steps_taken, + 'min_attractions_met': self.min_attractions_met, + 'valid_actions': valid_actions, + 'invalid_action_count': self.invalid_action_count + } + + return self._get_obs(), reward, terminated, truncated, info + + def render(self): + print(f"当前路径: {[self.attractions[i] for i in self.path if i < self.n_attractions]}") + print(f"已访问景点数: {self.steps_taken} (最少需访问: {self.min_attractions})") + print(f"总距离: {self.total_distance:.2f}") + print(f"总花费: {self.total_cost:.2f}") + print(f"总评分: {self.total_score:.2f}") + print(f"剩余预算: {self.budget_remaining:.2f}") + print(f"是否达到最少访问要求: {'是' if self.min_attractions_met else '否'}") + print(f"有效景点: {[i for i in range(self.n_attractions) if self.visited[i] == 0]}") + print(f"当前位置: {self.current_pos}") \ No newline at end of file diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/app/routes.py b/summer-ospp/McpMultiTravelPlanner/llm_service/app/routes.py new file mode 100644 index 00000000..3df50328 --- /dev/null +++ b/summer-ospp/McpMultiTravelPlanner/llm_service/app/routes.py @@ -0,0 +1,435 @@ +from datetime import datetime +import json +import traceback +from flask import Blueprint, Response, stream_with_context +from flask import request +from flask import jsonify, make_response +import numpy as np +from . import model, tokenizer, torch_device, model_ppo, env +from app.utils.McpTool import generate_with_tools, get_tool_ans, get_small_transport +from app.utils.sample_tool import generate_unique_str +from app.ppo.get_ans import get_path +bp = Blueprint('main', __name__) + +conversation_store: dict[str, list[dict]] = {} + +@bp.route('/') +def home(): + return 'Hello, World!' + +@bp.route('/api/getRespone', methods=['GET', 'POST']) +def getRespone(): + try: + # 从请求中获取参数 + data = request.get_json() + prompt = data.get('prompt', '') + city = data.get('city', '') + date = data.get('date', '') + peolpe = data.get('people', '1人') + tag = data.get('tag', '无') + activityIntensity = data.get('activityIntensity', '2') + activityIntensity = int(activityIntensity)+1 + money = data.get('money', 'comfort') + food = data.get('food', '无') + if activityIntensity == '1': + activityIntensity = '每天两个景点' + elif activityIntensity == '2': + activityIntensity = '每天3个景点' + elif activityIntensity == '3': + activityIntensity = '每天四个景点' + system_message = '你是一个有丰富经验的智能旅游规划助手,你需要根据用户的要求和各种偏好,使用提供的工具,生成详细的旅游规划推荐、天气出行建议(穿衣、雨雪天气优先选择室内)、美食建议、住宿建议。' + user_message = f"帮我生成{date} {city} {peolpe}人 旅游攻略。个人兴趣:{tag};期望活动强度:{activityIntensity};期望金额预算:{money};饮食偏好:{food}。必须满足的顾客的要求:{prompt}" + print(user_message) + # 随机生成对话id + session_id = generate_unique_str(32) + def generate(system_message): + # 1. 调用MCP工具生成初步方案 + yield f"data: {json.dumps({'step': 'start', 'message': '开始生成旅游规划', 'process': 0}, ensure_ascii=False)}\n\n" + yield f"data: {json.dumps({'step': 'tool_processing', 'message': '正在调用MCP工具获取相关信息...', 'process': 20}, ensure_ascii=False)}\n\n" + + result, poi_names, distances, poi_rating, poi_spend, poi_photo = get_tool_ans(city) + + if not user_message: + return jsonify({'error': 'No user message provided'}), 400 + if not city: + return jsonify({'error': 'No city provided'}), 400 + # 2. 使用强化学习,根据景点间路程、花费、景点名称对方案进行调整 + yield f"data: {json.dumps({'step': 'tool_processing', 'message': '强化学习动态优化路线...', 'process': 40}, ensure_ascii=False)}\n\n" + start_str, end_str = date.split(" 至 ") + start_date = datetime.strptime(start_str, "%Y-%m-%d").date() + end_date = datetime.strptime(end_str, "%Y-%m-%d").date() + days = (end_date - start_date).days + ppo_data = { + 'attractions': poi_names[:2], + 'distance_matrix': np.array(distances), + 'attraction_scores': np.array(poi_rating), + 'attraction_costs': np.array(poi_spend), + 'user_budget_type': 'economy', + 'min_attractions': 2 + } + print(ppo_data) + path = get_path(env, model_ppo, ppo_data) + + # 3. 返回调整后的旅游方案 + yield f"data: {json.dumps({'step': 'generate', 'message': '正在生成旅行方案...', 'process': 60}, ensure_ascii=False)}\n\n" + # 规范数据返回格式 + system_message += '''你需要尽可能遵循强化学习给出的游玩顺序:'''+f"""{path["path"]},"""+'''按照用户给出的强度'''+f'{activityIntensity}'+'''(活动强度为几就是一天游玩几个景点)给出markdown结构化数据(包含名称、时间、门票价格等信息){ + "date": "2025-01-01", + "time_begin": "13:00:00", + "time_end": "16:00:00", + "name": "北京海洋馆", + "spend_money": "175", + "category": "游玩", + "detail": "一些详细信息和建议等" + }, { + "date": "2025-01-02", + "time_begin": "09:00:00", + "time_end": "12:00:00", + "name": "故宫博物院", + "spend_money": "100", + "category": "游玩", + "detail": "建议提前购票" + }...; + ''' + + # 构造消息 + messages = [ + {"role": "system", "content": system_message}, + {"role": "user", "content": user_message}, + {"role": "tool", "content": f'{result}'} + ] + # 应用聊天模板 + text = tokenizer.apply_chat_template( + messages, + tokenize=False, + add_generation_prompt=True, + do_sample=False, + ) + + # 准备模型输入 + model_inputs = tokenizer([text], return_tensors="pt", padding=True, truncation=True).to(torch_device) + + # 生成响应 + generated_ids = model.module.generate( + model_inputs.input_ids, + max_new_tokens=1024, + ) + + # 处理生成的ID + generated_ids = [ + output_ids[len(input_ids):] for input_ids, output_ids in zip(model_inputs.input_ids, generated_ids) + ] + + # 解码响应 + responseS = tokenizer.batch_decode(generated_ids, skip_special_tokens=True)[0] + print(responseS) + + + # 4. 从response中提取json数据,格式化并添加图片、距离等信息 + imgs = [] + yield f"data: {json.dumps({'step': 'get_images', 'message': '正在获取景点图片...', 'process': 80}, ensure_ascii=False)}\n\n" + # 筛选:poi_names中存在于responseS的元素(避免无效元素) + valid_pois = [poi for poi in poi_names if poi in responseS] + # 2. 排序:按valid_pois中元素在responseS的【首次出现顺序】排序 + # 原理:用str.find(poi)获取POI在responseS中的首次索引,按索引升序排列 + sorted_pois = sorted(valid_pois, key=lambda x: responseS.find(x)) + poi_to_photo = dict(zip(poi_names, poi_photo)) + # 按排序后的POI收集图片 + imgs = [poi_to_photo[poi] for poi in sorted_pois] + + # 5. 小交通路线规划 + yield f"data: {json.dumps({'step': 'get_transport', 'message': '正在获取景点间交通方式...', 'process': 90}, ensure_ascii=False)}\n\n" + transport = get_small_transport(sorted_pois[:5]) + + + more_data = "# 更多信息\n\n" # 一级标题规范,移除多余空行 + for i in range(min(len(sorted_pois), 5)): + # 二级标题:景点名称,确保标题与内容间距规范 + now = f"## {poi_names[i]}\n\n" + + # 三级标题:景点图片,下方空行后引入图片 + now += "### 景点图片\n\n" + # 图片引用:每张图片单独一行,确保 Markdown 图片语法正确 + for img in imgs[i]: + now += f"![{poi_names[i]}的景点照片]({img})\n\n" # 图片描述补充景点名,增强可读性 + + # 仅当不是最后一个景点时,添加交通方式推荐(当前循环仅1次,逻辑保留) + if i != min(len(sorted_pois), 5) - 1: + now += f"### 推荐交通方式:{poi_names[i]} → {poi_names[i+1]}\n\n" + now += "> 推荐逻辑:综合耗时(权重70%)+ 花费(权重30%),选择总成本最低的出行方式\n\n" + + # 提取当前景点间的交通数据 + now_tran = transport[i] + + # -------------------------- 1. 步行交通 -------------------------- + walk_spend = float('inf') + walk = now_tran[0] # 初始设为无穷大,便于后续比较 + now += "#### 1. 步行\n\n" + if ( + 'result' in walk and + isinstance(walk['result'], dict) and + 'routes' in walk['result'] and + isinstance(walk['result']['routes'], list) and + len(walk['result']['routes']) > 0 and + 'distance' in walk['result']['routes'][0] and + 'duration' in walk['result']['routes'][0] # 补充duration字段校验,避免报错 + ): + walk_dist = walk['result']['routes'][0]['distance'] + walk_time = walk['result']['routes'][0]['duration'] // 60 # 转换为分钟 + now += "- 距离:{} 米\n".format(walk_dist) + now += "- 耗时:{} 分钟\n".format(walk_time) + now += "- 花费:0 元\n\n" + # 计算步行综合成本(耗时权重70% + 花费权重30%) + walk_spend = (walk_time * 0.7) + (0 * 0.3) + else: + now += "- 暂无法获取步行路线数据\n\n" + + # -------------------------- 2. 驾车交通 -------------------------- + drive_spend = float('inf') + drive = now_tran[1] + now += "#### 2. 驾车/打车\n\n" + if ( + 'result' in drive and + isinstance(drive['result'], dict) and + 'routes' in drive['result'] and + isinstance(drive['result']['routes'], list) and + len(drive['result']['routes']) > 0 and + 'distance' in drive['result']['routes'][0] + ): + drive_dist = drive['result']['routes'][0]['distance'] or "无" # 处理空值 + # 优化耗时计算(原逻辑可能有误,此处保留原公式,补充空值处理) + drive_time = (drive_dist / 60000 * 60) if drive_dist != "无" else "无" + drive_toll = drive['result']['routes'][0].get('toll', "无") # 用get避免键不存在报错 + now += "- 距离:{} 米\n".format(drive_dist) + now += "- 耗时:{} 分钟\n".format(round(drive_time, 1) if drive_time != "无" else drive_time) + now += "- 高速费:{} 元\n".format(drive_toll) + # 计算驾车综合成本(仅当数据有效时计算) + if drive_dist != "无" and drive_toll != "无": + drive_spend = (drive_time * 0.7) + (float(drive_toll) * 0.3) + else: + now += "- 暂无法获取驾车路线数据\n\n" + + # -------------------------- 3. 骑行交通 -------------------------- + ride_spend = float('inf') + ride = now_tran[2] + now += "#### 3. 骑行\n\n" + if ( + 'result' in ride and + isinstance(ride['result'], dict) and + 'routes' in ride['result'] and + isinstance(ride['result']['routes'], list) and + len(ride['result']['routes']) > 0 and + 'distance' in ride['result']['routes'][0] and + 'duration' in ride['result']['routes'][0] + ): + ride_dist = ride['result']['routes'][0]['distance'] + ride_time = ride['result']['routes'][0]['duration'] // 60 + now += "- 距离:{} 米\n".format(ride_dist) + now += "- 耗时:{} 分钟\n".format(ride_time) + now += "- 花费:1.5 元\n\n" + # 计算骑行综合成本 + ride_spend = (ride_time * 0.7) + (1.5 * 0.3) + else: + now += "- 暂无法获取骑行路线数据\n\n" + + # -------------------------- 4. 公共交通(公交/地铁) -------------------------- + transit_spend = float('inf') + transit = now_tran[3] + now += "#### 4. 公交/地铁\n\n" + if ( + 'result' in transit and + isinstance(transit['result'], dict) and + 'routes' in transit['result'] and + isinstance(transit['result']['routes'], list) and + len(transit['result']['routes']) > 0 and + 'distance' in transit['result']['routes'][0] and + 'price' in transit['result']['routes'][0] # 补充price字段校验 + ): + transit_dist = transit['result']['routes'][0]['distance'] + # 优化耗时计算(原逻辑可能有误,此处保留原公式) + transit_time = transit_dist // 60 + transit_price = transit['result']['routes'][0]['price'] + now += "- 距离:{} 米\n".format(transit_dist) + now += "- 耗时:{} 分钟\n".format(transit_time) + now += "- 花费:{} 元\n\n".format(transit_price) + # 计算公共交通综合成本 + transit_spend = (transit_time * 0.7) + (float(transit_price) * 0.3) + else: + now += "- 暂无法获取公共交通路线数据\n\n" + + # -------------------------- 交通方式推荐 -------------------------- + now += "### 最终推荐\n\n" + # 过滤无效成本(排除无穷大的情况,即路线数据缺失的方式) + valid_spends = { + "步行": walk_spend, + "骑行": ride_spend, + "驾车/打车": drive_spend, + "公共交通": transit_spend + } + valid_spends = {k: v for k, v in valid_spends.items() if v != float('inf')} + + if not valid_spends: + now += "⚠️ 所有交通方式数据缺失,无法推荐\n\n" + else: + # 原逻辑:若驾车成本≥50优先推荐,否则选成本最低的方式 + if drive_spend != float('inf') and drive_spend >= 50: + now += "**推荐选择:驾车/打车**\n\n" + now += "> 推荐理由:驾车综合成本符合优先推荐阈值(≥50)\n\n" + else: + min_spend_type = min(valid_spends, key=valid_spends.get) + now += "**推荐选择:{}**\n\n".format(min_spend_type) + now += "> 推荐理由:综合耗时(70%)+ 花费(30%)计算,该方式总成本最低(成本值:{:.2f})\n\n".format(valid_spends[min_spend_type]) + + # 将当前景点的完整信息追加到总数据中 + more_data += now + + + + # 记录聊天历史记录(因模型限制,仅保留最近3轮, 可自行调整) + if conversation_store.get(session_id) is None: + conversation_store[session_id] = [] + conversation_store[session_id].append({ + "user_message": user_message, + "tool_message": result, + "response": responseS, + }) + global response_data + response_data = { + # 'system_message': system_message, + # 'user_message': user_message, + "tool_message": result, + 'message': responseS, + "poi_name": sorted_pois, + 'imgs': imgs, + "session_id": session_id, + "transport": transport, + "more_message": more_data, + } + yield f"data: {json.dumps(response_data, ensure_ascii=False)}\n\n" + # yield f"data: {json.dumps({'step': 'end', 'message': '生成完成', 'process': 100}, ensure_ascii=False)}\n\n" + + # 返回结果 + # json_str = json.dumps(response_data, ensure_ascii=False) + # response = make_response(json_str) + # response.headers['Content-Type'] = 'application/json; charset=utf-8' + # return response + return Response( + stream_with_context(generate(system_message)), + mimetype='text/event-stream', + headers={ + 'Cache-Control': 'no-cache', + 'Connection': 'keep-alive', + 'Access-Control-Allow-Origin': '*', + 'Access-Control-Allow-Headers': 'Content-Type', + } + ) + + except Exception as e: + print(str(e)) + print(traceback.format_exc()) + + def generate_error(e): + yield f"data: {json.dumps({'step': 'error', 'error': str(e)}, ensure_ascii=False)}\n\n" + + return Response( + stream_with_context(generate_error(e)), + mimetype='text/event-stream', + headers={ + 'Cache-Control': 'no-cache', + 'Connection': 'keep-alive', + 'Access-Control-Allow-Origin': '*', + 'Access-Control-Allow-Headers': 'Content-Type', + } + ) + +@bp.route('/api/moreChat', methods=['GET', 'POST']) +def moreChat(): + try: + # 从请求中获取参数 + data = request.get_json() + user_message = data.get("user_message", '') + session_id = data.get("session_id", '') + activityIntensity = data.get('activityIntensity', '中等') + activityIntensity = int(activityIntensity)+1 + system_message = '你是一个有丰富经验的智能旅游规划助手,你需要根据用户的要求和各种偏好,结合历史记录中给出的工具生成的景点详细信息按照用户的要求对旅游攻略进行调整。' + + # 规范数据返回格式 + system_message += f'''你需要尽可能遵循用户的偏好要求,结合给出的强度{activityIntensity}(活动强度为几就是一天游玩几个景点)给出json结构化数据(包含名称、时间、门票价格等信息),格式:{ + "date": "2025-01-01", + "time_begin": "13:00:00", + "time_end": "16:00:00", + "name": "北京海洋馆", + "spend_money": "175", + "category": "游玩", + "detail": "一些详细信息和建议等" + }, { + "date": "2025-01-02", + "time_begin": "09:00:00", + "time_end": "12:00:00", + "name": "故宫博物院", + "spend_money": "100", + "category": "游玩", + "detail": "建议提前购票" + }...; + ''' + + # 构造消息, 结合历史消息 + messages = [ + {"role": "system", "content": system_message}, + {"role": "user", "content": user_message}, + {"history": "history", "content": f'{conversation_store[session_id]}'} + ] + # 应用聊天模板 + text = tokenizer.apply_chat_template( + messages, + tokenize=False, + add_generation_prompt=True, + do_sample=False, + ) + + # 准备模型输入 + model_inputs = tokenizer([text], return_tensors="pt", padding=True, truncation=True).to(torch_device) + + # 生成响应 + generated_ids = model.module.generate( + model_inputs.input_ids, + max_new_tokens=1024, + ) + + # 处理生成的ID + generated_ids = [ + output_ids[len(input_ids):] for input_ids, output_ids in zip(model_inputs.input_ids, generated_ids) + ] + + # 解码响应 + responseS = tokenizer.batch_decode(generated_ids, skip_special_tokens=True)[0] + + # 记录聊天历史记录(因模型限制,仅保留最近3轮, 可自行调整) + if conversation_store.get(session_id) is None: + conversation_store[session_id] = [] + conversation_store[session_id].append({ + "user_message": user_message, + "response": responseS, + }) + if len(conversation_store[session_id]) > 4: + conversation_store[session_id] = conversation_store[:1].extend(conversation_store[2:]) + print(conversation_store[session_id]) + + # 返回结果 + response_data = { + # 'system_message': system_message, + # 'user_message': user_message, + # "tool_message": result, + 'response': responseS, + "session_id": session_id + } + + json_str = json.dumps(response_data, ensure_ascii=False) + response = make_response(json_str) + response.headers['Content-Type'] = 'application/json; charset=utf-8' + return response + + except Exception as e: + print(str(e)) + print(traceback.format_exc()) + return jsonify({'error': str(e)}), 500 \ No newline at end of file diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/app/utils/McpTool.py b/summer-ospp/McpMultiTravelPlanner/llm_service/app/utils/McpTool.py new file mode 100644 index 00000000..61a3452e --- /dev/null +++ b/summer-ospp/McpMultiTravelPlanner/llm_service/app/utils/McpTool.py @@ -0,0 +1,616 @@ +import codecs +import json +import re +from typing import List, Dict +import pandas as pd +import requests +from mcp.server.fastmcp import FastMCP +import torch +from transformers import AutoTokenizer, AutoModelForCausalLM +from datetime import datetime, timedelta +from app import model, tokenizer, torch_device +import time + +# 初始化MCP服务器 +mcp = FastMCP("travel") + +# 常量定义 +AK = 'XXXX' # 替换为自己的百度地图AK +BAIDU_WEATHER_URL_BASE = "https://api.map.baidu.com/weather/v1/" +BAIDU_ROUTE_URL_BASE = "https://api.map.baidu.com/directionlite/v1/" +BAIDU_LOCATION_CODE_BASE = "https://api.map.baidu.com/geocoding/v3/" +BAIDU_LOCATION_SEARSH_BASE = "https://api.map.baidu.com/place/v2/search" +BAIDU_LOCATION_DETIAL_BASE = "https://api.map.baidu.com/place/v2/detail" + +LITTEL_RED_URL_BASE = "https://api.coze.cn/v1/workflow/stream_run" +HOTEL_URL_BASE = "https://api.coze.cn/v1/workflow/stream_run" +GAODE_KEY = "xxxx" # 替换为自己的高德地图key +GAODE_ATTRACTIONS_URL_BASE = "https://restapi.amap.com/v3/place/text" + +# 读取地区code +region_ids = pd.read_excel("./app/utils/weather_district_id.xlsx") + + +# 工具类定义 +class TravelTools: + @staticmethod + def get_attractions(city: str) -> str: + """获取某个城市的景点列表(biz_ext:cost 代表门票价格或者人均消费)。city: 城市名""" + params = { + "key": GAODE_KEY, + "keywords": "景点", + "city": city, + } + respones = requests.get(url=GAODE_ATTRACTIONS_URL_BASE, params=params) + data = respones.json() + if not data: + print(respones.text) + return "景区信息获取失败, 请稍后再试。" + return json.dumps(data) + + @staticmethod + def get_hotels(location: str) -> str: + """获取指定详细地址周围的酒店。location: 详细地址; """ + # 首先根据地点名称获取经纬度 + params = { + "address":location, + "ak": AK, + "output": "json", + } + respones = requests.get(url=BAIDU_LOCATION_CODE_BASE, params=params) + data = respones.json() + if not data or data['status'] != 0: + print(respones.text) + return "经纬度编码失败, 请完善地址结构后再试。" + location_code = json.dumps(data) + # 从 JSON 字符串中解析数据 + parsed_data = json.loads(location_code) + lng = parsed_data['result']['location']['lng'] + lat = parsed_data['result']['location']['lat'] + params = { + "query": "酒店", + "location": f"{lat},{lng}", + "ak": AK, + "output": "json", + "radius": 2000, + } + respones = requests.get(url=BAIDU_LOCATION_SEARSH_BASE, params=params) + data = respones.json() + if not data or "message" not in data or data['message'] != 'ok': + print(respones.text) + return "酒店搜索失败, 请稍后再试。"+respones.text + lists = json.dumps(data) + # 搜索指定地区的详细信息 + # 从 JSON 字符串解析回字典 + parsed_data = json.loads(lists) + uids = [result['uid'] for result in parsed_data['results']] + ans = [] + for uid in uids: + params = { + "uid": uid, + "scope": 2, + "ak": AK, + "output": "json", + } + respones = requests.get(url=BAIDU_LOCATION_DETIAL_BASE, params=params) + data = respones.json() + ans.append(data) + return ans + + @staticmethod + def get_red_blog(district: str) -> str: + """获取小红书上相关的旅游攻略帖子作为参考。district: 地区名称""" + headers = { + "Content-Type": "application/json", + "Authorization": "Bearer cztei_lgqMyGdPED1MihvHNRKJTnGeRumB6IUch0GJfCFcKr7KvIXX6oU0W165puuPATDjV", + } + params = { + "workflow_id": "7525656003343040527", + "parameters": { + "input": f"{district}旅游攻略", + } + } + respones = requests.post(url=LITTEL_RED_URL_BASE, headers=headers, data=json.dumps(params)) + s = respones.text.split('\n') + for item in s: + if item[:4] == 'data': + ans = json.loads(item[5:]) + return codecs.escape_decode(json.loads(ans['content'])['output'][0]['data']['note']['note_desc'].encode('unicode_escape'))[0].decode('utf-8') + print(respones.text) + return "参考攻略获取失败,暂时不参考。" + + @staticmethod + def get_route(origin: str, destination: str, tp: str = "driving") -> str: + """获取两地之间的交通路线(交通方式:walking、transit、driving、bicycling)。 origin:起始地经纬度(经度纬度之间用,分隔); destination:目的地经纬度; tp:交通方式""" + params = { + "origin": origin, + "destination": destination, + "ak": AK, + } + respones = requests.get(url=BAIDU_ROUTE_URL_BASE+tp, params=params) + data = respones.json() + if not data: + print(respones.text) + return "路线信息获取失败, 请稍后再试。" + return json.dumps(data) + + @staticmethod + def get_all_weather(district: str) -> str: + """获取某个地区的天气。 district: 地区名称""" + district_id = region_ids.loc[region_ids['district'] == district, 'district_geocode'].values[0] + params = { + "district_id": district_id, + "data_type": "all", + "ak": AK, + } + respones = requests.get(url=BAIDU_WEATHER_URL_BASE, params=params) + data = respones.json() + if not data or "message" not in data or data['message'] != 'success': + print(respones.text) + return "天气信息获取失败, 请稍后再试。" + return json.dumps(data) + + @staticmethod + def get_location_code(locationName: str) -> str: + """"获取某个地点的经纬度。 locationName: 地点名称""" + params = { + "address":locationName, + "ak": AK, + "output": "json", + } + respones = requests.get(url=BAIDU_LOCATION_CODE_BASE, params=params) + data = respones.json() + if not data or "message" not in data or data['message'] != 'success': + print(respones.text) + return "经纬度编码失败, 请完善地址结构后再试。" + return json.dumps(data) + + @staticmethod + def location_search(query: str, location: str) -> str: + """获取给定景点附近的相关关键字地点。 query:检索关键字(如美食、银行...);location: 地点经纬度(经度纬度之间用,分隔)""" + params = { + "query": query, + "location": location, + "ak": AK, + "output": "json", + } + respones = requests.get(url=BAIDU_LOCATION_SEARSH_BASE, params=params) + data = respones.json() + if not data or "message" not in data or data['message'] != 'success': + print(respones.text) + return "地点搜索失败, 请稍后再试。" + return json.dumps(data) + + @staticmethod + def get_location_detail(uid: str, location: str) -> str: + """获取指定地点的详细信息。uid: 利用location_search工具获得""" + params = { + "uid": uid, + "scope": 2, + "ak": AK, + "output": "json", + } + respones = requests.get(url=BAIDU_LOCATION_DETIAL_BASE, params=params) + data = respones.json() + if not data or "message" not in data or data['message'] != 'success': + print(respones.text) + return "地点搜索失败, 请稍后再试。" + return json.dumps(data) + + @staticmethod + def get_location_distance(locations: str) -> str: + """获得给定地址名称列表之间的两两一组之间的步行距离。 + locations: 格式为 /['地点名称', '地点名称', '地点名称', ...]/ + """ + data_list = eval(locations) + codes = [] + for loc in data_list: + # 获取地点的经纬度 + params = { + "address":loc, + "ak": AK, + "output": "json", + } + respones = requests.get(url=BAIDU_LOCATION_CODE_BASE, params=params) + data = respones.json() + if not data or data['status'] != 0: + print(respones.text) + return "经纬度编码失败, 请完善地址结构后再试。" + location_code = json.dumps(data) + # 从 JSON 字符串中解析数据 + parsed_data = json.loads(location_code) + lng = parsed_data['result']['location']['lng'] + lat = parsed_data['result']['location']['lat'] + codes.append(f"{lat},{lng}") + distances = [] + for idx1, loc1 in enumerate(codes): + now = [] + for idx2, loc2 in enumerate(codes): + if loc1 == loc2: + now.append(0) + elif idx1>idx2: + now.append(distances[idx2][idx1]) + else: + # 获取两地之间的步行距离 + params = { + "origin": loc1, + "destination": loc2, + "ak": AK, + } + respones = requests.get(url=BAIDU_ROUTE_URL_BASE+"walking", params=params) + data = respones.json() + if not data: + print(respones.text) + return "路线信息获取失败, 请稍后再试。" + dist = json.dumps(data) + parsed_data = json.loads(dist) + now.append(parsed_data['result']['routes'][0]["distance"]) + time.sleep(0.5) + distances.append(now) + return distances + @staticmethod + def get_foods(location: str) -> str: + """获取指定详细地址周围的美食。location: 详细地址; """ + # 首先根据地点名称获取经纬度 + params = { + "address":location, + "ak": AK, + "output": "json", + } + respones = requests.get(url=BAIDU_LOCATION_CODE_BASE, params=params) + data = respones.json() + if not data or data['status'] != 0: + print(respones.text) + return "经纬度编码失败, 请完善地址结构后再试。" + location_code = json.dumps(data) + # 从 JSON 字符串中解析数据 + parsed_data = json.loads(location_code) + lng = parsed_data['result']['location']['lng'] + lat = parsed_data['result']['location']['lat'] + params = { + "query": "美食", + "location": f"{lat},{lng}", + "ak": AK, + "output": "json", + "radius": 2000, + } + respones = requests.get(url=BAIDU_LOCATION_SEARSH_BASE, params=params) + data = respones.json() + if not data or "message" not in data or data['message'] != 'ok': + print(respones.text) + return "美食搜索失败, 请稍后再试。"+respones.text + return json.dumps(data) + + @staticmethod + def get_tow_poi_transport(lpoi: str, rpoi : str) -> list: + # 首先根据地点名称获取经纬度 + params = { + "address":lpoi, + "ak": AK, + "output": "json", + } + respones = requests.get(url=BAIDU_LOCATION_CODE_BASE, params=params) + data = respones.json() + if not data or data['status'] != 0: + print(respones.text) + return "经纬度编码失败, 请完善地址结构后再试。" + location_code = json.dumps(data) + # 从 JSON 字符串中解析数据 + parsed_data = json.loads(location_code) + lng = parsed_data['result']['location']['lng'] + lat = parsed_data['result']['location']['lat'] + lloc = f"{lat},{lng}" + + params = { + "address":rpoi, + "ak": AK, + "output": "json", + } + respones = requests.get(url=BAIDU_LOCATION_CODE_BASE, params=params) + data = respones.json() + if not data or data['status'] != 0: + print(respones.text) + return "经纬度编码失败, 请完善地址结构后再试。" + location_code = json.dumps(data) + # 从 JSON 字符串中解析数据 + parsed_data = json.loads(location_code) + lng = parsed_data['result']['location']['lng'] + lat = parsed_data['result']['location']['lat'] + rloc = f"{lat},{lng}" + print(lloc, rloc) + + # 分别计算不同的交通方式信息 + ans = [] + types = ['walking','driving', 'riding', 'transit'] + for tp in types: + params = { + "origin": lloc, + "destination": rloc, + "ak": AK, + } + respones = requests.get(url=BAIDU_ROUTE_URL_BASE+tp, params=params) + print(tp, lloc, rloc) + data = respones.json() + if not data: + print(respones.text) + return "路线信息获取失败, 请稍后再试。" + dist = json.dumps(data) + parsed_data = json.loads(dist) + ans.append(parsed_data) + time.sleep(0.5) + return ans + +# 工具描述 +TOOL_DESCRIPTIONS = { + "get_attractions": { + "description": "获取某个城市的景点列表", + "parameters": { + "city": {"type": "string", "description": "城市名"} + } + }, + "get_hotels": { + "description": "获取指定地区指定时间段的可选酒店", + "parameters": { + "district": {"type": "string", "description": "城市名"}, + "checkin": {"type": "string", "description": "入住日期(格式为yyyy-mm-dd)", "required": True}, + "checkout": {"type": "string", "description": "退房日期(格式为yyyy-mm-dd)", "required": True} + } + }, + # "get_red_blog": { + # "description": "获取小红书上相关的旅游攻略帖子作为参考", + # "parameters": { + # "district": {"type": "string", "description": "地区名称"} + # } + # }, + "get_route": { + "description": "获取两地之间的交通路线", + "parameters": { + "origin": {"type": "string", "description": "起始地经纬度(经度纬度之间用,分隔)"}, + "destination": {"type": "string", "description": "目的地经纬度"}, + "tp": {"type": "string", "description": "交通方式:walking、transit、driving、riding", "required": False} + } + }, + "get_all_weather": { + "description": "获取某个地区的天气", + "parameters": { + "district": {"type": "string", "description": "地区名称"} + } + }, + # "get_location_code": { + # "description": "获取某个地点的经纬度", + # "parameters": { + # "locationName": {"type": "string", "description": "地点名称"} + # } + # }, + "location_search": { + "description": "获取给定景点附近的相关关键字地点", + "parameters": { + "query": {"type": "string", "description": "检索关键字(如美食、银行...)"}, + "location": {"type": "string", "description": "地点经纬度(经度纬度之间用,分隔)"} + } + }, + "get_location_detail":{ + "description": "获取指定地点的详细信息", + "parameters": { + "uid": {"type": "string", "description": "利用location_search工具获得"} + } + }, + "get_location_distance":{ + "description":"获得给定地址名称列表之间的两两一组之间的步行距离。", + "parameters":{ + "locations": {"type": "string", "description": "格式为 ['地点名称', '地点名称', '地点名称', ...]"} + } + } +} + +# 工具调用模式的正则表达式 - 支持多个工具调用 +TOOL_CALL_PATTERN = r'\s*({.*?})\s*' + +def parse_tool_calls(text: str): + """解析文本中的所有工具调用""" + matches = re.findall(TOOL_CALL_PATTERN, text, re.DOTALL) + tool_calls = [] + + for match in matches: + try: + tool_call = json.loads(match) + tool_calls.append(tool_call) + except json.JSONDecodeError: + continue + + return tool_calls + +def execute_tool_calls(tool_calls: list) -> List[Dict]: + """执行多个工具调用并返回结果列表""" + results = [] + + for tool_call in tool_calls: + tool_name = tool_call.get("name") + parameters = tool_call.get("parameters", {}) + print(tool_name, parameters) + + if not hasattr(TravelTools, tool_name): + results.append({ + "name": tool_name, + "status": "error", + "result": f"未知工具 '{tool_name}'" + }) + continue + + try: + tool_func = getattr(TravelTools, tool_name) + result = tool_func(**parameters) + results.append({ + "name": tool_name, + "status": "success", + "result": result + }) + except Exception as e: + results.append({ + "name": tool_name, + "status": "error", + "result": f"执行错误: {str(e)}" + }) + + return results + +def generate_with_tools(user_query: str, max_iterations: int = 100): + """生成响应,支持多个工具调用""" + messages = [{"role": "user", "content": user_query}] + iterations = 0 + all_tool_results = [] + # 构建提示词,包含工具描述 + system_prompt = f"""你是一个旅行助手,你首先需要根据用户的需求,生成一些热门旅游景点,然后,选择调用的工具。 +你可以使用以下工具:{TOOL_DESCRIPTIONS};"""+""" +请根据用户需求,选择合适的工具并严格按照以下格式调用: + +{"name": "工具名称", "parameters": {"参数名": "参数值"}} + +为获取旅游攻略,你需要获取天气,根据用户的需求筛选出热门景点,获取热门景点附近的酒店,获取景点两两之间的距离,检索景点附近的美食等。 +""" + while iterations < max_iterations: + iterations += 1 + + # 构造消息 + messages = [ + {"role": "system", "content": system_prompt}, + {"role": "user", "content": user_query} + ] + + # 应用聊天模板 + text = tokenizer.apply_chat_template( + messages, + tokenize=False, + add_generation_prompt=True, + do_sample=False, + ) + + # 准备模型输入 + model_inputs = tokenizer([text], return_tensors="pt", padding=True, truncation=True).to(torch_device) + + # 生成响应 + generated_ids = model.module.generate( + model_inputs.input_ids, + max_new_tokens=512, + ) + + # 处理生成的ID + generated_ids = [ + output_ids[len(input_ids):] for input_ids, output_ids in zip(model_inputs.input_ids, generated_ids) + ] + + # 解码响应 + response = tokenizer.batch_decode(generated_ids, skip_special_tokens=True)[0] + print(response) + + # 检查是否有工具调用 + tool_calls = parse_tool_calls(response) + if not tool_calls: + # 没有工具调用,返回最终响应 + return response, all_tool_results + + # 执行所有工具调用 + tool_results = execute_tool_calls(tool_calls) + all_tool_results.extend(tool_results) + + # 将助手响应和工具结果添加到消息历史中 + messages.append({ + "role": "assistant", + "content": response + }) + # if iterations == 0: + # system_prompt += "已经调用的工具即对应结果:" + for result in tool_results: + result_str = f"{result['name']}: {result['status']} - {result['result']}" + print(result_str) + # system_prompt += result_str + messages.append({ + "role": "tool", + "content": result_str + }) + + # 如果达到最大迭代次数,生成最终响应 + final_response = "我已经收集了以下信息:\n" + for result in all_tool_results: + final_response += f"- {result['name']}: {result['result']}\n" + + return final_response, all_tool_results + +def get_tool_ans(city): + # 获取景点列表 + result = [] + attractions = json.loads(TravelTools.get_attractions(city)) + result.append(f'旅游景点列表:{attractions}') + poi_names = [poi['name'] for poi in attractions['pois']] + poi_rating = [poi['biz_ext']['rating'] for poi in attractions['pois']] + poi_spend = ['0.00' if isinstance(poi['biz_ext']['cost'], list) else poi['biz_ext']['cost'] for poi in attractions['pois']] + poi_photo = [] + for poi in attractions['pois']: + now = [] + for v in poi['photos']: + now.append(v['url']) + poi_photo.append(now) + # 获取天气情况 + weather = TravelTools.get_all_weather(city) + result.append(f"天气情况:{weather.encode('utf-8').decode('unicode_escape')}") + # 获取景点周围的酒店、美食 + hotels = [] + foods = [] + for poi_name in poi_names[:2]: + res = TravelTools.get_hotels(poi_name) + res2 = TravelTools.get_foods(poi_name) + hotels.append(f"{poi_name}附近酒店:{res}") + foods.append(f"{poi_name}附近美食:{res2}") + time.sleep(1) + result.append(f"酒店:{hotels}") + result.append(f"美食:{foods}") + # 获取距离 + distances = TravelTools.get_location_distance(f'{poi_names[:2]}') + # print(distances) + # print(result) + return result, poi_names, distances, poi_rating, poi_spend, poi_photo + +def get_small_transport(paths): + # 计算两个地点之间 步行、骑行、驾车的时间花费 + lpoi = paths[0] + ans = [] + for poi in paths[1:]: + now = TravelTools.get_tow_poi_transport(lpoi, poi) + ans.append(now) + lpoi = poi + return ans + + + +# 注册MCP工具 +@mcp.tool() +def get_attractions(city: str) -> str: + return TravelTools.get_attractions(city) + +@mcp.tool() +def get_hotels(district: str, checkin: str = None, checkout: str = None) -> str: + return TravelTools.get_hotels(district, checkin, checkout) + +@mcp.tool() +def get_red_blog(district: str) -> str: + return TravelTools.get_red_blog(district) + +@mcp.tool() +def get_route(origin: str, destination: str, tp: str = "driving") -> str: + return TravelTools.get_route(origin, destination, tp) + +@mcp.tool() +def get_all_weather(district: str) -> str: + return TravelTools.get_all_weather(district) + +@mcp.tool() +def get_location_code(locationName: str) -> str: + return TravelTools.get_location_code(locationName) + +@mcp.tool() +def location_search(query: str, location: str) -> str: + return TravelTools.location_search(query, location) + +@mcp.tool() +def get_location_detail(uid: str) -> str: + return TravelTools.get_location_detail(uid) \ No newline at end of file diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/app/utils/__init__.py b/summer-ospp/McpMultiTravelPlanner/llm_service/app/utils/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/app/utils/sample_tool.py b/summer-ospp/McpMultiTravelPlanner/llm_service/app/utils/sample_tool.py new file mode 100644 index 00000000..191a84c1 --- /dev/null +++ b/summer-ospp/McpMultiTravelPlanner/llm_service/app/utils/sample_tool.py @@ -0,0 +1,23 @@ + +import random +import string + + +def generate_unique_str(length: int) -> str: + """ + 生成单个不重复字符的随机字符串(数字+大小写字母) + :param length: 字符串长度(最大支持 62,因数字+大小写字母共 10+26+26=62 个不重复字符) + :return: 不重复的随机字符串 + """ + # 1. 定义字符池:数字(0-9) + 大写字母(A-Z) + 小写字母(a-z) + char_pool = string.digits + string.ascii_uppercase + string.ascii_lowercase + + # 2. 校验长度:避免超过字符池总数导致无法生成 + if length > len(char_pool): + raise ValueError(f"长度不能超过 {len(char_pool)}(字符池共 62 个不重复字符)") + + # 3. 随机选择指定数量的不重复字符(sample 方法确保无重复) + unique_chars = random.sample(char_pool, k=length) + + # 4. 将字符列表拼接为字符串 + return ''.join(unique_chars) \ No newline at end of file diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/app/utils/weather_district_id.xlsx b/summer-ospp/McpMultiTravelPlanner/llm_service/app/utils/weather_district_id.xlsx new file mode 100644 index 00000000..d5b5000c Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/llm_service/app/utils/weather_district_id.xlsx differ diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/buildPidInfo.json b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/buildPidInfo.json new file mode 100644 index 00000000..83ed2a4e --- /dev/null +++ b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/buildPidInfo.json @@ -0,0 +1,10 @@ +[ + [ + 217445, + "/home/ma-user/work/llm_service/kernel_meta/kernel_meta_5084372343914566390" + ], + [ + 321270, + "/home/ma-user/work/llm_service/kernel_meta/kernel_meta_11224351036587684193" + ] +] \ No newline at end of file diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_10225044237931304594/662206_662556_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_10225044237931304594/662206_662556_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_10225044237931304594/662206_662557_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_10225044237931304594/662206_662557_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_10225044237931304594/662206_662558_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_10225044237931304594/662206_662558_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_10225044237931304594/662206_662559_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_10225044237931304594/662206_662559_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_10225044237931304594/662206_662560_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_10225044237931304594/662206_662560_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_10225044237931304594/662206_662561_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_10225044237931304594/662206_662561_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_10225044237931304594/662206_662562_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_10225044237931304594/662206_662562_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_10225044237931304594/662206_662563_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_10225044237931304594/662206_662563_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_10708478500933956834/648596_649125_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_10708478500933956834/648596_649125_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_10708478500933956834/648596_649126_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_10708478500933956834/648596_649126_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_10708478500933956834/648596_649127_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_10708478500933956834/648596_649127_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_10708478500933956834/648596_649128_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_10708478500933956834/648596_649128_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_10708478500933956834/648596_649129_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_10708478500933956834/648596_649129_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_10708478500933956834/648596_649130_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_10708478500933956834/648596_649130_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_10708478500933956834/648596_649131_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_10708478500933956834/648596_649131_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_10708478500933956834/648596_649132_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_10708478500933956834/648596_649132_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_10874619844727527875/1485119_1485605_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_10874619844727527875/1485119_1485605_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_10874619844727527875/1485119_1485606_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_10874619844727527875/1485119_1485606_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_10874619844727527875/1485119_1485607_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_10874619844727527875/1485119_1485607_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_10874619844727527875/1485119_1485608_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_10874619844727527875/1485119_1485608_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_10874619844727527875/1485119_1485609_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_10874619844727527875/1485119_1485609_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_10874619844727527875/1485119_1485610_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_10874619844727527875/1485119_1485610_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_10874619844727527875/1485119_1485611_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_10874619844727527875/1485119_1485611_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_10874619844727527875/1485119_1485612_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_10874619844727527875/1485119_1485612_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_11224351036587684193/321270_321725_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_11224351036587684193/321270_321725_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_11224351036587684193/321270_321726_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_11224351036587684193/321270_321726_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_11224351036587684193/321270_321727_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_11224351036587684193/321270_321727_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_11224351036587684193/321270_321728_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_11224351036587684193/321270_321728_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_11224351036587684193/321270_321729_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_11224351036587684193/321270_321729_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_11224351036587684193/321270_321730_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_11224351036587684193/321270_321730_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_11224351036587684193/321270_321731_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_11224351036587684193/321270_321731_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_11224351036587684193/321270_321732_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_11224351036587684193/321270_321732_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_11728750161461503604/252360_252699_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_11728750161461503604/252360_252699_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_11728750161461503604/252360_252700_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_11728750161461503604/252360_252700_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_11728750161461503604/252360_252701_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_11728750161461503604/252360_252701_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_11728750161461503604/252360_252702_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_11728750161461503604/252360_252702_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_11728750161461503604/252360_252703_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_11728750161461503604/252360_252703_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_11728750161461503604/252360_252704_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_11728750161461503604/252360_252704_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_11728750161461503604/252360_252705_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_11728750161461503604/252360_252705_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_11728750161461503604/252360_252706_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_11728750161461503604/252360_252706_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_12490016240749021377/244755_245288_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_12490016240749021377/244755_245288_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_12490016240749021377/244755_245289_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_12490016240749021377/244755_245289_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_12490016240749021377/244755_245290_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_12490016240749021377/244755_245290_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_12490016240749021377/244755_245291_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_12490016240749021377/244755_245291_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_12490016240749021377/244755_245292_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_12490016240749021377/244755_245292_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_12490016240749021377/244755_245293_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_12490016240749021377/244755_245293_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_12490016240749021377/244755_245294_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_12490016240749021377/244755_245294_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_12490016240749021377/244755_245295_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_12490016240749021377/244755_245295_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_13228788602032967761/648143_648526_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_13228788602032967761/648143_648526_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_13228788602032967761/648143_648527_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_13228788602032967761/648143_648527_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_13228788602032967761/648143_648528_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_13228788602032967761/648143_648528_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_13228788602032967761/648143_648529_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_13228788602032967761/648143_648529_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_13228788602032967761/648143_648530_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_13228788602032967761/648143_648530_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_13228788602032967761/648143_648531_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_13228788602032967761/648143_648531_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_13228788602032967761/648143_648532_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_13228788602032967761/648143_648532_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_13228788602032967761/648143_648533_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_13228788602032967761/648143_648533_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_1324252472700580983/284749_285185_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_1324252472700580983/284749_285185_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_1324252472700580983/284749_285186_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_1324252472700580983/284749_285186_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_1324252472700580983/284749_285187_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_1324252472700580983/284749_285187_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_1324252472700580983/284749_285188_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_1324252472700580983/284749_285188_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_1324252472700580983/284749_285189_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_1324252472700580983/284749_285189_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_1324252472700580983/284749_285190_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_1324252472700580983/284749_285190_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_1324252472700580983/284749_285191_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_1324252472700580983/284749_285191_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_1324252472700580983/284749_285192_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_1324252472700580983/284749_285192_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_1374703348294525262/269611_269935_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_1374703348294525262/269611_269935_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_1374703348294525262/269611_269936_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_1374703348294525262/269611_269936_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_1374703348294525262/269611_269937_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_1374703348294525262/269611_269937_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_1374703348294525262/269611_269938_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_1374703348294525262/269611_269938_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_1374703348294525262/269611_269939_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_1374703348294525262/269611_269939_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_1374703348294525262/269611_269940_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_1374703348294525262/269611_269940_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_1374703348294525262/269611_269941_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_1374703348294525262/269611_269941_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_1374703348294525262/269611_269942_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_1374703348294525262/269611_269942_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_15218205191240192585/1308105_1308542_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_15218205191240192585/1308105_1308542_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_15218205191240192585/1308105_1308543_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_15218205191240192585/1308105_1308543_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_15218205191240192585/1308105_1308544_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_15218205191240192585/1308105_1308544_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_15218205191240192585/1308105_1308545_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_15218205191240192585/1308105_1308545_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_15218205191240192585/1308105_1308546_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_15218205191240192585/1308105_1308546_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_15218205191240192585/1308105_1308547_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_15218205191240192585/1308105_1308547_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_15218205191240192585/1308105_1308548_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_15218205191240192585/1308105_1308548_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_15218205191240192585/1308105_1308549_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_15218205191240192585/1308105_1308549_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_15442037689954563933/750458_750839_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_15442037689954563933/750458_750839_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_15442037689954563933/750458_750840_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_15442037689954563933/750458_750840_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_15442037689954563933/750458_750841_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_15442037689954563933/750458_750841_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_15442037689954563933/750458_750842_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_15442037689954563933/750458_750842_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_15442037689954563933/750458_750843_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_15442037689954563933/750458_750843_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_15442037689954563933/750458_750844_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_15442037689954563933/750458_750844_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_15442037689954563933/750458_750845_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_15442037689954563933/750458_750845_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_15442037689954563933/750458_750846_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_15442037689954563933/750458_750846_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_15773631863497711461/926615_927077_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_15773631863497711461/926615_927077_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_15773631863497711461/926615_927078_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_15773631863497711461/926615_927078_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_15773631863497711461/926615_927079_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_15773631863497711461/926615_927079_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_15773631863497711461/926615_927080_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_15773631863497711461/926615_927080_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_15773631863497711461/926615_927081_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_15773631863497711461/926615_927081_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_15773631863497711461/926615_927082_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_15773631863497711461/926615_927082_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_15773631863497711461/926615_927083_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_15773631863497711461/926615_927083_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_15773631863497711461/926615_927084_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_15773631863497711461/926615_927084_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_16451451334659883599/700758_701114_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_16451451334659883599/700758_701114_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_16451451334659883599/700758_701115_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_16451451334659883599/700758_701115_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_16451451334659883599/700758_701116_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_16451451334659883599/700758_701116_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_16451451334659883599/700758_701117_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_16451451334659883599/700758_701117_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_16451451334659883599/700758_701118_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_16451451334659883599/700758_701118_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_16451451334659883599/700758_701119_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_16451451334659883599/700758_701119_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_16451451334659883599/700758_701120_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_16451451334659883599/700758_701120_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_16451451334659883599/700758_701121_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_16451451334659883599/700758_701121_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_16618033344699667068/306573_307095_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_16618033344699667068/306573_307095_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_16618033344699667068/306573_307096_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_16618033344699667068/306573_307096_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_16618033344699667068/306573_307097_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_16618033344699667068/306573_307097_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_16618033344699667068/306573_307098_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_16618033344699667068/306573_307098_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_16618033344699667068/306573_307099_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_16618033344699667068/306573_307099_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_16618033344699667068/306573_307100_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_16618033344699667068/306573_307100_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_16618033344699667068/306573_307101_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_16618033344699667068/306573_307101_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_16618033344699667068/306573_307102_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_16618033344699667068/306573_307102_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_16768647486054270994/151824_152205_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_16768647486054270994/151824_152205_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_16768647486054270994/151824_152206_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_16768647486054270994/151824_152206_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_16768647486054270994/151824_152207_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_16768647486054270994/151824_152207_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_16768647486054270994/151824_152209_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_16768647486054270994/151824_152209_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_16768647486054270994/151824_152214_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_16768647486054270994/151824_152214_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_16768647486054270994/151824_152215_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_16768647486054270994/151824_152215_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_16768647486054270994/151824_152216_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_16768647486054270994/151824_152216_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_16768647486054270994/151824_152217_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_16768647486054270994/151824_152217_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_16869376604713950079/1135909_1136342_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_16869376604713950079/1135909_1136342_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_16869376604713950079/1135909_1136343_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_16869376604713950079/1135909_1136343_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_16869376604713950079/1135909_1136344_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_16869376604713950079/1135909_1136344_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_16869376604713950079/1135909_1136345_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_16869376604713950079/1135909_1136345_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_16869376604713950079/1135909_1136346_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_16869376604713950079/1135909_1136346_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_16869376604713950079/1135909_1136347_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_16869376604713950079/1135909_1136347_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_16869376604713950079/1135909_1136348_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_16869376604713950079/1135909_1136348_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_16869376604713950079/1135909_1136349_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_16869376604713950079/1135909_1136349_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_16870237428910858140/544141_544651_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_16870237428910858140/544141_544651_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_16870237428910858140/544141_544652_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_16870237428910858140/544141_544652_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_16870237428910858140/544141_544653_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_16870237428910858140/544141_544653_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_16870237428910858140/544141_544654_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_16870237428910858140/544141_544654_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_16870237428910858140/544141_544655_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_16870237428910858140/544141_544655_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_16870237428910858140/544141_544656_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_16870237428910858140/544141_544656_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_16870237428910858140/544141_544657_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_16870237428910858140/544141_544657_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_16870237428910858140/544141_544658_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_16870237428910858140/544141_544658_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_16879403247339126698/1957281_1957765_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_16879403247339126698/1957281_1957765_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_16879403247339126698/1957281_1957766_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_16879403247339126698/1957281_1957766_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_16879403247339126698/1957281_1957767_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_16879403247339126698/1957281_1957767_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_16879403247339126698/1957281_1957768_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_16879403247339126698/1957281_1957768_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_16879403247339126698/1957281_1957769_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_16879403247339126698/1957281_1957769_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_16879403247339126698/1957281_1957770_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_16879403247339126698/1957281_1957770_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_16879403247339126698/1957281_1957771_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_16879403247339126698/1957281_1957771_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_16879403247339126698/1957281_1957772_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_16879403247339126698/1957281_1957772_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_17330076914240465923/1329206_1329702_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_17330076914240465923/1329206_1329702_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_17330076914240465923/1329206_1329703_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_17330076914240465923/1329206_1329703_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_17330076914240465923/1329206_1329704_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_17330076914240465923/1329206_1329704_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_17330076914240465923/1329206_1329705_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_17330076914240465923/1329206_1329705_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_17330076914240465923/1329206_1329706_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_17330076914240465923/1329206_1329706_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_17330076914240465923/1329206_1329707_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_17330076914240465923/1329206_1329707_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_17330076914240465923/1329206_1329708_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_17330076914240465923/1329206_1329708_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_17330076914240465923/1329206_1329709_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_17330076914240465923/1329206_1329709_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_17501813873705639121/423206_423589_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_17501813873705639121/423206_423589_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_17501813873705639121/423206_423590_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_17501813873705639121/423206_423590_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_17501813873705639121/423206_423591_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_17501813873705639121/423206_423591_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_17501813873705639121/423206_423592_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_17501813873705639121/423206_423592_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_17501813873705639121/423206_423593_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_17501813873705639121/423206_423593_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_17501813873705639121/423206_423594_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_17501813873705639121/423206_423594_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_17501813873705639121/423206_423595_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_17501813873705639121/423206_423595_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_17501813873705639121/423206_423596_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_17501813873705639121/423206_423596_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_18177016236974099780/284112_284491_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_18177016236974099780/284112_284491_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_18177016236974099780/284112_284492_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_18177016236974099780/284112_284492_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_18177016236974099780/284112_284493_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_18177016236974099780/284112_284493_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_18177016236974099780/284112_284494_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_18177016236974099780/284112_284494_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_18177016236974099780/284112_284495_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_18177016236974099780/284112_284495_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_18177016236974099780/284112_284496_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_18177016236974099780/284112_284496_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_18177016236974099780/284112_284497_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_18177016236974099780/284112_284497_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_18177016236974099780/284112_284498_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_18177016236974099780/284112_284498_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_181918968120662918/167464_167933_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_181918968120662918/167464_167933_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_181918968120662918/167464_167934_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_181918968120662918/167464_167934_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_181918968120662918/167464_167935_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_181918968120662918/167464_167935_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_181918968120662918/167464_167936_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_181918968120662918/167464_167936_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_181918968120662918/167464_167937_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_181918968120662918/167464_167937_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_181918968120662918/167464_167938_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_181918968120662918/167464_167938_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_181918968120662918/167464_167939_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_181918968120662918/167464_167939_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_181918968120662918/167464_167940_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_181918968120662918/167464_167940_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_254024738373740508/746477_746925_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_254024738373740508/746477_746925_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_254024738373740508/746477_746926_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_254024738373740508/746477_746926_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_254024738373740508/746477_746927_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_254024738373740508/746477_746927_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_254024738373740508/746477_746928_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_254024738373740508/746477_746928_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_254024738373740508/746477_746929_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_254024738373740508/746477_746929_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_254024738373740508/746477_746930_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_254024738373740508/746477_746930_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_254024738373740508/746477_746931_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_254024738373740508/746477_746931_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_254024738373740508/746477_746932_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_254024738373740508/746477_746932_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_2758879840229734427/192506_192887_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_2758879840229734427/192506_192887_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_2758879840229734427/192506_192888_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_2758879840229734427/192506_192888_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_2758879840229734427/192506_192889_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_2758879840229734427/192506_192889_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_2758879840229734427/192506_192890_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_2758879840229734427/192506_192890_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_2758879840229734427/192506_192891_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_2758879840229734427/192506_192891_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_2758879840229734427/192506_192892_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_2758879840229734427/192506_192892_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_2758879840229734427/192506_192893_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_2758879840229734427/192506_192893_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_2758879840229734427/192506_192894_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_2758879840229734427/192506_192894_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_3015465440567883886/788397_788852_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_3015465440567883886/788397_788852_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_3015465440567883886/788397_788853_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_3015465440567883886/788397_788853_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_3015465440567883886/788397_788854_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_3015465440567883886/788397_788854_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_3015465440567883886/788397_788855_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_3015465440567883886/788397_788855_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_3015465440567883886/788397_788856_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_3015465440567883886/788397_788856_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_3015465440567883886/788397_788857_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_3015465440567883886/788397_788857_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_3015465440567883886/788397_788858_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_3015465440567883886/788397_788858_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_3015465440567883886/788397_788859_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_3015465440567883886/788397_788859_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_3135724491684765713/1168891_1169402_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_3135724491684765713/1168891_1169402_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_3135724491684765713/1168891_1169403_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_3135724491684765713/1168891_1169403_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_3135724491684765713/1168891_1169404_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_3135724491684765713/1168891_1169404_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_3135724491684765713/1168891_1169405_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_3135724491684765713/1168891_1169405_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_3135724491684765713/1168891_1169406_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_3135724491684765713/1168891_1169406_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_3135724491684765713/1168891_1169407_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_3135724491684765713/1168891_1169407_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_3135724491684765713/1168891_1169408_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_3135724491684765713/1168891_1169408_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_3135724491684765713/1168891_1169409_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_3135724491684765713/1168891_1169409_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_3601922515792599738/392261_392785_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_3601922515792599738/392261_392785_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_3601922515792599738/392261_392786_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_3601922515792599738/392261_392786_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_3601922515792599738/392261_392787_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_3601922515792599738/392261_392787_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_3601922515792599738/392261_392788_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_3601922515792599738/392261_392788_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_3601922515792599738/392261_392789_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_3601922515792599738/392261_392789_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_3601922515792599738/392261_392790_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_3601922515792599738/392261_392790_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_3601922515792599738/392261_392791_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_3601922515792599738/392261_392791_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_3601922515792599738/392261_392792_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_3601922515792599738/392261_392792_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_3800727799973581559/101428_101889_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_3800727799973581559/101428_101889_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_3800727799973581559/101428_101890_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_3800727799973581559/101428_101890_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_3800727799973581559/101428_101891_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_3800727799973581559/101428_101891_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_3800727799973581559/101428_101892_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_3800727799973581559/101428_101892_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_3800727799973581559/101428_101893_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_3800727799973581559/101428_101893_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_3800727799973581559/101428_101894_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_3800727799973581559/101428_101894_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_3800727799973581559/101428_101895_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_3800727799973581559/101428_101895_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_3800727799973581559/101428_101896_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_3800727799973581559/101428_101896_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_4857690560511040358/1696854_1697455_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_4857690560511040358/1696854_1697455_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_4857690560511040358/1696854_1697456_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_4857690560511040358/1696854_1697456_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_4857690560511040358/1696854_1697457_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_4857690560511040358/1696854_1697457_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_4857690560511040358/1696854_1697458_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_4857690560511040358/1696854_1697458_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_4857690560511040358/1696854_1697459_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_4857690560511040358/1696854_1697459_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_4857690560511040358/1696854_1697460_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_4857690560511040358/1696854_1697460_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_4857690560511040358/1696854_1697461_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_4857690560511040358/1696854_1697461_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_4857690560511040358/1696854_1697462_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_4857690560511040358/1696854_1697462_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_5084372343914566390/217445_217935_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_5084372343914566390/217445_217935_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_5084372343914566390/217445_217936_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_5084372343914566390/217445_217936_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_5084372343914566390/217445_217937_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_5084372343914566390/217445_217937_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_5084372343914566390/217445_217938_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_5084372343914566390/217445_217938_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_5084372343914566390/217445_217939_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_5084372343914566390/217445_217939_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_5084372343914566390/217445_217940_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_5084372343914566390/217445_217940_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_5084372343914566390/217445_217941_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_5084372343914566390/217445_217941_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_5084372343914566390/217445_217942_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_5084372343914566390/217445_217942_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_5280646814488835891/593027_593553_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_5280646814488835891/593027_593553_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_5280646814488835891/593027_593554_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_5280646814488835891/593027_593554_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_5280646814488835891/593027_593555_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_5280646814488835891/593027_593555_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_5280646814488835891/593027_593556_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_5280646814488835891/593027_593556_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_5280646814488835891/593027_593557_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_5280646814488835891/593027_593557_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_5280646814488835891/593027_593558_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_5280646814488835891/593027_593558_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_5280646814488835891/593027_593559_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_5280646814488835891/593027_593559_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_5280646814488835891/593027_593560_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_5280646814488835891/593027_593560_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_5404180869018164137/681208_681656_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_5404180869018164137/681208_681656_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_5404180869018164137/681208_681657_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_5404180869018164137/681208_681657_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_5404180869018164137/681208_681658_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_5404180869018164137/681208_681658_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_5404180869018164137/681208_681659_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_5404180869018164137/681208_681659_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_5404180869018164137/681208_681660_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_5404180869018164137/681208_681660_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_5404180869018164137/681208_681661_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_5404180869018164137/681208_681661_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_5404180869018164137/681208_681662_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_5404180869018164137/681208_681662_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_5404180869018164137/681208_681663_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_5404180869018164137/681208_681663_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_6037036352428235309/2298554_2298968_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_6037036352428235309/2298554_2298968_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_6037036352428235309/2298554_2298969_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_6037036352428235309/2298554_2298969_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_6037036352428235309/2298554_2298971_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_6037036352428235309/2298554_2298971_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_6037036352428235309/2298554_2298972_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_6037036352428235309/2298554_2298972_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_6037036352428235309/2298554_2298974_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_6037036352428235309/2298554_2298974_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_6037036352428235309/2298554_2298975_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_6037036352428235309/2298554_2298975_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_6037036352428235309/2298554_2298976_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_6037036352428235309/2298554_2298976_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_6037036352428235309/2298554_2298977_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_6037036352428235309/2298554_2298977_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_6116133518372436915/1274559_1274966_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_6116133518372436915/1274559_1274966_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_6116133518372436915/1274559_1274967_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_6116133518372436915/1274559_1274967_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_6116133518372436915/1274559_1274968_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_6116133518372436915/1274559_1274968_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_6116133518372436915/1274559_1274969_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_6116133518372436915/1274559_1274969_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_6116133518372436915/1274559_1274970_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_6116133518372436915/1274559_1274970_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_6116133518372436915/1274559_1274971_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_6116133518372436915/1274559_1274971_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_6116133518372436915/1274559_1274972_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_6116133518372436915/1274559_1274972_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_6116133518372436915/1274559_1274973_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_6116133518372436915/1274559_1274973_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_6158358026780381733/337018_337382_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_6158358026780381733/337018_337382_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_6158358026780381733/337018_337383_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_6158358026780381733/337018_337383_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_6158358026780381733/337018_337384_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_6158358026780381733/337018_337384_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_6158358026780381733/337018_337385_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_6158358026780381733/337018_337385_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_6158358026780381733/337018_337386_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_6158358026780381733/337018_337386_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_6158358026780381733/337018_337387_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_6158358026780381733/337018_337387_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_6158358026780381733/337018_337388_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_6158358026780381733/337018_337388_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_6158358026780381733/337018_337389_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_6158358026780381733/337018_337389_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_6519384500495161704/815429_815887_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_6519384500495161704/815429_815887_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_6519384500495161704/815429_815888_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_6519384500495161704/815429_815888_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_6519384500495161704/815429_815889_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_6519384500495161704/815429_815889_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_6519384500495161704/815429_815890_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_6519384500495161704/815429_815890_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_6519384500495161704/815429_815891_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_6519384500495161704/815429_815891_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_6519384500495161704/815429_815892_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_6519384500495161704/815429_815892_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_6519384500495161704/815429_815893_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_6519384500495161704/815429_815893_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_6519384500495161704/815429_815894_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_6519384500495161704/815429_815894_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_6869496866882128240/1136931_1137335_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_6869496866882128240/1136931_1137335_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_6869496866882128240/1136931_1137336_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_6869496866882128240/1136931_1137336_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_6869496866882128240/1136931_1137337_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_6869496866882128240/1136931_1137337_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_6869496866882128240/1136931_1137338_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_6869496866882128240/1136931_1137338_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_6869496866882128240/1136931_1137339_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_6869496866882128240/1136931_1137339_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_6869496866882128240/1136931_1137340_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_6869496866882128240/1136931_1137340_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_6869496866882128240/1136931_1137341_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_6869496866882128240/1136931_1137341_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_6869496866882128240/1136931_1137342_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_6869496866882128240/1136931_1137342_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_7356106264779121700/304212_304676_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_7356106264779121700/304212_304676_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_7356106264779121700/304212_304677_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_7356106264779121700/304212_304677_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_7356106264779121700/304212_304678_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_7356106264779121700/304212_304678_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_7356106264779121700/304212_304679_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_7356106264779121700/304212_304679_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_7356106264779121700/304212_304680_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_7356106264779121700/304212_304680_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_7356106264779121700/304212_304681_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_7356106264779121700/304212_304681_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_7356106264779121700/304212_304682_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_7356106264779121700/304212_304682_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_7356106264779121700/304212_304683_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_7356106264779121700/304212_304683_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_8108316793252455004/171448_171769_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_8108316793252455004/171448_171769_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_8108316793252455004/171448_171770_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_8108316793252455004/171448_171770_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_8108316793252455004/171448_171771_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_8108316793252455004/171448_171771_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_8108316793252455004/171448_171772_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_8108316793252455004/171448_171772_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_8108316793252455004/171448_171773_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_8108316793252455004/171448_171773_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_8108316793252455004/171448_171774_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_8108316793252455004/171448_171774_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_8108316793252455004/171448_171775_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_8108316793252455004/171448_171775_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_8108316793252455004/171448_171776_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_8108316793252455004/171448_171776_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_8229930774176481491/669796_670229_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_8229930774176481491/669796_670229_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_8229930774176481491/669796_670230_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_8229930774176481491/669796_670230_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_8229930774176481491/669796_670231_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_8229930774176481491/669796_670231_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_8229930774176481491/669796_670232_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_8229930774176481491/669796_670232_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_8229930774176481491/669796_670233_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_8229930774176481491/669796_670233_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_8229930774176481491/669796_670234_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_8229930774176481491/669796_670234_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_8229930774176481491/669796_670235_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_8229930774176481491/669796_670235_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_8229930774176481491/669796_670236_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_8229930774176481491/669796_670236_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_8334551667283640591/665876_666380_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_8334551667283640591/665876_666380_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_8334551667283640591/665876_666381_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_8334551667283640591/665876_666381_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_8334551667283640591/665876_666382_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_8334551667283640591/665876_666382_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_8334551667283640591/665876_666383_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_8334551667283640591/665876_666383_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_8334551667283640591/665876_666384_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_8334551667283640591/665876_666384_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_8334551667283640591/665876_666385_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_8334551667283640591/665876_666385_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_8334551667283640591/665876_666386_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_8334551667283640591/665876_666386_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_8334551667283640591/665876_666387_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_8334551667283640591/665876_666387_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_8762134159193983270/299947_300417_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_8762134159193983270/299947_300417_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_8762134159193983270/299947_300418_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_8762134159193983270/299947_300418_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_8762134159193983270/299947_300419_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_8762134159193983270/299947_300419_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_8762134159193983270/299947_300420_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_8762134159193983270/299947_300420_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_8762134159193983270/299947_300421_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_8762134159193983270/299947_300421_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_8762134159193983270/299947_300422_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_8762134159193983270/299947_300422_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_8762134159193983270/299947_300423_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_8762134159193983270/299947_300423_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_8762134159193983270/299947_300425_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_8762134159193983270/299947_300425_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_8814885878056728030/186400_186864_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_8814885878056728030/186400_186864_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_8814885878056728030/186400_186865_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_8814885878056728030/186400_186865_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_8814885878056728030/186400_186866_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_8814885878056728030/186400_186866_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_8814885878056728030/186400_186867_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_8814885878056728030/186400_186867_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_8814885878056728030/186400_186868_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_8814885878056728030/186400_186868_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_8814885878056728030/186400_186869_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_8814885878056728030/186400_186869_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_8814885878056728030/186400_186870_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_8814885878056728030/186400_186870_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_8814885878056728030/186400_186871_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_8814885878056728030/186400_186871_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_9071950731320048780/805380_805930_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_9071950731320048780/805380_805930_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_9071950731320048780/805380_805931_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_9071950731320048780/805380_805931_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_9071950731320048780/805380_805932_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_9071950731320048780/805380_805932_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_9071950731320048780/805380_805933_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_9071950731320048780/805380_805933_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_9071950731320048780/805380_805934_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_9071950731320048780/805380_805934_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_9071950731320048780/805380_805935_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_9071950731320048780/805380_805935_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_9071950731320048780/805380_805936_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_9071950731320048780/805380_805936_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_9071950731320048780/805380_805937_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_9071950731320048780/805380_805937_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_979858065401896540/375758_376192_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_979858065401896540/375758_376192_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_979858065401896540/375758_376193_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_979858065401896540/375758_376193_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_979858065401896540/375758_376194_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_979858065401896540/375758_376194_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_979858065401896540/375758_376195_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_979858065401896540/375758_376195_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_979858065401896540/375758_376196_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_979858065401896540/375758_376196_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_979858065401896540/375758_376197_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_979858065401896540/375758_376197_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_979858065401896540/375758_376198_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_979858065401896540/375758_376198_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_979858065401896540/375758_376199_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_979858065401896540/375758_376199_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_9943817445790162894/300983_301409_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_9943817445790162894/300983_301409_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_9943817445790162894/300983_301410_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_9943817445790162894/300983_301410_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_9943817445790162894/300983_301411_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_9943817445790162894/300983_301411_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_9943817445790162894/300983_301412_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_9943817445790162894/300983_301412_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_9943817445790162894/300983_301413_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_9943817445790162894/300983_301413_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_9943817445790162894/300983_301414_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_9943817445790162894/300983_301414_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_9943817445790162894/300983_301415_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_9943817445790162894/300983_301415_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_9943817445790162894/300983_301416_bt.log b/summer-ospp/McpMultiTravelPlanner/llm_service/kernel_meta/kernel_meta_temp_9943817445790162894/300983_301416_bt.log new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/llm_service/run.py b/summer-ospp/McpMultiTravelPlanner/llm_service/run.py new file mode 100644 index 00000000..93e66d53 --- /dev/null +++ b/summer-ospp/McpMultiTravelPlanner/llm_service/run.py @@ -0,0 +1,14 @@ +from app import create_app +from flask_cors import CORS + +app = create_app() +# 配置跨域:允许所有域名访问(开发环境常用) +CORS(app, resources=r'/*') # 允许所有路径的跨域请求 + +# 2. 配置 JSON 序列化:禁用 Unicode 转义,支持中文 +app.config['JSON_AS_ASCII'] = False # 关键配置:关闭 ASCII 编码,保留中文 +app.config['JSONIFY_MIMETYPE'] = 'application/json;charset=utf-8' # 可选:指定响应编码为 UTF-8 + +if __name__ == '__main__': + + app.run(debug=True) \ No newline at end of file diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/__init__.py b/summer-ospp/McpMultiTravelPlanner/ppo/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/ppo_attraction_tensorboard/PPO_1/events.out.tfevents.1757320822.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.2456551.0 b/summer-ospp/McpMultiTravelPlanner/ppo/ppo_attraction_tensorboard/PPO_1/events.out.tfevents.1757320822.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.2456551.0 new file mode 100644 index 00000000..2f0d4ede Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/ppo_attraction_tensorboard/PPO_1/events.out.tfevents.1757320822.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.2456551.0 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/ppo_attraction_tensorboard/PPO_10/events.out.tfevents.1757322607.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.2504138.0 b/summer-ospp/McpMultiTravelPlanner/ppo/ppo_attraction_tensorboard/PPO_10/events.out.tfevents.1757322607.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.2504138.0 new file mode 100644 index 00000000..54b6166d Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/ppo_attraction_tensorboard/PPO_10/events.out.tfevents.1757322607.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.2504138.0 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/ppo_attraction_tensorboard/PPO_11/events.out.tfevents.1757323689.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.2531185.0 b/summer-ospp/McpMultiTravelPlanner/ppo/ppo_attraction_tensorboard/PPO_11/events.out.tfevents.1757323689.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.2531185.0 new file mode 100644 index 00000000..a1f7e4f6 Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/ppo_attraction_tensorboard/PPO_11/events.out.tfevents.1757323689.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.2531185.0 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/ppo_attraction_tensorboard/PPO_12/events.out.tfevents.1757328652.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.3876404.0 b/summer-ospp/McpMultiTravelPlanner/ppo/ppo_attraction_tensorboard/PPO_12/events.out.tfevents.1757328652.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.3876404.0 new file mode 100644 index 00000000..3209e605 Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/ppo_attraction_tensorboard/PPO_12/events.out.tfevents.1757328652.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.3876404.0 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/ppo_attraction_tensorboard/PPO_13/events.out.tfevents.1757335268.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.547215.0 b/summer-ospp/McpMultiTravelPlanner/ppo/ppo_attraction_tensorboard/PPO_13/events.out.tfevents.1757335268.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.547215.0 new file mode 100644 index 00000000..2a995a0c Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/ppo_attraction_tensorboard/PPO_13/events.out.tfevents.1757335268.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.547215.0 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/ppo_attraction_tensorboard/PPO_14/events.out.tfevents.1757343779.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.1532973.0 b/summer-ospp/McpMultiTravelPlanner/ppo/ppo_attraction_tensorboard/PPO_14/events.out.tfevents.1757343779.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.1532973.0 new file mode 100644 index 00000000..d9fe0056 Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/ppo_attraction_tensorboard/PPO_14/events.out.tfevents.1757343779.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.1532973.0 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/ppo_attraction_tensorboard/PPO_2/events.out.tfevents.1757321468.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.2472793.0 b/summer-ospp/McpMultiTravelPlanner/ppo/ppo_attraction_tensorboard/PPO_2/events.out.tfevents.1757321468.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.2472793.0 new file mode 100644 index 00000000..e261e74a Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/ppo_attraction_tensorboard/PPO_2/events.out.tfevents.1757321468.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.2472793.0 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/ppo_attraction_tensorboard/PPO_3/events.out.tfevents.1757321950.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.2485118.0 b/summer-ospp/McpMultiTravelPlanner/ppo/ppo_attraction_tensorboard/PPO_3/events.out.tfevents.1757321950.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.2485118.0 new file mode 100644 index 00000000..570de943 Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/ppo_attraction_tensorboard/PPO_3/events.out.tfevents.1757321950.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.2485118.0 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/ppo_attraction_tensorboard/PPO_4/events.out.tfevents.1757322151.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.2490676.0 b/summer-ospp/McpMultiTravelPlanner/ppo/ppo_attraction_tensorboard/PPO_4/events.out.tfevents.1757322151.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.2490676.0 new file mode 100644 index 00000000..24db1588 Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/ppo_attraction_tensorboard/PPO_4/events.out.tfevents.1757322151.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.2490676.0 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/ppo_attraction_tensorboard/PPO_5/events.out.tfevents.1757322388.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.2496855.0 b/summer-ospp/McpMultiTravelPlanner/ppo/ppo_attraction_tensorboard/PPO_5/events.out.tfevents.1757322388.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.2496855.0 new file mode 100644 index 00000000..2070b5b4 Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/ppo_attraction_tensorboard/PPO_5/events.out.tfevents.1757322388.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.2496855.0 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/ppo_attraction_tensorboard/PPO_6/events.out.tfevents.1757322434.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.2498280.0 b/summer-ospp/McpMultiTravelPlanner/ppo/ppo_attraction_tensorboard/PPO_6/events.out.tfevents.1757322434.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.2498280.0 new file mode 100644 index 00000000..d1b06dad Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/ppo_attraction_tensorboard/PPO_6/events.out.tfevents.1757322434.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.2498280.0 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/ppo_attraction_tensorboard/PPO_7/events.out.tfevents.1757322478.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.2499673.0 b/summer-ospp/McpMultiTravelPlanner/ppo/ppo_attraction_tensorboard/PPO_7/events.out.tfevents.1757322478.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.2499673.0 new file mode 100644 index 00000000..14a52b1f Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/ppo_attraction_tensorboard/PPO_7/events.out.tfevents.1757322478.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.2499673.0 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/ppo_attraction_tensorboard/PPO_8/events.out.tfevents.1757322511.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.2500915.0 b/summer-ospp/McpMultiTravelPlanner/ppo/ppo_attraction_tensorboard/PPO_8/events.out.tfevents.1757322511.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.2500915.0 new file mode 100644 index 00000000..d9caff76 Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/ppo_attraction_tensorboard/PPO_8/events.out.tfevents.1757322511.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.2500915.0 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/ppo_attraction_tensorboard/PPO_9/events.out.tfevents.1757322563.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.2502658.0 b/summer-ospp/McpMultiTravelPlanner/ppo/ppo_attraction_tensorboard/PPO_9/events.out.tfevents.1757322563.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.2502658.0 new file mode 100644 index 00000000..89975d0e Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/ppo_attraction_tensorboard/PPO_9/events.out.tfevents.1757322563.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.2502658.0 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758623846.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.758948.0 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758623846.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.758948.0 new file mode 100644 index 00000000..646a9730 Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758623846.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.758948.0 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758623970.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.758948.1 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758623970.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.758948.1 new file mode 100644 index 00000000..1130a84a Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758623970.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.758948.1 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758624095.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.758948.2 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758624095.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.758948.2 new file mode 100644 index 00000000..d60065ab Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758624095.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.758948.2 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758624219.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.758948.3 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758624219.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.758948.3 new file mode 100644 index 00000000..40dcfcbd Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758624219.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.758948.3 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758624343.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.758948.4 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758624343.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.758948.4 new file mode 100644 index 00000000..14ff0d56 Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758624343.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.758948.4 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758624467.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.758948.5 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758624467.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.758948.5 new file mode 100644 index 00000000..068e06aa Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758624467.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.758948.5 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758624591.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.758948.6 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758624591.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.758948.6 new file mode 100644 index 00000000..3d685452 Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758624591.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.758948.6 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758624714.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.758948.7 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758624714.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.758948.7 new file mode 100644 index 00000000..19e62408 Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758624714.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.758948.7 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758624838.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.758948.8 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758624838.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.758948.8 new file mode 100644 index 00000000..ff4f3e1d Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758624838.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.758948.8 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758624962.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.758948.9 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758624962.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.758948.9 new file mode 100644 index 00000000..7c42a7af Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758624962.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.758948.9 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758625086.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.758948.10 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758625086.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.758948.10 new file mode 100644 index 00000000..909e95d0 Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758625086.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.758948.10 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758625210.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.758948.11 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758625210.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.758948.11 new file mode 100644 index 00000000..dc5ffba6 Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758625210.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.758948.11 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758625334.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.758948.12 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758625334.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.758948.12 new file mode 100644 index 00000000..583c7f1d Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758625334.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.758948.12 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758625457.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.758948.13 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758625457.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.758948.13 new file mode 100644 index 00000000..73ec3fb9 Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758625457.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.758948.13 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758625581.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.758948.14 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758625581.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.758948.14 new file mode 100644 index 00000000..c2a332f9 Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758625581.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.758948.14 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758625705.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.758948.15 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758625705.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.758948.15 new file mode 100644 index 00000000..d9a86957 Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758625705.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.758948.15 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758625829.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.758948.16 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758625829.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.758948.16 new file mode 100644 index 00000000..fcd4afd7 Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758625829.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.758948.16 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758625952.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.758948.17 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758625952.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.758948.17 new file mode 100644 index 00000000..1df0c7c8 Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758625952.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.758948.17 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758626076.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.758948.18 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758626076.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.758948.18 new file mode 100644 index 00000000..c1014166 Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758626076.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.758948.18 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758626200.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.758948.19 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758626200.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.758948.19 new file mode 100644 index 00000000..e7ab221e Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758626200.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.758948.19 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758627330.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.842287.0 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758627330.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.842287.0 new file mode 100644 index 00000000..44d72c06 Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758627330.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.842287.0 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758627392.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.842287.1 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758627392.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.842287.1 new file mode 100644 index 00000000..15a3e062 Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758627392.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.842287.1 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758627454.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.842287.2 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758627454.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.842287.2 new file mode 100644 index 00000000..c76e28f5 Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758627454.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.842287.2 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758627516.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.842287.3 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758627516.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.842287.3 new file mode 100644 index 00000000..97b41155 Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758627516.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.842287.3 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758627578.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.842287.4 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758627578.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.842287.4 new file mode 100644 index 00000000..23465f8e Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758627578.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.842287.4 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758627640.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.842287.5 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758627640.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.842287.5 new file mode 100644 index 00000000..fb81463a Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758627640.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.842287.5 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758627701.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.842287.6 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758627701.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.842287.6 new file mode 100644 index 00000000..73daeea6 Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758627701.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.842287.6 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758627763.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.842287.7 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758627763.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.842287.7 new file mode 100644 index 00000000..b09e31c4 Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758627763.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.842287.7 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758627825.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.842287.8 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758627825.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.842287.8 new file mode 100644 index 00000000..2897d41b Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758627825.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.842287.8 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758627887.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.842287.9 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758627887.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.842287.9 new file mode 100644 index 00000000..831cdfe5 Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758627887.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.842287.9 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758627948.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.842287.10 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758627948.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.842287.10 new file mode 100644 index 00000000..08c56e09 Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758627948.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.842287.10 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758628010.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.842287.11 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758628010.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.842287.11 new file mode 100644 index 00000000..201d403e Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758628010.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.842287.11 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758628072.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.842287.12 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758628072.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.842287.12 new file mode 100644 index 00000000..05fd3c88 Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758628072.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.842287.12 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758628134.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.842287.13 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758628134.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.842287.13 new file mode 100644 index 00000000..e3a778fb Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758628134.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.842287.13 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758628196.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.842287.14 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758628196.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.842287.14 new file mode 100644 index 00000000..9b197965 Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758628196.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.842287.14 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758628257.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.842287.15 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758628257.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.842287.15 new file mode 100644 index 00000000..b0002bea Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758628257.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.842287.15 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758628319.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.842287.16 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758628319.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.842287.16 new file mode 100644 index 00000000..cba12b08 Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758628319.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.842287.16 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758628381.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.842287.17 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758628381.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.842287.17 new file mode 100644 index 00000000..16836a79 Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758628381.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.842287.17 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758628443.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.842287.18 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758628443.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.842287.18 new file mode 100644 index 00000000..62756c3f Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758628443.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.842287.18 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758628504.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.842287.19 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758628504.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.842287.19 new file mode 100644 index 00000000..86844c5e Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758628504.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.842287.19 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758628566.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.842287.20 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758628566.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.842287.20 new file mode 100644 index 00000000..f38dc2de Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758628566.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.842287.20 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758628628.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.842287.21 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758628628.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.842287.21 new file mode 100644 index 00000000..d4d127dd Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758628628.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.842287.21 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758628690.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.842287.22 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758628690.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.842287.22 new file mode 100644 index 00000000..bf6a2910 Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758628690.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.842287.22 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758628751.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.842287.23 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758628751.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.842287.23 new file mode 100644 index 00000000..53828cc7 Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758628751.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.842287.23 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758628813.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.842287.24 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758628813.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.842287.24 new file mode 100644 index 00000000..9296c8f9 Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758628813.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.842287.24 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758628874.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.842287.25 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758628874.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.842287.25 new file mode 100644 index 00000000..54e036ec Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758628874.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.842287.25 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758628936.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.842287.26 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758628936.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.842287.26 new file mode 100644 index 00000000..c866d3b8 Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758628936.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.842287.26 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758628997.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.842287.27 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758628997.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.842287.27 new file mode 100644 index 00000000..71861512 Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758628997.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.842287.27 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758629059.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.842287.28 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758629059.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.842287.28 new file mode 100644 index 00000000..4469f0ea Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758629059.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.842287.28 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758629121.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.842287.29 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758629121.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.842287.29 new file mode 100644 index 00000000..097ce677 Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758629121.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.842287.29 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758629182.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.842287.30 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758629182.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.842287.30 new file mode 100644 index 00000000..ba2dfc2b Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758629182.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.842287.30 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758629244.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.842287.31 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758629244.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.842287.31 new file mode 100644 index 00000000..9adefd1a Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758629244.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.842287.31 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758629306.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.842287.32 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758629306.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.842287.32 new file mode 100644 index 00000000..f1629aaf Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758629306.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.842287.32 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758629367.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.842287.33 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758629367.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.842287.33 new file mode 100644 index 00000000..9f611a24 Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758629367.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.842287.33 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758629429.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.842287.34 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758629429.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.842287.34 new file mode 100644 index 00000000..1bc6b64b Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758629429.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.842287.34 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758629490.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.842287.35 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758629490.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.842287.35 new file mode 100644 index 00000000..bfd65700 Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758629490.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.842287.35 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758629552.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.842287.36 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758629552.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.842287.36 new file mode 100644 index 00000000..22ff2231 Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758629552.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.842287.36 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758629614.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.842287.37 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758629614.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.842287.37 new file mode 100644 index 00000000..700351b5 Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758629614.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.842287.37 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758629675.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.842287.38 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758629675.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.842287.38 new file mode 100644 index 00000000..85cf5a2b Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758629675.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.842287.38 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758629737.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.842287.39 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758629737.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.842287.39 new file mode 100644 index 00000000..302723a7 Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758629737.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.842287.39 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758629799.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.842287.40 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758629799.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.842287.40 new file mode 100644 index 00000000..b23325eb Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758629799.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.842287.40 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758630018.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.906275.0 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758630018.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.906275.0 new file mode 100644 index 00000000..ad53a917 Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758630018.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.906275.0 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758630107.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.906275.1 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758630107.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.906275.1 new file mode 100644 index 00000000..a21bad52 Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758630107.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.906275.1 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758630197.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.906275.2 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758630197.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.906275.2 new file mode 100644 index 00000000..31c4cf47 Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758630197.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.906275.2 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758630285.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.906275.3 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758630285.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.906275.3 new file mode 100644 index 00000000..ef6920f8 Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758630285.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.906275.3 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758630374.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.906275.4 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758630374.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.906275.4 new file mode 100644 index 00000000..eda78392 Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758630374.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.906275.4 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758630461.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.906275.5 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758630461.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.906275.5 new file mode 100644 index 00000000..ff105df4 Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758630461.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.906275.5 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758630549.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.906275.6 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758630549.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.906275.6 new file mode 100644 index 00000000..052e3901 Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758630549.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.906275.6 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758630638.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.906275.7 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758630638.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.906275.7 new file mode 100644 index 00000000..363a8228 Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758630638.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.906275.7 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758630727.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.906275.8 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758630727.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.906275.8 new file mode 100644 index 00000000..3457fa87 Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758630727.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.906275.8 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758630817.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.906275.9 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758630817.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.906275.9 new file mode 100644 index 00000000..498ef57f Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758630817.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.906275.9 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758630907.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.906275.10 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758630907.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.906275.10 new file mode 100644 index 00000000..55bf7f0d Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758630907.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.906275.10 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758630997.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.906275.11 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758630997.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.906275.11 new file mode 100644 index 00000000..d92fb84c Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758630997.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.906275.11 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758631086.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.906275.12 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758631086.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.906275.12 new file mode 100644 index 00000000..3dc1994c Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758631086.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.906275.12 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758631176.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.906275.13 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758631176.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.906275.13 new file mode 100644 index 00000000..1ad98318 Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758631176.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.906275.13 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758631266.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.906275.14 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758631266.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.906275.14 new file mode 100644 index 00000000..16e7727e Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758631266.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.906275.14 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758631354.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.906275.15 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758631354.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.906275.15 new file mode 100644 index 00000000..3ebd0996 Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758631354.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.906275.15 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758631442.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.906275.16 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758631442.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.906275.16 new file mode 100644 index 00000000..77591f9c Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758631442.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.906275.16 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758631530.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.906275.17 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758631530.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.906275.17 new file mode 100644 index 00000000..fca2e048 Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758631530.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.906275.17 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758631619.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.906275.18 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758631619.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.906275.18 new file mode 100644 index 00000000..91361389 Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758631619.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.906275.18 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758631708.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.906275.19 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758631708.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.906275.19 new file mode 100644 index 00000000..78f3709c Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758631708.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.906275.19 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758631798.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.906275.20 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758631798.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.906275.20 new file mode 100644 index 00000000..1b59fff5 Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758631798.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.906275.20 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758631884.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.906275.21 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758631884.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.906275.21 new file mode 100644 index 00000000..759735b3 Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758631884.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.906275.21 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758631971.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.906275.22 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758631971.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.906275.22 new file mode 100644 index 00000000..8d6f4287 Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758631971.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.906275.22 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758632057.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.906275.23 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758632057.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.906275.23 new file mode 100644 index 00000000..ce1ca752 Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758632057.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.906275.23 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758632144.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.906275.24 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758632144.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.906275.24 new file mode 100644 index 00000000..4cc6f236 Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758632144.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.906275.24 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758632229.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.906275.25 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758632229.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.906275.25 new file mode 100644 index 00000000..b3645a2f Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758632229.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.906275.25 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758632316.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.906275.26 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758632316.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.906275.26 new file mode 100644 index 00000000..ce0ca3e1 Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758632316.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.906275.26 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758632405.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.906275.27 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758632405.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.906275.27 new file mode 100644 index 00000000..06f3c3f7 Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758632405.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.906275.27 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758632497.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.906275.28 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758632497.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.906275.28 new file mode 100644 index 00000000..9f3b57a5 Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758632497.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.906275.28 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758632587.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.906275.29 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758632587.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.906275.29 new file mode 100644 index 00000000..83f5d259 Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758632587.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.906275.29 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758632676.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.906275.30 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758632676.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.906275.30 new file mode 100644 index 00000000..c3457e15 Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758632676.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.906275.30 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758632763.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.906275.31 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758632763.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.906275.31 new file mode 100644 index 00000000..5983507c Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758632763.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.906275.31 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758632849.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.906275.32 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758632849.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.906275.32 new file mode 100644 index 00000000..dec65918 Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758632849.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.906275.32 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758632935.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.906275.33 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758632935.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.906275.33 new file mode 100644 index 00000000..1a562b73 Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758632935.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.906275.33 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758633023.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.906275.34 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758633023.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.906275.34 new file mode 100644 index 00000000..1f4f2ec7 Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758633023.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.906275.34 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758633110.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.906275.35 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758633110.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.906275.35 new file mode 100644 index 00000000..545fc5ff Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758633110.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.906275.35 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758633195.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.906275.36 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758633195.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.906275.36 new file mode 100644 index 00000000..e15d8f48 Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758633195.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.906275.36 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758633791.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.0 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758633791.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.0 new file mode 100644 index 00000000..d5e5de5a Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758633791.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.0 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758633865.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.1 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758633865.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.1 new file mode 100644 index 00000000..ec1ae2b7 Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758633865.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.1 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758633939.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.2 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758633939.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.2 new file mode 100644 index 00000000..8a186d23 Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758633939.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.2 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758634013.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.3 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758634013.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.3 new file mode 100644 index 00000000..6f3cf074 Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758634013.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.3 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758634087.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.4 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758634087.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.4 new file mode 100644 index 00000000..78289ce4 Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758634087.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.4 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758634162.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.5 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758634162.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.5 new file mode 100644 index 00000000..027e051c Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758634162.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.5 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758634237.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.6 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758634237.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.6 new file mode 100644 index 00000000..58096ca3 Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758634237.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.6 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758634314.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.7 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758634314.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.7 new file mode 100644 index 00000000..90dcf630 Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758634314.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.7 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758634391.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.8 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758634391.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.8 new file mode 100644 index 00000000..989287c1 Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758634391.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.8 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758634464.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.9 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758634464.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.9 new file mode 100644 index 00000000..4ccf87f8 Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758634464.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.9 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758634539.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.10 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758634539.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.10 new file mode 100644 index 00000000..84a4d901 Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758634539.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.10 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758634614.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.11 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758634614.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.11 new file mode 100644 index 00000000..454c9c43 Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758634614.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.11 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758634686.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.12 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758634686.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.12 new file mode 100644 index 00000000..712e3a8f Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758634686.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.12 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758634759.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.13 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758634759.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.13 new file mode 100644 index 00000000..f7fbb434 Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758634759.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.13 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758634834.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.14 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758634834.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.14 new file mode 100644 index 00000000..5e0eb908 Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758634834.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.14 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758634907.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.15 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758634907.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.15 new file mode 100644 index 00000000..0479efbd Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758634907.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.15 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758634981.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.16 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758634981.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.16 new file mode 100644 index 00000000..757e180d Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758634981.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.16 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758635054.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.17 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758635054.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.17 new file mode 100644 index 00000000..fe54292a Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758635054.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.17 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758635127.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.18 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758635127.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.18 new file mode 100644 index 00000000..041cd92d Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758635127.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.18 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758635200.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.19 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758635200.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.19 new file mode 100644 index 00000000..b62f7671 Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758635200.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.19 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758635272.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.20 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758635272.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.20 new file mode 100644 index 00000000..c3d76a02 Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758635272.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.20 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758635346.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.21 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758635346.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.21 new file mode 100644 index 00000000..b5554e1e Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758635346.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.21 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758635420.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.22 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758635420.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.22 new file mode 100644 index 00000000..cf4a4236 Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758635420.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.22 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758635495.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.23 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758635495.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.23 new file mode 100644 index 00000000..7c32031b Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758635495.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.23 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758635568.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.24 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758635568.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.24 new file mode 100644 index 00000000..f574eba4 Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758635568.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.24 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758635642.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.25 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758635642.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.25 new file mode 100644 index 00000000..854b12bf Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758635642.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.25 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758635715.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.26 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758635715.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.26 new file mode 100644 index 00000000..d7dc125a Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758635715.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.26 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758635791.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.27 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758635791.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.27 new file mode 100644 index 00000000..b98b40bf Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758635791.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.27 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758635865.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.28 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758635865.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.28 new file mode 100644 index 00000000..840c4657 Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758635865.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.28 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758635938.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.29 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758635938.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.29 new file mode 100644 index 00000000..f5ecabeb Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758635938.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.29 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758636012.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.30 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758636012.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.30 new file mode 100644 index 00000000..9ecb47cd Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758636012.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.30 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758636086.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.31 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758636086.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.31 new file mode 100644 index 00000000..f4edc8aa Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758636086.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.31 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758636159.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.32 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758636159.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.32 new file mode 100644 index 00000000..b341600d Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758636159.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.32 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758636233.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.33 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758636233.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.33 new file mode 100644 index 00000000..33f9f625 Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758636233.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.33 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758636306.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.34 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758636306.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.34 new file mode 100644 index 00000000..cb075613 Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758636306.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.34 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758636379.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.35 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758636379.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.35 new file mode 100644 index 00000000..2697e799 Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758636379.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.35 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758636452.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.36 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758636452.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.36 new file mode 100644 index 00000000..9a72e006 Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758636452.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.36 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758636525.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.37 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758636525.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.37 new file mode 100644 index 00000000..9b74b377 Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758636525.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.37 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758636599.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.38 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758636599.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.38 new file mode 100644 index 00000000..60e022a3 Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758636599.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.38 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758636672.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.39 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758636672.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.39 new file mode 100644 index 00000000..04f0922c Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758636672.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.39 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758636745.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.40 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758636745.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.40 new file mode 100644 index 00000000..873161d7 Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758636745.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.40 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758636819.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.41 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758636819.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.41 new file mode 100644 index 00000000..2445d0d5 Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758636819.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.41 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758636892.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.42 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758636892.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.42 new file mode 100644 index 00000000..e8d01c23 Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758636892.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.42 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758636966.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.43 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758636966.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.43 new file mode 100644 index 00000000..a9d20380 Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758636966.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.43 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758637040.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.44 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758637040.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.44 new file mode 100644 index 00000000..6a34fa8a Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758637040.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.44 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758637114.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.45 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758637114.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.45 new file mode 100644 index 00000000..be01c239 Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758637114.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.45 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758637189.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.46 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758637189.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.46 new file mode 100644 index 00000000..07019406 Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758637189.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.46 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758637264.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.47 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758637264.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.47 new file mode 100644 index 00000000..d6569de7 Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758637264.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.47 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758637340.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.48 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758637340.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.48 new file mode 100644 index 00000000..05925f5f Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758637340.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.48 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758637413.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.49 b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758637413.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.49 new file mode 100644 index 00000000..97766ccf Binary files /dev/null and b/summer-ospp/McpMultiTravelPlanner/ppo/tensorboard_logs/PPO_0/events.out.tfevents.1758637413.notebook-3d8a8312-8b65-4314-936e-845b2bff4190.993313.49 differ diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/test.py b/summer-ospp/McpMultiTravelPlanner/ppo/test.py new file mode 100644 index 00000000..09fdc119 --- /dev/null +++ b/summer-ospp/McpMultiTravelPlanner/ppo/test.py @@ -0,0 +1,284 @@ +import random +import numpy as np +import gymnasium as gym +from gymnasium import spaces +from stable_baselines3 import PPO +import matplotlib.pyplot as plt +from touristAttractions import TouristAttractionEnv + +def generate_training_data(num_datasets=50): + """生成训练数据集""" + training_datasets = [] + + # 常见景点名称库 + attraction_names = [ + "故宫", "天安门", "颐和园", "长城", "天坛", "北海公园", "恭王府", + "圆明园", "明十三陵", "雍和宫", "南锣鼓巷", "什刹海", "景山公园", + "鸟巢", "水立方", "798艺术区", "国家博物馆", "王府井", "三里屯", + "香山公园", "北京大学", "清华大学", "动物园", "海洋馆", "世界公园" + ] + + for i in range(num_datasets): + # 随机选择景点数量(10-20个) + num_attractions = random.randint(10, 20) + attractions = random.sample(attraction_names, num_attractions) + + # 生成距离矩阵(对称矩阵) + distance_matrix = np.random.uniform(1, 100, (num_attractions, num_attractions)) + distance_matrix = (distance_matrix + distance_matrix.T) / 2 + np.fill_diagonal(distance_matrix, 0) + + # 生成评分(3-5分) + attraction_scores = np.random.uniform(3.0, 5.0, num_attractions) + + # 生成花费(20-150元) + attraction_costs = np.random.uniform(20, 150, num_attractions) + + # 随机选择1-3个免费景点 + free_indices = random.sample(range(num_attractions), random.randint(1, 3)) + for idx in free_indices: + attraction_costs[idx] = 0 + + # 随机选择预算类型 + budget_types = ["economy", "comfort", "luxury"] + user_budget_type = random.choice(budget_types) + + # 随机选择最小访问景点数(3-8个) + min_visit = random.randint(3, 8) + + training_datasets.append({ + 'attractions': attractions, + 'distance_matrix': distance_matrix, + 'attraction_scores': attraction_scores, + 'attraction_costs': attraction_costs, + 'user_budget_type': user_budget_type, + 'min_attractions': min_visit + }) + + return training_datasets + +def generate_test_data(): + """生成测试数据集""" + test_cases = [] + + # 测试案例1:北京经典景点(12个) + beijing_attractions = [ + "故宫", "天安门", "颐和园", "长城", "天坛", "北海公园", + "恭王府", "圆明园", "雍和宫", "南锣鼓巷", "鸟巢", "王府井" + ] + + beijing_distances = np.array([ + [0, 1, 15, 70, 5, 2, 3, 20, 6, 4, 12, 3], + [1, 0, 14, 69, 4, 1, 2, 19, 5, 3, 11, 2], + [15, 14, 0, 55, 12, 13, 12, 5, 11, 13, 8, 14], + [70, 69, 55, 0, 65, 68, 67, 60, 66, 68, 62, 69], + [5, 4, 12, 65, 0, 3, 4, 17, 3, 5, 10, 4], + [2, 1, 13, 68, 3, 0, 1, 18, 4, 2, 11, 1], + [3, 2, 12, 67, 4, 1, 0, 17, 3, 1, 10, 2], + [20, 19, 5, 60, 17, 18, 17, 0, 16, 18, 13, 19], + [6, 5, 11, 66, 3, 4, 3, 16, 0, 4, 9, 5], + [4, 3, 13, 68, 5, 2, 1, 18, 4, 0, 11, 1], + [12, 11, 8, 62, 10, 11, 10, 13, 9, 11, 0, 12], + [3, 2, 14, 69, 4, 1, 2, 19, 5, 1, 12, 0] + ]) + + beijing_scores = np.array([4.8, 4.5, 4.7, 4.9, 4.3, 4.2, 4.4, 4.1, 4.6, 4.0, 4.3, 4.2]) + beijing_costs = np.array([60, 0, 40, 80, 20, 15, 45, 25, 30, 0, 50, 0]) + + test_cases.append({ + 'name': '北京经典12景点', + 'attractions': beijing_attractions, + 'distance_matrix': beijing_distances, + 'attraction_scores': beijing_scores, + 'attraction_costs': beijing_costs, + 'user_budget_type': 'comfort', + 'min_attractions': 6 + }) + + # 测试案例2:上海现代景点(15个) + shanghai_attractions = [ + "外滩", "东方明珠", "南京路", "豫园", "田子坊", "上海博物馆", + "静安寺", "迪士尼", "陆家嘴", "新天地", "世纪公园", "朱家角", + "上海科技馆", "中华艺术宫", "七宝老街" + ] + + shanghai_distances = np.random.uniform(5, 50, (15, 15)) + shanghai_distances = (shanghai_distances + shanghai_distances.T) / 2 + np.fill_diagonal(shanghai_distances, 0) + + shanghai_scores = np.random.uniform(3.8, 4.9, 15) + shanghai_costs = np.random.uniform(0, 120, 15) + shanghai_costs[[1, 3, 5, 9]] = 0 # 设置几个免费景点 + + test_cases.append({ + 'name': '上海现代15景点', + 'attractions': shanghai_attractions, + 'distance_matrix': shanghai_distances, + 'attraction_scores': shanghai_scores, + 'attraction_costs': shanghai_costs, + 'user_budget_type': 'luxury', + 'min_attractions': 8 + }) + + # 测试案例3:杭州自然景点(18个) + hangzhou_attractions = [ + "西湖", "雷峰塔", "灵隐寺", "宋城", "西溪湿地", "千岛湖", + "龙井村", "六和塔", "岳王庙", "河坊街", "宝石山", "九溪烟树", + "太子湾", "胡雪岩故居", "中国美院", "南宋御街", "白堤", "苏堤" + ] + + hangzhou_distances = np.random.uniform(2, 40, (18, 18)) + hangzhou_distances = (hangzhou_distances + hangzhou_distances.T) / 2 + np.fill_diagonal(hangzhou_distances, 0) + + hangzhou_scores = np.random.uniform(4.0, 5.0, 18) + hangzhou_costs = np.random.uniform(10, 80, 18) + hangzhou_costs[[0, 9, 15]] = 0 # 设置免费景点 + + test_cases.append({ + 'name': '杭州自然18景点', + 'attractions': hangzhou_attractions, + 'distance_matrix': hangzhou_distances, + 'attraction_scores': hangzhou_scores, + 'attraction_costs': hangzhou_costs, + 'user_budget_type': 'economy', + 'min_attractions': 7 + }) + + return test_cases + +def train_model(env, training_datasets, total_timesteps=50000): + """训练模型""" + print("开始训练模型...") + model = PPO("MlpPolicy", env, verbose=1, + learning_rate=0.0003, n_steps=2048, batch_size=64) + + # 使用多种景点数量进行训练 + for i, data in enumerate(training_datasets): + print(f"训练数据集 {i+1}/{len(training_datasets)}: {len(data['attractions'])}个景点") + + env.set_attraction_data( + attractions=data['attractions'], + distance_matrix=data['distance_matrix'], + attraction_scores=data['attraction_scores'], + attraction_costs=data['attraction_costs'], + user_budget_type=data['user_budget_type'], + min_attractions=data['min_attractions'] + ) + + # 每个数据集训练一定步数 + model.learn(total_timesteps=total_timesteps // len(training_datasets), + reset_num_timesteps=False) + + return model + +def test_model(env, model, test_cases): + """测试模型""" + results = [] + + for test_case in test_cases: + print(f"\n=== 测试: {test_case['name']} ===") + print(f"景点数量: {len(test_case['attractions'])}") + print(f"预算类型: {test_case['user_budget_type']}") + print(f"最大访问数: {test_case['min_attractions']}") + + env.set_attraction_data( + attractions=test_case['attractions'], + distance_matrix=test_case['distance_matrix'], + attraction_scores=test_case['attraction_scores'], + attraction_costs=test_case['attraction_costs'], + user_budget_type=test_case['user_budget_type'], + min_attractions=test_case['min_attractions'] + ) + + obs, _ = env.reset() + done = False + total_reward = 0 + path = [] + step_count = 0 + max_steps = 100 + deterministic = True + + while not done and step_count < max_steps: + # 获取当前有效动作 + valid_actions = env.get_valid_actions() + + # 使用模型预测 + action, _states = model.predict(obs, deterministic=deterministic) + + # 安全验证动作 + if action < 0 or action >= len(valid_actions): + print(f"预测的动作 {action} 超出范围,选择终止动作") + action = env.max_attractions + elif not valid_actions[action]: + # 从有效动作中选择 + valid_indices = np.where(valid_actions)[0] + if len(valid_indices) > 0: + action = valid_indices[0] # 选择第一个有效动作 + else: + action = env.max_attractions + + obs, reward, done, _, info = env.step(action) + total_reward += reward + path = info['path'] + step_count += 1 + + if step_count >= max_steps: + print(f"达到最大步数 {max_steps},强制终止") + + + # 记录结果 + result = { + 'name': test_case['name'], + 'path': [test_case['attractions'][i] for i in info['path']], + 'total_distance': info['total_distance'], + 'total_cost': info['total_cost'], + 'total_score': info['total_score'], + 'budget_remaining': info['budget_remaining'], + 'attractions_visited': info['attractions_visited'], + 'total_reward': total_reward + } + + results.append(result) + + print(f"最终路径: {result['path']}") + print(f"访问景点数: {result['attractions_visited']}") + print(f"总距离: {result['total_distance']:.2f}") + print(f"总花费: {result['total_cost']:.2f}") + print(f"总评分: {result['total_score']:.2f}") + print(f"剩余预算: {result['budget_remaining']:.2f}") + print(f"总奖励: {result['total_reward']:.2f}") + print("-" * 50) + + return results + + + +if __name__ == "__main__": + # 初始化环境 + env = TouristAttractionEnv(max_attractions=25) + + # 模型文件路径 + model_path = "./flexible_tourist_model_10_20_min" # 修改为你的模型路径 + + # 加载模型 + print("正在加载模型...") + model = PPO.load(model_path, env=env) + print("模型加载成功!") + + # 生成测试数据 + print("\n生成测试数据...") + test_cases = generate_test_data() + + # 测试模型 + print("\n开始测试模型...") + results = test_model(env, model, test_cases) + + # 输出测试结果摘要 + print("\n=== 测试结果摘要 ===") + for result in results: + print(f"{result['name']}:") + print(f" 访问了 {result['attractions_visited']} 个景点") + print(f" 总评分: {result['total_score']:.2f}, 总花费: {result['total_cost']:.2f}") + print(f" 路径: {result['path']}") + print() \ No newline at end of file diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/touristAttractions.py b/summer-ospp/McpMultiTravelPlanner/ppo/touristAttractions.py new file mode 100644 index 00000000..0fdf0d95 --- /dev/null +++ b/summer-ospp/McpMultiTravelPlanner/ppo/touristAttractions.py @@ -0,0 +1,259 @@ +from typing import List +import numpy as np +import gymnasium as gym +from gymnasium import spaces +from stable_baselines3 import PPO +import torch + +class TouristAttractionEnv(gym.Env): + """改进的景点路径规划环境,考虑评分、花费和用户预算类型; 支持不同景点数量""" + + def __init__(self, max_attractions: int = 20): + super(TouristAttractionEnv, self).__init__() + + self.max_attractions = max_attractions + + # 固定大小的动作空间 + self.action_space = spaces.Discrete(max_attractions + 1) + + # 固定大小的状态空间 + self.observation_space = spaces.Box( + low=0, + high=100, + shape=(max_attractions * 3 + 7,), + dtype=np.float32 + ) + + # 将在reset时设置的实际数据 + self.attractions = None + self.n_attractions = 0 + self.distance_matrix = None + self.attraction_scores = None + self.attraction_costs = None + self.user_budget_type = "comfort" + self.daily_budget = 0 + self.min_attractions = 5 + self.cost_reward = 0 + + def set_attraction_data(self, + attractions: List[str], + distance_matrix: np.ndarray, + attraction_scores: np.ndarray, + attraction_costs: np.ndarray, + user_budget_type: str = "comfort", + daily_budget: float = None, + min_attractions: int = None): + """设置当前行程的景点数据""" + self.n_attractions = len(attractions) + if self.n_attractions > self.max_attractions: + raise ValueError(f"景点数量({self.n_attractions})超过最大限制({self.max_attractions})") + + self.attractions = attractions + self.distance_matrix = distance_matrix.astype(np.float32) + self.attraction_scores = attraction_scores.astype(np.float32) + self.attraction_costs = attraction_costs.astype(np.float32) + self.user_budget_type = user_budget_type + self.min_attractions = min_attractions if min_attractions is not None else min(5, self.n_attractions) + + if self.min_attractions > self.n_attractions: + raise ValueError(f"最少访问景点数({self.min_attractions})不能超过总景点数({self.n_attractions})") + + def _get_default_budget(self) -> float: + """根据预算类型获取默认预算""" + if self.user_budget_type == "economy": + return np.mean(self.attraction_costs) * self.min_attractions * 1.2 + elif self.user_budget_type == "comfort": + return np.mean(self.attraction_costs) * self.min_attractions * 1.5 + else: # luxury + return np.mean(self.attraction_costs) * self.min_attractions * 2.0 + + def reset(self, seed=None, options=None): + super().reset(seed=seed) + if self.attractions is None: + raise ValueError("请先调用set_attraction_data设置景点数据") + + # 初始化状态变量 + self.visited = np.zeros(self.max_attractions, dtype=np.float32) + self.current_pos = -1 + self.path = [] + self.total_distance = 0.0 + self.total_cost = 0.0 + self.total_score = 0.0 + self.steps_taken = 0 + self.has_started = False + self.budget_remaining = self._get_default_budget() + self.min_attractions_met = False + self.cost_reward = 0 + self.invalid_action_count = 0 # 跟踪无效动作次数 + + return self._get_obs(), {} + + def _get_obs(self): + """获取观察值,处理可变景点数量""" + # 当前位置的one-hot编码 + current_pos_onehot = np.zeros(self.max_attractions, dtype=np.float32) + if 0 <= self.current_pos < self.n_attractions: + current_pos_onehot[self.current_pos] = 1 + + # 每个景点的成本与剩余预算的比例 + cost_ratio = np.zeros(self.max_attractions, dtype=np.float32) + for i in range(self.n_attractions): + if self.budget_remaining > 0: + cost_ratio[i] = self.attraction_costs[i] / self.budget_remaining + else: + cost_ratio[i] = 10.0 + + # 对于超出实际景点数量的位置,设置掩码值 + for i in range(self.n_attractions, self.max_attractions): + cost_ratio[i] = -1.0 + + obs = np.concatenate([ + self.visited, + current_pos_onehot, + cost_ratio, + np.array([self.steps_taken], dtype=np.float32), + np.array([max(0, self.min_attractions - self.steps_taken)], dtype=np.float32), + np.array([self.total_distance], dtype=np.float32), + np.array([self.total_cost], dtype=np.float32), + np.array([self.budget_remaining], dtype=np.float32), + np.array([1.0 if self.has_started else 0.0], dtype=np.float32), + np.array([1.0 if self.min_attractions_met else 0.0], dtype=np.float32) + ]) + return obs + + def _get_valid_actions(self): + """获取有效动作掩码""" + valid_actions = np.ones(self.max_attractions + 1, dtype=bool) + + # 标记超出实际景点数量的动作为无效 + for i in range(self.n_attractions, self.max_attractions): + valid_actions[i] = False + + # 标记已访问的景点为无效 + for i in range(self.n_attractions): + if self.visited[i] == 1: + valid_actions[i] = False + + # 只有达到最少访问要求后才能选择终止动作 + if self.steps_taken < self.min_attractions: + valid_actions[self.max_attractions] = False + elif self.steps_taken >= self.n_attractions: # 所有景点都访问过了 + valid_actions[self.max_attractions] = True + # 将所有景点动作标记为无效,只能选择终止 + for i in range(self.n_attractions): + valid_actions[i] = False + + return valid_actions + + def get_valid_actions(self): + """公开方法获取有效动作掩码""" + return self._get_valid_actions() + + def step(self, action): + terminated = False + truncated = False + reward = 0 + + # 获取有效动作掩码 + valid_actions = self._get_valid_actions() + + # 关键修复:确保 action 在有效范围内 + if action < 0 or action >= len(valid_actions) or action >= self.n_attractions: + reward = -1000 + terminated = True + print(f"动作 {action} 超出有效范围 [0, {self.n_attractions-1}]") + + # 无效动作处理 + elif not valid_actions[action]: + self.invalid_action_count += 1 + reward = -1000 + terminated = True + print(f"无效动作: {action}, 有效动作: {np.where(valid_actions)[0]}") + + # 终止动作 + elif action == self.max_attractions: + if self.steps_taken < self.min_attractions: + reward = -500 * (self.min_attractions - self.steps_taken) + else: + # 最终奖励计算 + reward = (self.steps_taken * 10 + + self.total_score * 6 - + self.total_distance * 0.5 - + self.cost_reward * 0.2) + if self.steps_taken > self.min_attractions: + reward += (self.steps_taken - self.min_attractions) * 8 + terminated = True + + # 有效景点动作 + else: + print(f"有效动作:{action}") + # 预算检查 + cost_penalty = 0 + if self.attraction_costs[action] > self.budget_remaining: + cost_penalty = 2 * (self.attraction_costs[action] - self.budget_remaining) + self.cost_reward += cost_penalty + + # 计算移动成本 + if not self.has_started: + distance_cost = 0 + start_bonus = 15 # 开始奖励 + self.has_started = True + else: + distance_cost = self.distance_matrix[self.current_pos, action] + start_bonus = 0 + + # 更新状态 + self.total_distance += distance_cost + self.total_cost += self.attraction_costs[action] + self.total_score += self.attraction_scores[action] + self.budget_remaining -= self.attraction_costs[action] + self.visited[action] = 1 + self.current_pos = action + self.path.append(action) + self.steps_taken += 1 + + # 基础奖励计算 + reward = (start_bonus + + 8 + # 访问基础奖励 + self.attraction_scores[action] * 3 - # 评分奖励 + distance_cost * 0.3 - # 距离惩罚 + cost_penalty * 0.1) # 成本惩罚 + + # 达到最少访问景点数的奖励 + if not self.min_attractions_met and self.steps_taken >= self.min_attractions: + self.min_attractions_met = True + reward += 200 + + # 探索奖励 + unvisited_count = np.sum(self.visited[:self.n_attractions] == 0) + reward += unvisited_count * 0.3 + + # 检查是否所有景点都已访问 + if self.steps_taken >= self.n_attractions: + terminated = True + reward += 100 # 完成所有景点的额外奖励 + + info = { + 'path': self.path.copy(), + 'total_distance': self.total_distance, + 'total_cost': self.total_cost, + 'total_score': self.total_score, + 'budget_remaining': self.budget_remaining, + 'attractions_visited': self.steps_taken, + 'min_attractions_met': self.min_attractions_met, + 'valid_actions': valid_actions, + 'invalid_action_count': self.invalid_action_count + } + + return self._get_obs(), reward, terminated, truncated, info + + def render(self): + print(f"当前路径: {[self.attractions[i] for i in self.path if i < self.n_attractions]}") + print(f"已访问景点数: {self.steps_taken} (最少需访问: {self.min_attractions})") + print(f"总距离: {self.total_distance:.2f}") + print(f"总花费: {self.total_cost:.2f}") + print(f"总评分: {self.total_score:.2f}") + print(f"剩余预算: {self.budget_remaining:.2f}") + print(f"是否达到最少访问要求: {'是' if self.min_attractions_met else '否'}") + print(f"有效景点: {[i for i in range(self.n_attractions) if self.visited[i] == 0]}") + print(f"当前位置: {self.current_pos}") \ No newline at end of file diff --git a/summer-ospp/McpMultiTravelPlanner/ppo/train.py b/summer-ospp/McpMultiTravelPlanner/ppo/train.py new file mode 100644 index 00000000..46202963 --- /dev/null +++ b/summer-ospp/McpMultiTravelPlanner/ppo/train.py @@ -0,0 +1,271 @@ +import random +import numpy as np +import gymnasium as gym +from gymnasium import spaces +from stable_baselines3 import PPO +import matplotlib.pyplot as plt +from touristAttractions import TouristAttractionEnv + +def generate_training_data(num_datasets=50): + """生成训练数据集""" + training_datasets = [] + + # 常见景点名称库 + attraction_names = [ + "故宫", "天安门", "颐和园", "长城", "天坛", "北海公园", "恭王府", + "圆明园", "明十三陵", "雍和宫", "南锣鼓巷", "什刹海", "景山公园", + "鸟巢", "水立方", "798艺术区", "国家博物馆", "王府井", "三里屯", + "香山公园", "北京大学", "清华大学", "动物园", "海洋馆", "世界公园" + ] + + for i in range(num_datasets): + # 随机选择景点数量(10-20个) + num_attractions = random.randint(10, 20) + attractions = random.sample(attraction_names, num_attractions) + + # 生成距离矩阵(对称矩阵) + distance_matrix = np.random.uniform(1, 40, (num_attractions, num_attractions)) + distance_matrix = (distance_matrix + distance_matrix.T) / 2 + np.fill_diagonal(distance_matrix, 0) + + # 生成评分(3-5分) + attraction_scores = np.random.uniform(3.0, 5.0, num_attractions) + + # 生成花费(20-150元) + attraction_costs = np.random.uniform(20, 150, num_attractions) + + # 随机选择1-3个免费景点 + free_indices = random.sample(range(num_attractions), random.randint(1, 3)) + for idx in free_indices: + attraction_costs[idx] = 0 + + # 随机选择预算类型 + budget_types = ["economy", "comfort", "luxury"] + user_budget_type = random.choice(budget_types) + + # 随机选择最小访问景点数(3-8个) + min_visit = random.randint(3, 8) + + training_datasets.append({ + 'attractions': attractions, + 'distance_matrix': distance_matrix, + 'attraction_scores': attraction_scores, + 'attraction_costs': attraction_costs, + 'user_budget_type': user_budget_type, + 'min_attractions': min_visit + }) + + return training_datasets + +def generate_test_data(): + """生成测试数据集""" + test_cases = [] + + # 测试案例1:北京经典景点(12个) + beijing_attractions = [ + "故宫", "天安门", "颐和园", "长城", "天坛", "北海公园", + "恭王府", "圆明园", "雍和宫", "南锣鼓巷", "鸟巢", "王府井" + ] + + beijing_distances = np.array([ + [0, 1, 15, 70, 5, 2, 3, 20, 6, 4, 12, 3], + [1, 0, 14, 69, 4, 1, 2, 19, 5, 3, 11, 2], + [15, 14, 0, 55, 12, 13, 12, 5, 11, 13, 8, 14], + [70, 69, 55, 0, 65, 68, 67, 60, 66, 68, 62, 69], + [5, 4, 12, 65, 0, 3, 4, 17, 3, 5, 10, 4], + [2, 1, 13, 68, 3, 0, 1, 18, 4, 2, 11, 1], + [3, 2, 12, 67, 4, 1, 0, 17, 3, 1, 10, 2], + [20, 19, 5, 60, 17, 18, 17, 0, 16, 18, 13, 19], + [6, 5, 11, 66, 3, 4, 3, 16, 0, 4, 9, 5], + [4, 3, 13, 68, 5, 2, 1, 18, 4, 0, 11, 1], + [12, 11, 8, 62, 10, 11, 10, 13, 9, 11, 0, 12], + [3, 2, 14, 69, 4, 1, 2, 19, 5, 1, 12, 0] + ]) + + beijing_scores = np.array([4.8, 4.5, 4.7, 4.9, 4.3, 4.2, 4.4, 4.1, 4.6, 4.0, 4.3, 4.2]) + beijing_costs = np.array([60, 0, 40, 80, 20, 15, 45, 25, 30, 0, 50, 0]) + + test_cases.append({ + 'name': '北京经典12景点', + 'attractions': beijing_attractions, + 'distance_matrix': beijing_distances, + 'attraction_scores': beijing_scores, + 'attraction_costs': beijing_costs, + 'user_budget_type': 'comfort', + 'min_attractions': 6 + }) + + # 测试案例2:上海现代景点(15个) + shanghai_attractions = [ + "外滩", "东方明珠", "南京路", "豫园", "田子坊", "上海博物馆", + "静安寺", "迪士尼", "陆家嘴", "新天地", "世纪公园", "朱家角", + "上海科技馆", "中华艺术宫", "七宝老街" + ] + + shanghai_distances = np.random.uniform(5, 50, (15, 15)) + shanghai_distances = (shanghai_distances + shanghai_distances.T) / 2 + np.fill_diagonal(shanghai_distances, 0) + + shanghai_scores = np.random.uniform(3.8, 4.9, 15) + shanghai_costs = np.random.uniform(0, 120, 15) + shanghai_costs[[1, 3, 5, 9]] = 0 # 设置几个免费景点 + + test_cases.append({ + 'name': '上海现代15景点', + 'attractions': shanghai_attractions, + 'distance_matrix': shanghai_distances, + 'attraction_scores': shanghai_scores, + 'attraction_costs': shanghai_costs, + 'user_budget_type': 'luxury', + 'min_attractions': 8 + }) + + # 测试案例3:杭州自然景点(18个) + hangzhou_attractions = [ + "西湖", "雷峰塔", "灵隐寺", "宋城", "西溪湿地", "千岛湖", + "龙井村", "六和塔", "岳王庙", "河坊街", "宝石山", "九溪烟树", + "太子湾", "胡雪岩故居", "中国美院", "南宋御街", "白堤", "苏堤" + ] + + hangzhou_distances = np.random.uniform(2, 40, (18, 18)) + hangzhou_distances = (hangzhou_distances + hangzhou_distances.T) / 2 + np.fill_diagonal(hangzhou_distances, 0) + + hangzhou_scores = np.random.uniform(4.0, 5.0, 18) + hangzhou_costs = np.random.uniform(10, 80, 18) + hangzhou_costs[[0, 9, 15]] = 0 # 设置免费景点 + + test_cases.append({ + 'name': '杭州自然18景点', + 'attractions': hangzhou_attractions, + 'distance_matrix': hangzhou_distances, + 'attraction_scores': hangzhou_scores, + 'attraction_costs': hangzhou_costs, + 'user_budget_type': 'economy', + 'min_attractions': 7 + }) + + return test_cases + +def train_model(env, training_datasets, total_timesteps=500000): + """训练模型""" + print("开始训练模型...") + model = PPO( + "MlpPolicy", + env, + learning_rate=2.5e-4, # 调整学习率 + n_steps=2048, + batch_size=128, # 增加批大小 + n_epochs=15, # 增加训练轮数 + gamma=0.995, # 调整折扣因子 + gae_lambda=0.98, + clip_range=0.15, # 调整裁剪范围 + ent_coef=0.01, # 增加熵系数鼓励探索 + verbose=1, + tensorboard_log="./tensorboard_logs/" + ) + + # 使用多种景点数量进行训练 + for i, data in enumerate(training_datasets): + print(f"训练数据集 {i+1}/{len(training_datasets)}: {len(data['attractions'])}个景点") + + env.set_attraction_data( + attractions=data['attractions'], + distance_matrix=data['distance_matrix'], + attraction_scores=data['attraction_scores'], + attraction_costs=data['attraction_costs'], + user_budget_type=data['user_budget_type'], + min_attractions=data['min_attractions'] + ) + env.reset() + + # 每个数据集训练一定步数 + model.learn(total_timesteps=total_timesteps // len(training_datasets), + reset_num_timesteps=False) + + return model + +def test_model(env, model, test_cases): + """测试模型""" + results = [] + + for test_case in test_cases: + print(f"\n=== 测试: {test_case['name']} ===") + print(f"景点数量: {len(test_case['attractions'])}") + print(f"预算类型: {test_case['user_budget_type']}") + print(f"最大访问数: {test_case['min_attractions']}") + + env.set_attraction_data( + attractions=test_case['attractions'], + distance_matrix=test_case['distance_matrix'], + attraction_scores=test_case['attraction_scores'], + attraction_costs=test_case['attraction_costs'], + user_budget_type=test_case['user_budget_type'], + min_attractions=test_case['min_attractions'] + ) + + obs, _ = env.reset() + done = False + total_reward = 0 + + while not done: + action, _ = model.predict(obs, deterministic=True) + obs, reward, done, _, info = env.step(action) + total_reward += reward + + # 记录结果 + result = { + 'name': test_case['name'], + 'path': [test_case['attractions'][i] for i in info['path']], + 'total_distance': info['total_distance'], + 'total_cost': info['total_cost'], + 'total_score': info['total_score'], + 'budget_remaining': info['budget_remaining'], + 'attractions_visited': info['attractions_visited'], + 'total_reward': total_reward + } + + results.append(result) + + print(f"最终路径: {result['path']}") + print(f"访问景点数: {result['attractions_visited']}") + print(f"总距离: {result['total_distance']:.2f}") + print(f"总花费: {result['total_cost']:.2f}") + print(f"总评分: {result['total_score']:.2f}") + print(f"剩余预算: {result['budget_remaining']:.2f}") + print(f"总奖励: {result['total_reward']:.2f}") + print("-" * 50) + + return results + +if __name__ == "__main__": + # 初始化环境 + env = TouristAttractionEnv(max_attractions=25) + + # 生成训练数据 + print("生成训练数据...") + training_datasets = generate_training_data(num_datasets=5000) + + # 训练模型 + model = train_model(env, training_datasets, total_timesteps=50000) + + # 保存模型 + model.save("flexible_tourist_model_10_20_min") + print("模型已保存") + + # # 生成测试数据 + # print("\n生成测试数据...") + # test_cases = generate_test_data() + # + # # 测试模型 + # print("\n开始测试模型...") + # results = test_model(env, model, test_cases) + # + # # 输出测试结果摘要 + # print("\n=== 测试结果摘要 ===") + # for result in results: + # print(f"{result['name']}:") + # print(f" 访问了 {result['attractions_visited']} 个景点") + # print(f" 总评分: {result['total_score']:.2f}, 总花费: {result['total_cost']:.2f}") + # print(f" 路径: {result['path']}") + # print() \ No newline at end of file