이 기능은 복잡한 코드베이스에서 작업하거나 생성된 코드에서 특정 결과를 달성하려고 할 때 특히 유용합니다. 이러한 지침을 제공함으로써 사용자는 AI 모델이 자신의 정확한 요구 사항과 사양을 충족하는 코드를 생성하도록 보장할 수 있습니다.
인라인 지침은 사용자가 소스 코드 관련 작업을 수행하는 동안 AI 모델에 특정 지침을 제공할 수 있는 특별한 메커니즘입니다.
인라인 지침을 사용하는 주요 이점 중 하나는 사용자가 코드를 수동으로 수정하지 않고도 AI 모델의 출력을 미세 조정할 수 있다는 것입니다. 이는 사용자가 처음부터 다시 시작하지 않고도 생성된 코드를 빠르고 쉽게 조정할 수 있으므로 시간과 노력을 절약할 수 있습니다.
사용자는 코드 내 주석에 <ai>...</ai>
태그를 사용하여 코드의 특정 부분이 어떻게 수정되거나 최적화되어야 하는지에 대한 지침을 제공할 수 있습니다.
예를 들어, 이 지침은 CodePorting AI 엔진에게 Python 함수 _crc_check_의 이름을 Python to Java 변환기와 __Model1__을 사용하여 _verifyCrc_로 변경하도록 지시합니다:
# <ai>함수 crc_check의 이름을 verifyCrc로 변경</ai>
def crc_check(data, div):
...
return crc
변환기의 출력은 crc_check 또는 crcCheck 대신 verifyCrc 메서드를 가진 Java 코드입니다:
// 이 코드는 Python에서 Java로 번역된 코드입니다.
public class CrcVerifier {
public static int verifyCrc(byte[] data, byte[] divisor) {
// CRC 체크 구현
int crc = 0; // CRC 계산을 위한 자리 표시자
// 여기에 CRC 계산 로직 추가
return crc;
}
}
다음은 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;
}
}
다음은 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 검증 실패");
}
}