Kód létrehozása természetes nyelvről
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-4
kó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 python
való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.