CodePorting AI 引擎说明

该功能在处理复杂代码库或尝试在生成的代码中实现特定结果时特别有用。通过提供这些说明,用户可以确保 AI 模型生成符合其确切要求和规范的代码。

使用内联指令

内联指令是一种特殊机制,允许用户在源代码相关任务的过程中向 AI 模型提供具体指导。

使用内联指令的一个主要好处是,它允许用户在不必手动编辑代码的情况下微调 AI 模型的输出。这可以节省时间和精力,因为用户可以快速轻松地对生成的代码进行调整,而无需从头开始。

用户可以通过在代码中的注释中使用 <ai>...</ai> 标签来给出如何修改或优化代码某些部分的指令。

示例 1:控制命名

例如,指令告诉 CodePorting AI 引擎将 Python 函数 crc_check 重命名为 verifyCrc,使用 Python to Java 转换器Model1

# <ai>将函数 crc_check 重命名为 verifyCrc</ai>
def crc_check(data, div):
   ...
   return crc

转换器的输出是 Java 代码,其中包含 verifyCrc 方法,而不是 crc_checkcrcCheck

// 这段代码是从 Python 转换到 Java
public class CrcVerifier {
    public static int verifyCrc(byte[] data, byte[] divisor) {
        // CRC 检查的实现
        int crc = 0; // CRC 计算的占位符
        // 在此添加 CRC 计算逻辑
        return crc;
    }
}

示例 2:生成基础代码

这是另一个示例,展示如何让 AI 引擎使用 Python to Java 转换器Model1 创建一个框架代码:

# <ai>将函数 crc_check 重命名为 verifyCrc</ai>
# <ai>创建类 SecurityServiceImpl 和 ISecurityService 接口</ai>
def crc_check(data, div):
   ...
   return crc

结果,输出代码包含由 SecurityServiceImpl 实现的 ISecurityService 接口:

// 这段代码是从 Python 转换到 Java
public interface ISecurityService {
    int verifyCrc(byte[] data, byte[] div);
}

public class SecurityServiceImpl implements ISecurityService {
    @Override
    public int verifyCrc(byte[] data, byte[] div) {
        // 在此实现 CRC 验证逻辑
        int crc = 0;
        // ...
        return crc;
    }
}

示例 3:指定依赖关系

这是一个示例,展示如何使用 Python to Java 转换器Model1 向类中添加日志记录:

# <ai>将函数 crc_check 重命名为 verifyCrc</ai>
# <ai>创建类 SecurityServiceImpl 和 ISecurityService 接口,并在构造函数中添加应用程序上下文依赖</ai>
# <ai>向类中添加日志记录依赖</ai>
def crc_check(data, div):
   ...
   # <ai>抛出异常而不是返回结果</ai>
   return crc

结果,日志记录器通过 SecurityServiceImpl 的构造函数注入:

// 这段代码是从 Python 转换到 Java,实现了一个带有 CRC 验证功能的安全服务。
public interface ISecurityService {
    // 定义该接口将公开的方法
}

public class SecurityServiceImpl implements ISecurityService {
    private final Logger logger;

    public SecurityServiceImpl(Logger logger) {
        this.logger = logger;
    }

    public void verifyCrc(byte[] data, byte[] div) throws Exception {
        // 在此实现细节...
        // 抛出异常而不是返回结果
        throw new Exception("CRC 验证失败");
    }
}