この機能は、複雑なコードベースで作業する際や、生成されたコードで特定の結果を達成しようとする際に特に便利です。これらの指示を提供することで、ユーザーはAIモデルが自分の正確な要件と仕様を満たすコードを生成することを保証できます。
インライン指示は、ソースコード関連のタスクの過程でユーザーがAIモデルに特定のガイダンスを提供できる特別なメカニズムです。
インライン指示を使用する主な利点の一つは、ユーザーが後でコードを手動で編集することなく、AIモデルの出力を微調整できることです。これにより、ユーザーはゼロから始めることなく、生成されたコードに迅速かつ簡単に調整を加えることができ、時間と労力を節約できます。
ユーザーは、コード内のコメントに <ai>...</ai>
タグを使用して、コードの特定の部分をどのように修正または最適化するかについて指示を与えることができます。
例えば、指示はCodePorting AIエンジンにPython関数 crc_check を verifyCrc に名前変更するように指示します。Python to Java コンバータ と Model1 を使用します:
# <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
その結果、出力コードには ISecurityService インターフェースが SecurityServiceImpl によって実装されています:
// このコードは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検証に失敗しました");
}
}