Questa funzionalità è particolarmente utile quando si lavora con codebase complesse o quando si cerca di ottenere risultati specifici nel codice generato. Fornendo queste istruzioni, gli utenti possono garantire che il modello AI produca codice che soddisfi i loro requisiti e specifiche esatti.
Le istruzioni inline sono un meccanismo speciale che consente agli utenti di fornire indicazioni specifiche ai modelli AI durante il processo di attività relative al codice sorgente.
Un vantaggio chiave dell'utilizzo delle istruzioni inline è che consente agli utenti di perfezionare l'output del modello AI senza dover modificare manualmente il codice in seguito. Questo può far risparmiare tempo e sforzi, poiché gli utenti possono apportare rapidamente e facilmente modifiche al codice generato senza dover ricominciare da zero.
Gli utenti possono fornire istruzioni su come determinate parti del codice dovrebbero essere modificate o ottimizzate utilizzando i tag <ai>...</ai>
nei commenti all'interno del codice.
Ad esempio, l'istruzione indica al motore AI di CodePorting di rinominare la funzione Python crc_check in verifyCrc utilizzando il converter Python to Java e Model1:
# <ai>Rinominare la funzione crc_check in verifyCrc</ai>
def crc_check(data, div):
...
return crc
L'output del converter è codice Java che ha il metodo verifyCrc invece di crc_check o crcCheck:
// Questo codice è una traduzione da Python a Java
public class CrcVerifier {
public static int verifyCrc(byte[] data, byte[] divisor) {
// Implementazione del controllo CRC
int crc = 0; // Segnaposto per il calcolo del CRC
// Aggiungere qui la logica di calcolo del CRC
return crc;
}
}
Ecco un altro esempio di come far creare al Motore AI un codice di scaffolding utilizzando il converter Python to Java e Model1:
# <ai>Rinominare la funzione crc_check in verifyCrc</ai>
# <ai>Creare la classe SecurityServiceImpl e l'interfaccia ISecurityService</ai>
def crc_check(data, div):
...
return crc
Come risultato, il codice di output contiene l'interfaccia ISecurityService implementata da SecurityServiceImpl:
// Questo codice è tradotto da Python a Java
public interface ISecurityService {
int verifyCrc(byte[] data, byte[] div);
}
public class SecurityServiceImpl implements ISecurityService {
@Override
public int verifyCrc(byte[] data, byte[] div) {
// Implementare qui la logica di verifica del CRC
int crc = 0;
// ...
return crc;
}
}
Ecco un esempio di come aggiungere il logging alla classe utilizzando il converter Python to Java e Model1:
# <ai>Rinominare la funzione crc_check in verifyCrc</ai>
# <ai>Creare la classe SecurityServiceImpl e l'interfaccia ISecurityService con dipendenza dal contesto dell'applicazione nel costruttore</ai>
# <ai>Aggiungere la dipendenza di logging alla classe</ai>
def crc_check(data, div):
...
# <ai>lanciare un'eccezione invece di restituire il risultato</ai>
return crc
Come risultato, un logger viene iniettato tramite il costruttore di SecurityServiceImpl:
// Questo codice è una traduzione da Python a Java, implementando un servizio di sicurezza con una funzione di verifica CRC.
public interface ISecurityService {
// Definire i metodi che questa interfaccia esporrà
}
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 {
// Dettagli di implementazione qui...
// lanciare un'eccezione invece di restituire il risultato
throw new Exception("Verifica CRC fallita");
}
}