开发者
资源
我要评分
获取效率
正确性
完整性
易理解
在线提单
论坛求助

基于AI的C/C++源码迁移

操作步骤

  1. 上传文件。以压缩包文件名为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。
  2. 询问可以帮忙做什么,使用上一步返回的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 迁移:提供源数据库类型、目标数据库类型和项目路径
    
    您想执行哪个任务呢?
  3. 执行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
    
    迁移工作已完成,您可以查看上述目录中的迁移结果和详细报告。是否需要我帮您查看具体的迁移修改内容?
  4. 下载迁移结果。
    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