基于AI的C/C++源码迁移
操作步骤
- 上传文件。以压缩包文件名为cpptest.tar.gz,指定task_id为例。
curl.exe -X POST "http://xx.xx.xx.xx:xxxx/upload?task_id=20260520_070249_7161" -H "x-file-name: cpptest.tar.gz" -T "D:\demo\cpptest.tar.gz"
返回信息如下。
{ "code": 200, "message": "文件上传成功! ", "task_id": "20260520_070249_7161", "project_path": "cpptest" }
- 若指定task_id,则以指定的task_id为准。若指定的task_id不存在,则会报错。
- 若未指定task_id,则会自动分配一个task_id。
- 询问可以帮忙做什么,使用上一步返回的task_id,确保处于同一会话。若不指定task_id,则会自动分配一个task_id。
- Windows命令(CMD):
curl.exe -X POST "http://xx.xx.xx.xx:xxxx/run" -H "Content-Type: application/json" -d "{\"instruction\":\"你可以帮忙做什么\",\"task_id\":\"20260520_070249_7161\"}" - Windows命令(PowerShell):
curl.exe -X POST "http://xx.xx.xx.xx:xxxx/run" -H "Content-Type: application/json" -d '{\"instruction\":\"你可以帮忙做什么\",\"task_id\":\"20260520_070249_7161\"}' - Linux/MacOS命令:
curl -X POST "http://xx.xx.xx.xx:xxxx/run" -H "Content-Type: application/json" -d '{"instruction":"你可以帮忙做什么","task_id": "20260520_070249_7161"}'
返回信息如下。
我可以帮您完成以下任务: 1. 目录浏览 - 列出指定目录中的文件和子目录 - 支持各种 ls 命令选项(如 -l, -a 等) 2. C++ 源码迁移(x86_64 → 鲲鹏架构) - 自动分析 C++ 项目在跨架构迁移过程中的兼容性问题 - 源码扫描与架构差异识别(向量指令、内联汇编、字节序等) - 依赖库兼容性核查 - 构建脚本(CMake/Makefile)调整建议 - 自动生成迁移补丁和详细报告 - 支持的项目类型:包含 CMakeLists.txt 或 Makefile 的 C++ 项目 3. SQL 数据库迁移 - 自动化 SQL 语法转换 - 支持的源数据库:MySQL、Oracle、DB2 - 支持的目标数据库:DM(达梦)、Vastbase、KINGBASE(人大金仓)、MySQL、GoldenDB - 自动生成迁移后的 SQL 文件 如果您有具体的迁移需求,请告诉我: - 对于 C++ 迁移:提供项目路径(需包含构建文件) - 对于 SQL 迁移:提供源数据库类型、目标数据库类型和项目路径 您想执行哪个任务呢?
- Windows命令(CMD):
- 执行C/C++源码迁移。
- Windows命令(CMD):
curl.exe -X POST "http://xx.xx.xx.xx:xxxx/run" -H "Content-Type: application/json" -d "{\"instruction\":\"将cpptest代码从x86迁移到鲲鹏\",\"task_id\":\"20260520_070249_7161\"}" - Windows命令(PowerShell):
curl.exe -X POST "http://xx.xx.xx.xx:xxxx/run" -H "Content-Type: application/json" -d '{\"instruction\":\"将cpptest代码从x86迁移到鲲鹏\",\"task_id\":\"20260520_070249_7161\"}' - Linux/MacOS命令:
curl -X POST "http://xx.xx.xx.xx:xxxx/run" -H "Content-Type: application/json" -d '{"instruction":"将cpptest代码从x86迁移到鲲鹏","task_id": "20260520_070249_7161"}'
返回信息如下。
正在执行: Bash, 参数: {'command': 'find /home/DevKit-AI-x.x.x-Linux-Kunpeng -name porting_workflow_cli -type f', 'working_directory': '/home/DevKit-AI-x.x.x-Linux-Kunpeng'} 开始 C++ 源码迁移 (鲲鹏架构) AI改写并发数: 2, 超时时间: 100秒 ------------------------------------------------------------ CPPTransform ------------------------------------------------------------ 开始 C++ 源码迁移... Progress: [0%] Progress: [100%] 为文件 mm_testz_si128_x86.c 生成 2 个补丁 完成 C++ 源码迁移,共为 1 个文件生成补丁 ------------------------------------------------------------ CPPAIRewrite ------------------------------------------------------------ 开始 C++ AI 辅助迁移... AI改写配置 - 最大并发: 2, 超时时间: 100秒 C++ AI改写配置 - 最大并发: 2, 超时时间: 100秒 完成 C++ AI 辅助迁移 ------------------------------------------------------------ CPPAIRewriteStatistics ------------------------------------------------------------ 开始 C++ 迁移结果统计... C++ 迁移统计结果: 头文件插入-avx2ki (Header Insertion-avx2ki ) [状态码 100]: 1 个 头文件插入-sse2neon (Header Insertion-sse2neon ) [状态码 200]: 0 个 头文件插入-KunpengTrans (Header Insertion-KunpengTrans) [状态码 1300]: 0 个 内联汇编替换 (Inline ASM Replace ) [状态码 500]: 0 个 变量替换 (Variable Replace ) [状态码 700]: 0 个 插入elif分支 (Insert elif Branch ) [状态码 1000]: 0 个 条件分支 (Conditional Branch ) [状态码 1010]: 0 个 架构包裹 (Architecture Wrap ) [状态码 1600]: 1 个 编译选项插入 (Compile Flags ) [状态码 2900]: 0 个 其他类型 (Other): 共0个 AI判断需要改写 (AI Needs Rewrite ): 0 个 AI判断不需要改写 (AI No Need Rewrite): 0 个 AI改写超时 (AI Rewrite Timeout): 0 个 完成 C++ 迁移结果统计。 ------------------------------------------------------------ CPPPatchApply ------------------------------------------------------------ 开始应用 C++ 迁移补丁... 已生成 result.patch 文件: cpptest_f47f8d95ade14c46bf788cd9e8dd9bbf/project_info/result.patch C++ 修改记录已保存到: cpptest_f47f8d95ade14c46bf788cd9e8dd9bbf/tmp/convert_record.json 已生成 Excel 文件: cpptest_f47f8d95ade14c46bf788cd9e8dd9bbf/project_info/convert_record.xlsx 完成 C++ 补丁应用。原项目路径: cpptest_f47f8d95ade14c46bf788cd9e8dd9bbf/origin,修改后项目路径: cpptest_f47f8d95ade14c46bf788cd9e8dd9bbf/result C++ 源码迁移完成! 结果保存在: cpptest_f47f8d95ade14c46bf788cd9e8dd9bbf C++ 源码迁移已成功完成! 迁移结果摘要: - 迁移项目:cpptest - 源架构:x86_64 - 目标架构:鲲鹏 (AArch64) - 处理文件数:1 个文件 (mm_testz_si128_x86.c) - 生成补丁数:2 个 迁移统计: - 头文件插入 (avx2ki):1 处 - 架构包裹:1 处 - 内联汇编替换:0 处 - 变量替换:0 处 - 条件分支:0 处 - 编译选项插入:0 处 结果保存位置: - 工作目录:/home/DevKit-AI-x.x.x-Linux-Kunpeng/cpptest_f47f8d95ade14c46bf788cd9e8dd9bbf - 原始代码:cpptest_f47f8d95ade14c46bf788cd9e8dd9bbf/origin - 迁移后代码:cpptest_f47f8d95ade14c46bf788cd9e8dd9bbf/result - 补丁文件:cpptest_f47f8d95ade14c46bf788cd9e8dd9bbf/project_info/result.patch - 修改记录:cpptest_f47f8d95ade14c46bf788cd9e8dd9bbf/tmp/convert_record.json - Excel 报告:cpptest_f47f8d95ade14c46bf788cd9e8dd9bbf/project_info/convert_record.xlsx 迁移工作已完成,您可以查看上述目录中的迁移结果和详细报告。是否需要我帮您查看具体的迁移修改内容? - Windows命令(CMD):
- 下载迁移结果。
curl.exe -o "result.zip" "http://xx.xx.xx.xx:xxxx/download?task_id=20260520_070249_7161&download_result_path=20260520_070249_7161/cpptest_f47f8d95ade14c46bf788cd9e8dd9bbf"
返回信息如下所示。
% Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 7608 100 7608 0 0 55559 0 --:--:-- --:--:-- --:--:-- 55941
父主题: 功能使用(HTTP/HTTPS接口)