Kursus
Codestral adalah model generatif mutakhir yang dioptimalkan untuk tugas pembuatan kode, termasuk fill-in-the-middle (FIM) dan pelengkapan kode. Dilatih pada lebih dari 80 bahasa pemrograman, Codestral unggul dalam bahasa yang umum maupun yang kurang umum digunakan, menjadikannya alat serbaguna bagi pengembang.
Dengan memanfaatkan API Codestral, kita dapat mengotomatisasi dan mengintegrasikan pembuatan kode ke dalam alur kerja. Dalam tutorial ini, kami akan memberikan panduan langkah demi langkah untuk menggunakan API Codestral.
Jika Anda ingin mendapatkan gambaran umum tentang Codestral, baca artikel saya Apa itu Codestral dari Mistral.
Endpoint API Codestral
Codestral menawarkan dua endpoint API utama untuk memenuhi kebutuhan pengguna yang berbeda:
- codestral.mistral.ai: Ideal untuk pengguna individual dan integrasi skala kecil. Endpoint ini saat ini gratis hingga 1 Agustus 2024, setelah itu akan menjadi layanan berlangganan bulanan.
- api.mistral.ai: Dirancang untuk kebutuhan bisnis dan permintaan tinggi, endpoint ini menawarkan batas laju yang lebih tinggi dan dukungan tangguh untuk aplikasi skala besar.
Mistral merekomendasikan endpoint codestral.mistral.ai jika Anda berniat menggunakan Codestral sebagai bagian dari plugin IDE atau jika Anda berencana membangun alat yang mengekspos endpoint langsung ke pengguna, sehingga mereka dapat menggunakan kunci API masing-masing.
Mistral merekomendasikan endpoint api.mistral.ai untuk semua kasus penggunaan lainnya karena batas lajunya yang lebih tinggi dan kesesuaiannya untuk aplikasi bisnis.
Dalam tutorial ini, kami akan menggunakan endpoint codestral.mistral.ai untuk menampilkan kapabilitas Codestral.
Mulai Menggunakan API Codestral
Mendapatkan Kunci API
Untuk menggunakan API Codestral, Anda perlu mendaftar akun Mistral AI dan mendapatkan kunci API. Ikuti langkah-langkah berikut:
Langkah 1: Daftar
Kunjungi halaman pendaftaran Mistral AI dan buat akun.
Langkah 2: Dapatkan kunci API
Untuk api.mistral.ai, buka tab API Keys dan klik Create new key untuk membuat kunci API Anda.

Untuk codestral.mistral.ai: Buka tab Codestral (yang memiliki badge “New” di bawah tab API Keys) dan ikuti petunjuk pada halaman untuk memperoleh kunci API Anda. Perlu dicatat bahwa saat ini ada daftar tunggu, dan Anda perlu memberikan nomor telepon untuk mendaftar. Setelah disetujui, Anda dapat mengakses kunci API beserta dua endpoint khusus codestral.mistral.ai pada halaman yang sama, seperti ditunjukkan di bawah:

Artikel ini menggunakan endpoint codestral.mistral.ai untuk menampilkan Codestral, sehingga semua contoh yang diberikan akan disesuaikan untuk itu.
Autentikasi
Untuk mengautentikasi permintaan API, kita akan membuat dua fungsi Python menggunakan pustaka requests. Fungsi-fungsi ini akan menangani komunikasi dengan dua endpoint API Codestral, memasukkan kunci API yang diperoleh ke dalam header permintaan untuk autentikasi. Berikut dua fungsinya:
call_chat_endpoint— untuk memanggil Chat Endpointhttps://codestral.mistral.ai/v1/chat/completions.call_fim_endpoint— untuk memanggil Completion Endpointhttps://codestral.mistral.ai/v1/fim/completions.
Berikut cara melakukannya di Python:
import requests
import json
api_key = 'INSERT YOUR API KEY HERE'
def call_chat_endpoint(data, api_key=api_key):
url = "<https://codestral.mistral.ai/v1/chat/completions>"
headers = {
"Authorization": f"Bearer {api_key}",
"Content-Type": "application/json",
"Accept": "application/json"
}
response = requests.post(url, headers=headers, data=json.dumps(data))
if response.status_code == 200:
return response.json()
else:
return f"Error: {response.status_code}, {response.text}"
def call_fim_endpoint(data, api_key=api_key):
url = "<https://codestral.mistral.ai/v1/fim/completions>"
headers = {
"Authorization": f"Bearer {api_key}",
"Content-Type": "application/json",
"Accept": "application/json"
}
response = requests.post(url, headers=headers, data=json.dumps(data))
if response.status_code == 200:
return response.json()
else:
return f"Error: {response.status_code}, {response.text}"
Memahami Endpoint API Codestral
Sekarang setelah kita mendapatkan kunci API dan menyiapkan fungsi autentikasi, mari jelajahi cara menggunakan dua endpoint API Codestral untuk pembuatan kode. Kita mulai dengan endpoint fill-in-the-middle (FIM).
Endpoint fill-in-the-middle
Endpoint fill-in-the-middle dirancang untuk menghasilkan kode yang pas di antara titik awal (prompt) yang diberikan dan titik akhir opsional (suffix). Ini sangat berguna untuk tugas yang memerlukan potongan kode spesifik di dalam struktur kode yang lebih besar.
URL Endpoint API: https://codestral.mistral.ai/v1/fim/completions
Parameter:
prompt: Titik awal kode.suffix(opsional): Titik akhir kode.stop(opsional): Urutan token untuk menghentikan generasi.
Contoh:
prompt = "def fibonacci(n: int):"
suffix = "n = int(input('Enter a number: '))\\nprint(fibonacci(n))"
data = {
"model": "codestral-latest",
"prompt": prompt,
"suffix": suffix,
"temperature": 0
}
response = call_fim_endpoint(data)

Endpoint instruct
Endpoint instruct memberikan instruksi kepada model untuk menghasilkan kode. Ini berguna untuk tugas pembuatan kode yang lebih terbuka.
URL Endpoint API: https://codestral.mistral.ai/v1/chat/completions
Parameter:
prompt: Instruksi untuk tugas pembuatan kode.temperature(opsional): Mengontrol tingkat keacakan kode yang dihasilkan.max_tokens(opsional): Membatasi panjang kode yang dihasilkan.
Contoh:
prompt = "Please write me a function that adds up two numbers"
data = {
"model": "codestral-latest",
"messages": [
{
"role": "user",
"content": prompt
}
],
"temperature": 0
}
response = call_chat_instruct_endpoint(data)

Penggunaan API Lanjutan
Batas laju
Setiap endpoint memiliki batas laju yang berbeda:
- codestral.mistral.ai: 30 permintaan per menit dan 2000 permintaan per hari.
- api.mistral.ai: 200 permintaan per detik per workspace.
Untuk memastikan operasi berjalan lancar dan menghindari pelampauan batas penggunaan, pengelolaan batas laju sangat penting. Salah satu strategi efektif adalah menerapkan logika retry, yang menjeda dan mengirim ulang permintaan setelah jeda tertentu—kita dapat menggunakan pustaka time di Python untuk menambahkan jeda ini.
Sebagai alternatif, Anda dapat melacak penggunaan API untuk memastikan tetap dalam batas yang diizinkan. Anda dapat mencatat jumlah permintaan yang dibuat dan membandingkannya dengan batas laju.
Penanganan galat
Kode galat umum meliputi:
- 401 Unauthorized: Kunci API tidak valid atau autentikasi tidak ada.
- 429 Too Many Requests: Batas laju terlampaui.
- 500 Internal Server Error: Masalah server di sisi Mistral AI.
Untuk galat 401 Unauthorized, periksa kunci API dan pastikan kunci tersebut disertakan dengan benar dalam header permintaan.
Untuk galat 429 Too Many Requests, coba terapkan logika retry untuk menunggu dan mencoba lagi setelah jeda.
Logika retry juga berguna untuk menangani 500 Internal Server Error dengan mencoba permintaan lagi nanti.
Kustomisasi keluaran
Untuk mengontrol format dan gaya keluaran, Anda dapat menyesuaikan parameter seperti prompt (membuatnya lebih spesifik atau umum) dan temperature (mengendalikan kreativitas model).
Eksperimenlah dengan parameter-parameter ini untuk menyetel keseimbangan antara kreativitas dan prediktabilitas pada kode yang dihasilkan.
Mengintegrasikan API Codestral
Codestral tidak hanya berfungsi sebagai API mandiri—kita dapat mengintegrasikannya ke dalam alur kerja pengembangan yang sudah ada. Mari jelajahi dua cara utama untuk melakukannya: melalui integrasi IDE dan editor teks atau dengan membuat skrip khusus.
IDE dan editor teks
Codestral terintegrasi mulus dengan IDE dan editor teks populer melalui plugin atau ekstensi. Misalnya, Anda dapat menyiapkan Codestral dengan Continue.dev untuk VS Code atau JetBrains:
- Instal ekstensi Continue untuk VS Code atau JetBrains.
- Pilih Mistral API sebagai penyedia dan pilih Codestral sebagai model.
- Klik Get API Key untuk mendapatkan kunci API Codestral.
- Klik Add model, yang akan otomatis mengisi config.json.
Skrip khusus
Anda dapat membangun skrip atau aplikasi khusus yang memanfaatkan API Codestral untuk tugas pembuatan kode. Berikut contoh sederhana skrip yang menghasilkan fungsi pengujian:
prompt="""Sure, here is a simple function in Python that adds up two numbers:
def add_two_numbers(num1, num2):
return num1 + num2
You can use this function like this:
result = add_two_numbers(5, 3)
print(result) # Outputs: 8
This function takes two arguments, num1 and num2, and returns their sum.\ndef test_add_two_numbers():"""
suffix=""
data = { "model": "codestral-latest", "prompt": prompt, "suffix": suffix, "temperature": 0 }
response = call_fim_endpoint(data)

Praktik Terbaik Menggunakan API Codestral
Untuk memaksimalkan Codestral, mari bahas beberapa praktik terbaik agar API digunakan secara efektif dan bertanggung jawab.
Prompt yang jelas dan ringkas
Saat menggunakan API Codestral, kejelasan adalah kunci. Pastikan prompt atau instruksi Anda terdefinisi dengan baik dan tidak ambigu untuk memperoleh keluaran kode yang diinginkan. Anda dapat mengarahkan model agar menghasilkan kode yang selaras dengan ekspektasi dengan memberikan prompt yang spesifik dan kontekstual.
Penyempurnaan iteratif
Mengoptimalkan interaksi dengan API Codestral melibatkan proses penyempurnaan iteratif. Bereksperimenlah dengan berbagai parameter, prompt, dan masukan untuk mencapai hasil yang diinginkan. Analisis keluaran kode yang dihasilkan dan gunakan temuan tersebut untuk menyesuaikan prompt Anda. Dengan terus menyempurnakan pendekatan, Anda dapat meningkatkan kualitas dan relevansi kode yang dihasilkan seiring waktu.
Penggunaan yang bertanggung jawab
Penggunaan API Codestral secara bertanggung jawab itu penting. Pastikan penggunaan API Anda selaras dengan standar etika dan hukum. Hindari menghasilkan kode yang dapat bersifat berbahaya atau merugikan. Patuhi praktik terbaik untuk pemrograman yang aman dan etis, serta hormati privasi dan hak orang lain. Menggunakan API secara bertanggung jawab berkontribusi pada lingkungan pengembangan yang positif dan berkelanjutan.
Penutup
Tutorial ini memberikan panduan praktis menggunakan API Codestral untuk pembuatan kode. Kita telah membahas berbagai endpoint, praktik terbaik, dan opsi integrasi.
Saya mendorong Anda untuk bereksperimen dengan API dan menemukan bagaimana API ini dapat meningkatkan alur kerja pengembangan Anda.
Untuk mempelajari lebih lanjut tentang Mistral, lihat tutorial Mistral 7B ini dan panduan bekerja dengan model Mistral berukuran besar ini.
Ryan adalah lead data scientist yang mengkhususkan diri dalam membangun aplikasi AI menggunakan LLM. Ia adalah kandidat PhD di bidang Pemrosesan Bahasa Alami dan Knowledge Graph di Imperial College London, tempat ia juga menyelesaikan gelar Master di Ilmu Komputer. Di luar data science, ia menulis newsletter Substack mingguan, The Limitless Playbook, di mana ia membagikan satu ide yang dapat langsung dipraktikkan dari para pemikir top dunia dan sesekali menulis tentang konsep inti AI.

