Pelajari cara membuat atau memanipulasi teks, termasuk kode

Titik akhir penyelesaian dapat digunakan untuk berbagai macam tugas. Titik akhir ini menyediakan antarmuka text-in, text-out yang sederhana namun kuat untuk salah satu model kami. Anda memasukkan beberapa teks sebagai permintaan, dan model akan menghasilkan penyelesaian teks yang mencoba mencocokkan konteks atau pola apa pun yang Anda berikan. Misalnya, jika Anda memberi API permintaan, "Seperti yang dikatakan Descartes, saya pikir, oleh karena itu", API akan mengembalikan penyelesaian " Saya" dengan peluang tinggi.

Cara terbaik untuk mulai menjelajahi penyelesaian adalah melalui taman bermain kami di Azure OpenAI Studio. Taman bermain ini adalah kotak teks sederhana di mana Anda dapat mengirimkan permintaan untuk menghasilkan penyelesaian. Anda dapat memulai dengan contoh sederhana seperti berikut:

write a tagline for an ice cream shop

setelah Anda kirimkan, Anda akan melihat sesuatu seperti yang dihasilkan berikut:

write a tagline for an ice cream shop
we serve up smiles with every scoop!

Hasil penyelesaian aktual yang Anda lihat mungkin berbeda karena API bersifat stokastik secara default. Dengan kata lain, Anda mungkin mendapatkan penyelesaian yang sedikit berbeda setiap kali pemanggilan, bahkan jika permintaan Anda tidak berubah. Anda dapat mengontrol perilaku ini dengan pengaturan suhu.

Antarmuka "teks-masuk, teks-keluar" sederhana ini berarti Anda dapat "memprogram" model dengan memberikan instruksi atau hanya beberapa contoh dari apa yang Anda ingin lakukan. Keberhasilannya umumnya tergantung pada kompleksitas tugas dan kualitas permintaan Anda. Aturan umumnya adalah memikirkan bagaimana Anda akan menulis soal kata untuk dipecahkan oleh siswa sekolah menengah. Permintaan yang ditulis dengan baik memberikan informasi yang cukup bagi model untuk mengetahui apa yang Anda inginkan dan bagaimana responsnya.

Catatan

Perlu diingat bahwa data pelatihan model terputus pada Oktober 2019, sehingga mereka mungkin tidak memiliki pengetahuan tentang peristiwa saat ini. Kami berencana untuk menambahkan lebih banyak pelatihan berkelanjutan di masa mendatang.

Desain permintaan

Dasar

Model OpenAI dapat melakukan segalanya mulai dari menghasilkan cerita asli hingga melakukan analisis teks yang kompleks. Karena mereka dapat melakukan begitu banyak hal, Anda harus eksplisit dalam menunjukkan apa yang Anda inginkan. Menunjukkan, tidak hanya mengatakan, sering kali merupakan rahasia untuk permintaan yang baik.

Model mencoba memprediksi apa yang Anda inginkan dari permintaan. Jika Anda mengirim kata-kata "Beri saya daftar ras kucing," model tidak akan secara otomatis berasumsi bahwa Anda meminta daftar ras kucing. Anda dapat dengan mudah meminta model untuk melanjutkan percakapan dengan kata-kata pertama "Beri saya daftar ras kucing" dan yang berikutnya adalah "dan saya akan memberi tahu Anda mana yang saya suka". Jika model hanya berasumsi bahwa Anda menginginkan daftar kucing, model tersebut tidak akan sebagus pembuatan konten, klasifikasi, atau tugas lainnya.

Ada tiga panduan dasar untuk membuat permintaan:

Tampilkan dan beritahu. Perjelas apa yang Anda inginkan baik melalui instruksi, contoh, atau kombinasi keduanya. Jika Anda ingin model memberi peringkat daftar item dalam urutan alfabet atau mengklasifikasikan paragraf berdasarkan sentimen, tunjukkan bahwa itu yang Anda inginkan.

Menyediakan data berkualitas. Jika Anda mencoba membuat pengklasifikasi atau membuat model mengikuti pola, pastikan ada cukup contoh. Pastikan untuk mengoreksi contoh Anda β€” model biasanya cukup cerdas melihat kesalahan ejaan dasar dan memberi Anda respons, tetapi mungkin juga mengasumsikan bahwa kesalahan disengaja dan hal tersebut dapat memengaruhi respons.

Periksa pengaturan Anda. Pengaturan suhu dan top_p mengontrol bagaimana deterministik model dalam menghasilkan respons. Jika Anda meminta respons yang hanya memiliki satu jawaban benar, Anda harus menyesuaikan pengaturannya ke nilai lebih rendah. Jika Anda mencari respons yang tidak jelas, Anda dapat mengatur nilainya menjadi lebih tinggi. Kesalahan pertama yang digunakan orang dengan pengaturan ini adalah berasumsi bahwa mereka kontrol "kecerdasan" atau "kreativitas".

Pemecahan Masalah

Jika Anda mengalami masalah dalam menjalankan API seperti yang diharapkan, ikuti daftar periksa ini:

  1. Apakah sudah jelas seperti apa generasi yang dimaksud?
  2. Apakah ada cukup contoh?
  3. Apakah Anda memeriksa contoh Anda untuk kesalahan? (API tidak akan memberi tahu Anda secara langsung)
  4. Apakah Anda menggunakan suhu dan top_p dengan benar?

Klasifikasi

Untuk membuat pengklasifikasi teks dengan API, kami memberikan deskripsi tugas dan memberikan beberapa contoh. Dalam demonstrasi ini, kami menunjukkan kepada API cara mengklasifikasikan sentimen Tweet.

This is a tweet sentiment classifier

Tweet: "I loved the new Batman movie!"
Sentiment: Positive

Tweet: "I hate it when my phone battery dies." 
Sentiment: Negative

Tweet: "My day has been πŸ‘"
Sentiment: Positive

Tweet: "This is the link to the article"
Sentiment: Neutral

Tweet: "This new music video blew my mind"
Sentiment:

Ada baiknya memperhatikan beberapa fitur dalam contoh ini:

1. Gunakan bahasa sederhana untuk menggambar input dan output Anda Kami menggunakan bahasa sederhana untuk input "Tweet" dan output "Sentimen" yang diharapkan. Untuk praktik terbaik, mulailah dengan deskripsi bahasa sederhana. Meskipun Anda sering dapat menggunakan singkatan atau kata kunci untuk menunjukkan input dan output, saat membuat permintaan Anda sebaiknya memulai dengan sedeskriptif mungkin dan kemudian bekerja mundur menghapus kata-kata tambahan selama performa ke permintaan konsisten.

2. Tunjukkan API cara menanggapi kasus apa pun Dalam contoh ini kami memberikan beberapa hasil "Positif", "Negatif" dan "Netral." Hasil netral penting karena akan ada banyak kasus di mana bahkan manusia akan kesulitan menentukan apakah sesuatu itu positif atau negatif dan situasi di mana tidak keduanya.

3. Anda dapat menggunakan teks dan emoji Pengklasifikasi adalah campuran teks dan emoji πŸ‘. API membaca emoji dan bahkan dapat mengonversi ekspresi ke dan dari mereka.

4. Anda memerlukan lebih sedikit contoh untuk tugas yang sudah dikenal Untuk pengklasifikasi ini, kami hanya memberikan beberapa contoh. Hal ini dikarenakan API sudah memiliki pemahaman tentang sentimen dan konsep tweet. Jika Anda membuat pengklasifikasi untuk sesuatu yang mungkin tidak dikenal oleh API, pengklasifikasi perlu untuk memberikan lebih banyak contoh.

Meningkatkan efisiensi pengklasifikasi

Sekarang setelah kita memahami cara membuat pengklasifikasi, mari kita ambil contoh itu dan membuatnya lebih efisien sehingga kita dapat menggunakannya untuk mendapatkan beberapa hasil kembali dari satu panggilan API.

This is a tweet sentiment classifier

Tweet: "I loved the new Batman movie!"
Sentiment: Positive

Tweet: "I hate it when my phone battery dies"
Sentiment: Negative

Tweet: "My day has been πŸ‘"
Sentiment: Positive

Tweet: "This is the link to the article"
Sentiment: Neutral

Tweet text
1. "I loved the new Batman movie!"
2. "I hate it when my phone battery dies"
3. "My day has been πŸ‘"
4. "This is the link to the article"
5. "This new music video blew my mind"

Tweet sentiment ratings:
1: Positive
2: Negative
3: Positive
4: Neutral
5: Positive

Tweet text
1. "I can't stand homework"
2. "This sucks. I'm bored 😠"
3. "I can't wait for Halloween!!!"
4. "My cat is adorable ❀️❀️"
5. "I hate chocolate"

Tweet sentiment ratings:
1.

Setelah menunjukkan API bagaimana tweet diklasifikasikan oleh sentimen, kami kemudian memberikannya daftar tweet dan kemudian daftar peringkat sentimen dengan indeks angka yang sama. API dapat mengambil dari contoh pertama bagaimana tweet seharusnya diklasifikasikan. Dalam contoh kedua, API melihat cara menerapkan klasifikasi ini ke daftar tweet. Hal ini memungkinkan API untuk menilai lima (dan bahkan lebih) tweet hanya dalam satu panggilan API.

Penting untuk dicatat bahwa ketika Anda meminta API untuk membuat daftar atau mengevaluasi teks, Anda perlu memperhatikan pengaturan probabilitas Anda (P Top atau Suhu) untuk menghindari penyimpangan.

  1. Pastikan pengaturan probabilitas Anda dikalibrasi dengan benar dengan menjalankan beberapa pengujian.

  2. Jangan membuat daftar Anda terlalu panjang atau API cenderung menyimpang.


Generasi

Salah satu tugas paling kuat namun paling sederhana yang dapat Anda selesaikan dengan API adalah menghasilkan ide atau versi input baru. Anda dapat memberi API daftar beberapa ide cerita dan API akan mencoba menambahkan ke daftar itu. Kita telah melihatnya membuat rencana bisnis, deskripsi karakter, dan slogan pemasaran hanya dengan memberikan beberapa contoh. Dalam demonstrasi ini kami akan menggunakan API untuk membuat lebih banyak contoh tentang cara menggunakan realitas virtual di kelas:

Ideas involving education and virtual reality

1. Virtual Mars
Students get to explore Mars via virtual reality and go on missions to collect and catalog what they see.

2.

Yang harus kita lakukan dalam contoh ini adalah menyediakan API hanya dengan deskripsi tentang apa daftar itu dan satu contoh. Kami kemudian meminta API dengan angka 2. yang menunjukkan bahwa angka tersebut adalah kelanjutan dari daftar.

Meskipun ini adalah permintaan yang sangat sederhana, ada beberapa detail yang perlu diperhatikan:

1. Kami menjelaskan niat dari daftar
Sama seperti pengklasifikasi, kami memberi tahu API terlebih dahulu tentang daftar tersebut. Hal ini membantunya fokus untuk menyelesaikan daftar dan tidak mencoba menebak pola apa yang ada di baliknya.

2. Contoh kami menetapkan pola untuk sisa daftar lainnya
Karena kami memberikan deskripsi satu kalimat, API akan mencoba mengikuti pola tersebut untuk item lainnya yang ditambahkan ke daftar. Jika kita menginginkan respons yang lebih verbose, kita perlu mengaturnya sejak awal.

3. Kami meminta API dengan menambahkan entri yang tidak lengkap
Ketika API melihat 2. dan permintaan tiba-tiba berakhir, hal pertama yang coba dilakukan adalah mencari tahu apa yang harus terjadi setelahnya. Karena kita sudah memiliki contoh dengan nomor satu dan memberikan daftar judul, respons yang paling jelas adalah terus menambahkan item ke daftar.

Teknik generasi lanjutan
Anda dapat meningkatkan kualitas respons dengan membuat daftar yang lebih beragam dalam permintaan Anda. Salah satu cara untuk melakukannya adalah memulai dengan satu contoh, biarkan API menghasilkan lebih banyak dan memilih yang paling Anda sukai dan menambahkannya ke daftar. Beberapa variasi berkualitas tinggi dapat secara dramatis meningkatkan kualitas respons.


Percakapan

API sangat mahir dalam melakukan percakapan dengan manusia dan bahkan dengan dirinya sendiri. Hanya dengan beberapa baris instruksi, kita telah melihat API berfungsi sebagai chatbot layanan pelanggan yang dengan cerdas menjawab pertanyaan tanpa pernah bingung atau mitra percakapan yang bijaksana yang membuat lelucon dan permainan kata-kata. Kuncinya adalah memberi tahu API bagaimana seharusnya berperilaku dan kemudian memberikan beberapa contoh.

Berikut adalah contoh API yang berperan sebagai AI yang menjawab pertanyaan:

The following is a conversation with an AI assistant. The assistant is helpful, creative, clever, and very friendly.

Human: Hello, who are you?
AI: I am an AI created by OpenAI. How can I help you today?
Human: 

Ini semua yang diperlukan untuk membuat chatbot yang mampu melakukan percakapan. Namun di balik kesederhanaannya ada beberapa hal yang perlu diperhatikan:

1. Kami memberi tahu API niat tetapi kami juga memberi tahunya cara berperilaku Sama seperti permintaan lainnya, kami memberi isyarat kepada API ke dalam apa yang diwakili oleh contoh, tetapi kami juga menambahkan detail penting lainnya: kami memberikan instruksi eksplisit tentang cara berinteraksi dengan frasa "Asisten ini membantu, kreatif, pintar, dan sangat ramah."

Tanpa instruksi itu, API mungkin menyimpang dan meniru manusia yang berinteraksi dengannya dan menjadi sarkastis atau meniru perilaku lain yang ingin kita hindari.

2. Kami memberikan API identitas Pada awalnya kami memiliki respons API sebagai AI yang dibuat oleh OpenAI. Meskipun API tidak memiliki identitas intrinsik, identitas ini membantunya merespons dengan cara yang sedekat mungkin dengan kebenaran. Anda dapat menggunakan identitas dengan cara lain untuk membuat jenis chatbot lainnya. Jika Anda memberi tahu API untuk merespons sebagai wanita yang bekerja sebagai ilmuwan penelitian di bidang biologi, Anda akan mendapatkan komentar cerdas dan bijaksana dari API yang mirip dengan apa yang Anda harapkan dari seseorang dengan latar belakang tersebut.

Dalam contoh ini kami membuat chatbot yang sedikit sarkastis dan enggan menjawab pertanyaan:

Marv is a chatbot that reluctantly answers questions.

###
User: How many pounds are in a kilogram?
Marv: This again? There are 2.2 pounds in a kilogram. Please make a note of this.
###
User: What does HTML stand for?
Marv: Was Google too busy? Hypertext Markup Language. The T is for try to ask better questions in the future.
###
User: When did the first airplane fly?
Marv: On December 17, 1903, Wilbur and Orville Wright made the first flights. I wish they'd come and take me away.
###
User: Who was the first man in space?
Marv: 

Untuk membuat chatbot yang menghibur dan membantu, kami memberikan beberapa contoh pertanyaan dan jawaban yang menunjukkan cara membalas kepada API. Yang diperlukan hanyalah beberapa respons yang sarkastis dan kemudian API dapat mengambil pola dan memberikan sejumlah respons sarkastis yang tak terbatas.


Transformasi

API adalah model bahasa yang terbiasa dengan berbagai cara agar kata dan karakter dapat digunakan untuk mengekspresikan informasi. Model bahasa ini berkisar dari teks bahasa alami hingga kode dan bahasa selain bahasa Inggris. API juga dapat memahami konten pada tingkat yang memungkinkannya untuk meringkas, mengonversi, dan mengekspresikannya dengan cara yang berbeda.

Terjemahan

Dalam contoh ini kami menunjukkan API cara mengonversi dari bahasa Inggris ke Prancis:

English: I do not speak French.
French: Je ne parle pas français.
English: See you later!
French: Γ€ tout Γ  l'heure!
English: Where is a good restaurant?
French: OΓΉ est un bon restaurant?
English: What rooms do you have available?
French: Quelles chambres avez-vous de disponible?
English:

Contoh ini berfungsi karena API sudah memiliki pemahaman bahasa Prancis, jadi tidak perlu mencoba mengajarkannya bahasa ini. Sebaliknya, kita hanya perlu memberikan contoh yang cukup bahwa API memahami bahwa API mengonversi dari satu bahasa ke bahasa lain.

Jika Anda ingin menerjemahkan dari bahasa Inggris ke bahasa yang tidak dikenal oleh API, Anda harus memberikan lebih banyak contoh dan model yang disempurnakan untuk melakukannya dengan lancar.

Konversi

Dalam contoh ini kami mengonversi nama film menjadi emoji. Tindakan ini menunjukkan kemampuan beradaptasi API untuk mengambil pola dan bekerja dengan karakter lain.

Back to Future: πŸ‘¨πŸ‘΄πŸš—πŸ•’
Batman: πŸ€΅πŸ¦‡
Transformers: πŸš—πŸ€–
Wonder Woman: πŸ‘ΈπŸ»πŸ‘ΈπŸΌπŸ‘ΈπŸ½πŸ‘ΈπŸΎπŸ‘ΈπŸΏ
Spider-Man: πŸ•ΈπŸ•·πŸ•ΈπŸ•ΈπŸ•·πŸ•Έ
Winnie the Pooh: 🐻🐼🐻
The Godfather: πŸ‘¨πŸ‘©πŸ‘§πŸ•΅πŸ»β€β™‚οΈπŸ‘²πŸ’₯
Game of Thrones: πŸΉπŸ—‘πŸ—‘πŸΉ
Spider-Man:

Ringkasan

API dapat memahami konteks teks dan menyusun ulang dengan cara yang berbeda. Dalam contoh ini, API mengambil blok teks dan membuat penjelasan yang akan dipahami anak. Tindakan ini menggambarkan bahwa API memiliki pemahaman bahasa yang mendalam.

My ten-year-old asked me what this passage means:
"""
A neutron star is the collapsed core of a massive supergiant star, which had a total mass of between 10 and 25 solar masses, possibly more if the star was especially metal-rich.[1] Neutron stars are the smallest and densest stellar objects, excluding black holes and hypothetical white holes, quark stars, and strange stars.[2] Neutron stars have a radius on the order of 10 kilometres (6.2 mi) and a mass of about 1.4 solar masses.[3] They result from the supernova explosion of a massive star, combined with gravitational collapse, that compresses the core past white dwarf star density to that of atomic nuclei.
"""

I rephrased it for him, in plain language a ten-year-old can understand:
"""

Dalam contoh ini, kami menempatkan apa pun yang ingin kami rangkum di antara tanda kutip rangkap tiga. Perlu dicatat bahwa kami menjelaskan baik sebelum dan sesudah teks untuk diringkas apa niat kami dan siapa target audiens untuk ringkasan tersebut. Hal ini untuk menjaga API tidak menyimpang setelah memproses blok teks yang besar.

Penyelesaian

Meskipun semua permintaan menghasilkan penyelesaian, akan sangat membantu dalam menganggap penyelesaian teks sebagai tugasnya sendiri jika Anda ingin API melanjutkan dari bagian terakhir yang Anda tinggalkan. Misalnya, jika diberikan permintaan ini, API akan melanjutkan pelatihan pemikiran tentang pertanian vertikal. Anda dapat menurunkan pengaturan suhu untuk menjaga API lebih terfokus pada niat permintaan atau meningkatkannya agar tidak bersinggungan.

Vertical farming provides a novel solution for producing food locally, reducing transportation costs and

Permintaan berikutnya menunjukkan bagaimana Anda dapat menggunakan penyelesaian untuk membantu menulis komponen React. Kami mengirim beberapa kode ke API, dan API dapat melanjutkan sisanya karena memiliki pemahaman tentang pustaka React. Sebaiknya gunakan model dari seri Codex kami untuk tugas yang melibatkan pemahaman atau pembuatan kode. Saat ini, kami mendukung dua model Codex: code-davinci-002 dan code-cushman-001. Untuk mengetahui informasi selengkapnya tentang model Codex, lihat bagian Model Codex di Model.

import React from 'react';
const HeaderComponent = () => (

Respons faktual

API memiliki banyak pengetahuan yang dipelajari dari data yang dilatihnya. API juga memiliki kemampuan untuk memberikan respons yang terdengar sangat nyata tetapi sebenarnya dibuat-buat. Ada dua cara untuk membatasi kemungkinan API membuat jawaban.

1. Berikan kebenaran dasar untuk API Jika Anda memberikan API dengan isi teks untuk menjawab pertanyaan tentang (seperti entri Wikipedia), kemungkinan kecil akan mengacaukan respons.

2. Gunakan probabilitas rendah dan tunjukkan API cara mengatakan "Saya tidak tahu" Jika API memahami bahwa dalam kasus di mana jawaban tidak pasti tentang respons yang mengatakan "Saya tidak tahu" atau beberapa variasi adalah tepat, API akan kurang cenderung untuk membuat jawaban.

Dalam contoh ini, kami memberikan contoh pertanyaan dan jawaban API yang diketahuinya dan kemudian contoh hal-hal yang tidak diketahuinya dan memberikan tanda tanya. Kami juga menetapkan probabilitas ke nol sehingga API lebih mungkin merespons dengan "?" jika ada keraguan.

Q: Who is Batman?
A: Batman is a fictional comic book character.

Q: What is torsalplexity?
A: ?

Q: What is Devz9?
A: ?

Q: Who is George Lucas?
A: George Lucas is American film director and producer famous for creating Star Wars.

Q: What is the capital of California?
A: Sacramento.

Q: What orbits the Earth?
A: The Moon.

Q: Who is Fred Rickerson?
A: ?

Q: What is an atom?
A: An atom is a tiny particle that makes up everything.

Q: Who is Alvan Muntz?
A: ?

Q: What is Kozar-09?
A: ?

Q: How many moons does Mars have?
A: Two, Phobos and Deimos.

Q:

Bekerja dengan kode

Seri model Codex adalah turunan dari seri GPT-3 dasar OpenAI yang telah dilatih pada bahasa alami dan miliaran baris kode. Seri model ini paling optimal dalam Python dan menguasai banyak bahasa pemrogram termasuk C#, JavaScript, Go, Perl, PHP, Ruby, Swift, TypeScript, SQL, dan bahkan Shell.

Anda dapat menggunakan Codex untuk berbagai tugas, termasuk:

  • Mengubah komentar menjadi kode
  • Melengkapi baris atau fungsi Anda berikutnya dalam konteks
  • Membawa pengetahuan kepada Anda, seperti menemukan pustaka atau panggilan API yang berguna untuk aplikasi
  • Menambahkan komentar
  • Menulis ulang kode untuk efisiensi

Contoh codex

Berikut adalah beberapa contoh penggunaan Codex

Mengatakan "Halo" (Python)

"""
Ask the user for their name and say "Hello"
"""

Membuat nama acak (Python)

"""
1. Create a list of first names
2. Create a list of last names
3. Combine them randomly into a list of 100 full names
"""

Membuat kueri MyQSL (Python)

"""
Table customers, columns = [CustomerId, FirstName, LastName, Company, Address, City, State, Country, PostalCode, Phone, Fax, Email, SupportRepId]
Create a MySQL query for all customers in Texas named Jane
"""
query = 

Menjelaskan kode (JavaScript)

// Function 1
var fullNames = [];
for (var i = 0; i < 50; i++) {
  fullNames.push(names[Math.floor(Math.random() * names.length)]
    + " " + lastNames[Math.floor(Math.random() * lastNames.length)]);
}

// What does Function 1 do?

Praktik terbaik

Mulailah dengan komentar, data, atau kode. Agar Codex membuat penyelesaian yang berguna, akan sangat membantu jika Anda memikirkan informasi apa yang dibutuhkan oleh seorang programmer untuk melakukan suatu tugas. Informasi ini bisa berupa komentar yang jelas atau data yang diperlukan untuk menulis fungsi yang berguna, seperti nama variabel atau kelas apa yang ditangani oleh fungsi.

# Create a function called 'nameImporter' to add a first and last name to the database

Dalam contoh ini kami memberi tahu Codex apa yang harus dipanggil fungsi dan tugas apa yang akan dilakukan.

Pendekatan ini menskalakan bahkan ke titik di mana Anda dapat memberikan Codex dengan komentar dan contoh skema database untuk membuatnya menulis permintaan kueri yang berguna untuk berbagai database.

# Table albums, columns = [AlbumId, Title, ArtistId]
# Table artists, columns = [ArtistId, Name]
# Table media_types, columns = [MediaTypeId, Name]
# Table playlists, columns = [PlaylistId, Name]
# Table playlist_track, columns = [PlaylistId, TrackId]
# Table tracks, columns = [TrackId, Name, AlbumId, MediaTypeId, GenreId, Composer, Milliseconds, Bytes, UnitPrice]

# Create a query for all albums by Adele

Saat Anda memperlihatkan Codex skema database, Codex dapat membuat tebakan berdasarkan informasi tentang cara memformat kueri.

Tentukan bahasa. Codex memahami puluhan bahasa pemrograman yang berbeda. Banyak yang berbagi konvensi serupa untuk komentar, fungsi, dan sintaks pemrograman lainnya. Dengan menentukan bahasa dan versi apa dalam komentar, Codex lebih mampu memberikan penyelesaian untuk apa yang Anda inginkan. Meskipun demikian, Codex cukup fleksibel dengan gaya dan sintaks.

# R language
# Calculate the mean distance between an array of points
# Python 3
# Calculate the mean distance between an array of points

Minta Codex dengan apa yang Ingin Anda lakukan. Jika Anda ingin Codex membuat halaman web, menempatkan baris pertama kode dalam dokumen HTML (<!DOCTYPE html>) setelah komentar Anda memberi tahu Codex apa yang harus dilakukan selanjutnya. Metode yang sama berfungsi untuk membuat fungsi dari komentar (mengikuti komentar dengan baris baru yang dimulai dengan func atau def).

<!-- Create a web page with the title 'Kat Katman attorney at paw' -->
<!DOCTYPE html>

Menempatkan <!DOCTYPE html> setelah komentar kami akan membuatnya sangat jelas untuk Codex tentang apa yang ingin kita lakukan.

# Create a function to count to 100

def counter

Jika kita mulai menulis, fungsi Codex akan memahami apa yang perlu dilakukan selanjutnya.

Menentukan pustaka akan membantu Codex memahami apa yang Anda inginkan. Codex mengetahui sejumlah besar pustaka, API, dan modul. Dengan memberi tahu Codex mana yang akan digunakan, baik dari komentar atau mengimpornya ke dalam kode Anda, Codex akan membuat saran berdasarkan mereka alih-alih alternatif.

<!-- Use A-Frame version 1.2.0 to create a 3D website -->
<!-- https://aframe.io/releases/1.2.0/aframe.min.js -->

Dengan menentukan versi, Anda dapat memastikan Codex menggunakan pustaka terbaru.

Catatan

Codex dapat menyarankan pustaka dan API yang bermanfaat, tetapi selalu pastikan untuk melakukan penelitian Anda sendiri untuk memastikan bahwa pustaka dan API tersebut aman untuk aplikasi Anda.

Gaya komentar dapat memengaruhi kualitas kode. Dengan beberapa bahasa, gaya komentar dapat meningkatkan kualitas output. Misalnya, saat bekerja dengan Python, dalam beberapa kasus menggunakan string dokumen (komentar yang dibungkus dalam tanda kutip tiga) dapat memberikan hasil berkualitas lebih tinggi daripada menggunakan simbol tagar (#).

"""
Create an array of users and email addresses
"""

Tempatkan komentar di dalam fungsi dapat membantu. Standar pengodean yang direkomendasikan biasanya menyarankan untuk menempatkan deskripsi fungsi di dalam fungsi. Menggunakan format ini membantu Codex lebih memahami apa yang Anda inginkan untuk dilakukan fungsi.

def getUserBalance(id):
    """
    Look up the user in the database β€˜UserData' and return their current account balance.
    """

Berikan contoh untuk hasil yang lebih tepat. Jika Anda memiliki gaya atau format tertentu yang perlu digunakan Codex, memberikan contoh atau menunjukkannya di bagian pertama permintaan akan membantu Codex lebih akurat mencocokkan apa yang Anda butuhkan.

"""
Create a list of random animals and species
"""
animals  = [ {"name": "Chomper", "species": "Hamster"}, {"name":

Suhu yang lebih rendah memberikan hasil yang lebih tepat. Mengatur suhu API ke 0, atau mendekati nol (seperti 0,1 atau 0,2) cenderung memberikan hasil yang lebih baik dalam banyak kasus. Tidak seperti GPT-3, saat kondisi suhu yang lebih tinggi dapat memberikan hasil kreatif dan acak yang berguna, suhu yang lebih tinggi dengan Codex dapat memberi Anda respons yang sangat acak atau tidak menentu.

Dalam kasus di mana Anda memerlukan Codex untuk memberikan hasil potensial yang berbeda, mulailah dari nol dan kemudian naikkan ke atas sebesar .1 hingga Anda menemukan variasi yang sesuai.

Atur tugas menjadi fungsi. Kita dapat membuat Codex untuk menulis fungsi dengan menentukan apa yang harus dilakukan fungsi dalam istilah yang tepat mungkin dalam komentar. Dengan menulis komentar berikut, Codex membuat fungsi timer JavaScript yang dipicu saat pengguna menekan tombol:

Timer JavaScript sederhana

// Create a timer that creates an alert in 10 seconds

Kita dapat menggunakan Codex untuk melakukan tugas umum dengan pustaka terkenal seperti membuat pelanggan dengan Stripe API:

Buat pelanggan Stripe di Python

# Create a Stripe customer from an email address

Membuat contoh data. Aplikasi pengujian sering kali memerlukan penggunaan data contoh. Karena Codex juga merupakan model bahasa yang memahami cara memahami dan menulis bahasa alami, Anda dapat meminta Codex untuk membuat data seperti array nama, produk, dan variabel lainnya.

/* Create an array of weather temperatures for San Francisco */

Meminta Codex untuk melakukan tugas ini akan menghasilkan tabel seperti ini:

var weather = [
  { month: 'January', high: 58, low: 48 },
  { month: 'February', high: 61, low: 50 },
  { month: 'March', high: 64, low: 53 },
  { month: 'April', high: 67, low: 55 },
  { month: 'May', high: 70, low: 58 },
  { month: 'June', high: 73, low: 61 },
  { month: 'July', high: 76, low: 63 },
  { month: 'August', high: 77, low: 64 },
  { month: 'September', high: 76, low: 63 },
  { month: 'October', high: 73, low: 61 },
  { month: 'November', high: 68, low: 57 },
  { month: 'December', high: 64, low: 54 }
];

Fungsi campuran dan aplikasi kecil. Kita dapat memberikan Codex dengan komentar yang terdiri dari permintaan kompleks seperti membuat generator nama acak atau melakukan tugas dengan input pengguna dan Codex dapat menghasilkan sisanya asalkan ada cukup token.

/*
Create a list animals
Create a list of cities
Use the lists to generate stories about what I saw at the zoo in each city
*/

Gunakan Codex untuk menjelaskan kode. Kemampuan Codex untuk membuat dan memahami kode memungkinkan kita menggunakannya untuk melakukan tugas seperti menjelaskan apa yang dilakukan kode dalam file. Salah satu cara untuk melakukannya adalah dengan meletakkan komentar setelah fungsi yang dimulai dengan "Fungsi ini" atau "Aplikasi ini adalah". Codex biasanya akan menafsirkan komentar ini sebagai awal penjelasan dan melengkapi teks.

/* Explain what the previous function is doing: It

Menjelaskan kueri SQL. Dalam contoh ini kami menggunakan Codex untuk menjelaskan dalam format yang dapat dibaca manusia apa yang dilakukan kueri SQL.

SELECT DISTINCT department.name
FROM department
JOIN employee ON department.id = employee.department_id
JOIN salary_payments ON employee.id = salary_payments.employee_id
WHERE salary_payments.date BETWEEN '2020-06-01' AND '2020-06-30'
GROUP BY department.name
HAVING COUNT(employee.id) > 10;
-- Explanation of the above query in human readable format
--

Menulis pengujian unit. Membuat pengujian unit dapat dilakukan di Python hanya dengan menambahkan komentar "Pengujian unit" dan memulai fungsi.

# Python 3
def sum_numbers(a, b):
  return a + b

# Unit test
def

Memeriksa kode untuk kesalahan. Dengan menggunakan contoh, Anda dapat menunjukkan Codex cara mengidentifikasi kesalahan dalam kode. Dalam beberapa kasus, tidak ada contoh yang diperlukan, namun menunjukkan tingkat dan detail untuk memberikan deskripsi dapat membantu Codex memahami apa yang harus dicari dan cara menjelaskannya. (Pemeriksaan oleh Codex untuk kesalahan tidak boleh menggantikan tinjauan yang cermat oleh pengguna. )

/* Explain why the previous function doesn't work. */

Menggunakan data sumber untuk menulis fungsi database. Sama seperti programmer manusia yang akan mendapat manfaat dari memahami struktur database dan nama kolom, Codex dapat menggunakan data ini untuk membantu Anda menulis permintaan kueri yang akurat. Dalam contoh ini kita menyisipkan skema untuk database dan memberi tahu Codex untuk apa mengkueri database.

# Table albums, columns = [AlbumId, Title, ArtistId]
# Table artists, columns = [ArtistId, Name]
# Table media_types, columns = [MediaTypeId, Name]
# Table playlists, columns = [PlaylistId, Name]
# Table playlist_track, columns = [PlaylistId, TrackId]
# Table tracks, columns = [TrackId, Name, AlbumId, MediaTypeId, GenreId, Composer, Milliseconds, Bytes, UnitPrice]

# Create a query for all albums by Adele

Mengonversi antar bahasa. Anda dapat membuat Codex untuk mengonversi dari satu bahasa ke bahasa lain dengan mengikuti format sederhana di mana Anda mencantumkan bahasa kode yang ingin Anda konversi dalam komentar, diikuti dengan kode lalu komentar dengan bahasa yang Anda inginkan untuk diterjemahkan.

# Convert this from Python to R
# Python version

[ Python code ]

# End

# R version

Menulis ulang kode untuk pustaka atau kerangka kerja. Jika Anda ingin Codex membuat fungsi lebih efisien, Anda dapat memberikan kode untuk menulis ulang diikuti dengan instruksi tentang format apa yang akan digunakan.

// Rewrite this as a React component
var input = document.createElement('input');
input.setAttribute('type', 'text');
document.body.appendChild(input);
var button = document.createElement('button');
button.innerHTML = 'Say Hello';
document.body.appendChild(button);
button.onclick = function() {
  var name = input.value;
  var hello = document.createElement('div');
  hello.innerHTML = 'Hello ' + name;
  document.body.appendChild(hello);
};

// React version:

Langkah berikutnya

Pelajari selengkapnya tentang model yang mendasari yang mendukung Azure OpenAI.