Kód létrehozása természetes nyelvről

Befejeződött

Az Azure OpenAI-modellek egyik képessége, hogy természetes nyelvi kérésekből hoz létre kódot. A feladatok egy egyszerű egysoros parancstól a teljes alkalmazásig terjedhetnek. Az AI-modellek a megadott kódot vagy korábbi válaszokat is szerkeszthetik és frissíthetik a kért feladat elvégzéséhez.

AI-modellek kódgeneráláshoz

A modellek korábbi generációiban gpt néhányat kifejezetten kóddal (más néven codex modellekkel) való használatra képeztek be. A modellek új generációinak fejlődésével az alapmodellek jelentősen javítják a nyelv és a kód teljesítményét és megértését, ami azt eredményezi, hogy nincs szükség konkrét kódmodellekre. Ez a fejlesztés egyetlen modellt eredményez az újabb generációk számára (például gpt-35-turbo és ), amelyek természetes nyelvhez és gpt-4kódhoz is használhatók.

A modulban szereplő példák a következőt használják gpt-35-turbo: .

Írási függvények

Az Azure OpenAI-modellek a kívánt leírással több nyelven is létrehozhatnak függvényeket és alkalmazásokat. Tegyük fel például, hogy szüksége van a bináris keresés implementálására, de nem emlékszik a műveletre. A kérdésre adott válasz write a function for binary search in pythonvalószínűleg a függvényt és a kód magyarázatát tartalmazza.

Sure, here's an example implementation of binary search algorithm in Python:

def binary_search(array, target):  
    low = 0  
    high = len(array) - 1  
  
    while low <= high:  
        mid = (low + high) // 2  
        if array[mid] == target:  
            return mid  
        elif array[mid] < target:  
            low = mid + 1  
        else:  
            high = mid - 1  
  
    return -1  
 
This function takes in two arguments - an array of integers and a target integer that we want to search
for in the array. The function initializes two pointers - low and high - to the first and last indices
of the array, respectively.

Inside the while loop, the function calculates the middle index using integer division (//). If the 
middle element is equal to the target, the function returns the index of the middle element. If the 
middle element is less than the target, we update the low pointer to mid + 1. Otherwise, we update the 
high pointer to mid - 1. We continue these steps until we find the target or the pointers cross each 
other (i.e., low > high).

If the target is not found in the array, the function returns -1.

Note that the binary search algorithm assumes that the input array is sorted in ascending order. If 
the array is not sorted, the algorithm may not return the correct result.

A kérés a függvényeknél továbbhaladhat, és függvények sorozatát vagy egy teljes alkalmazást kérhet le. A válasz jó kiindulópontot biztosít az elérni kívánt feladathoz.

Kódnyelv módosítása

Ha egy nyelven rendelkezik kóddal, de szüksége van rá egy másikban, az Azure OpenAI ezt lefordíthatja Önnek. Tegyük fel például, hogy ez a print_squares függvény a Pythonban van.

def print_squares(n):  
    for i in range(1, n+1):  
        print(i**2)   

Ha megadja a kódot a parancssorral convert this code to C#együtt, valószínűleg az alábbi függvényhez hasonlót fog kapni.

public void PrintSquares(int n)  
{  
    for (int i = 1; i <= n; i++)  
    {  
        Console.WriteLine(i * i);  
    }  
}  

Figyelje meg, hogy for a modell megértette a hurkok és a függvények különböző nyelvekben való definiálása közötti különbségeket (beleértve a C#-beli hozzáférési módosítókat is), és megfelelően módosította a kódot.

Ismeretlen kód ismertetése

Az Azure OpenAI-modellek hasznosak a nem értelmes kód megértéséhez, vagy olyan nyelven, amelyet nem ismer. Tegyük fel például, hogy a következő függvényt kapta (fiktív kódolási nyelven!), és nem tudta, hogyan kell értelmezni.

fn qzplv(n: i32, m: i32) -> i32 {
    if n == 0 {
        return m + 1;
    } else if m == 0 {
        return qzplv(n - 1, 1);
    } else {
        return qzplv(n - 1, qzplv(n, m - 1));
    }
}

Ha a modell a következőhöz hasonló választ kap, az üzenettel could you explain what this code is doing?együtt a következőhöz hasonló választ kap:

Sure, I'd be happy to explain what this code is doing!

This code is implementing the Ackermann function, which is a well-known mathematical function that 
grows very quickly in terms of computation time as its inputs increase. The function takes two integer 
arguments (n and m) and returns another integer.

Here's how the function works:
- If n is equal to 0, the function returns m + 1.
- If m is equal to 0, the function calls itself recursively with n - 1 and 1 as arguments.
- Otherwise, the function calls itself recursively with n - 1 and the result of calling itself with n 
and m - 1 as arguments.

The function is implemented in a way that is easy to understand and follow, but it has a very high 
computational complexity. In fact, it grows so quickly that it can't be computed for values of n and m 
greater than about 4 or 5.

Ha a magyarázatot és a fordítást egy jól ismert nyelvre kombinálja, még hasznosabbá teszi ezt a funkciót.