Memulai: Permintaan Pertama
Mulailah dengan mengarahkan klien ke URL dasar kami. Gunakan https://api.grockapi.com/v1 dan atur kunci API Anda di header. Pengidentifikasi model selalu uncensoredIni berfungsi dengan SDK apa pun yang kompatibel dengan OpenAI.
Autentikasi memerlukan token Bearer yang valid. Kirimkan sebagai Authorization: Bearer YOUR_API_KEY. Jika kunci hilang atau tidak valid, Anda menerima kesalahan 401 segera.
Buat panggilan pertama Anda untuk menguji konektivitas. Body permintaan harus menyertakan nama model dan array messages.
Parameter dan Mode yang Didukung
Konfigurasi perilaku generasi menggunakan parameter standar. Anda dapat menyesuaikan suhu untuk kreativitas atau top_p untuk sampling inti. Gunakan parameter stop untuk mendefinisikan urutan spesifik yang menghentikan generasi.
Atur seed untuk output deterministik selama debugging. Penalti presence dan frequency membantu mengurangi pengulangan. Model mendukung hingga 100.000 token di jendela konteks.
Output maksimal biasanya 16,000 token per permintaan. Biarkan max_tokens tidak diatur untuk menggunakan batas output default 2,048. Kesalahan dan penolakan tidak mengonsumsi kredit.
Streaming dan Penggunaan Token
Aktifkan streaming dengan mengatur stream: true. API mengembalikan chunk melalui Server-Sent Events (SSE). Setiap chunk berisi konten parsial dan metadata.
Detail penggunaan token muncul di potongan terakhir. Ini memungkinkan Anda melacak biaya secara akurat secara real-time. Potongan terakhir mencakup statistik penggunaan lengkap untuk permintaan tersebut.
Tangani penutupan stream dengan benar untuk menghindari kebocoran sumber daya. Selalu proses chunk terakhir untuk mendapatkan data penagihan yang akurat.
Pemanggilan Fungsi (Alat)
Tentukan alat dalam body permintaan Anda. Tentukan nama alat, deskripsi, dan skema parameter. Model merespons dengan panggilan alat saat sesuai.
Gunakan parameter tool_choice untuk memaksa atau mengizinkan perilaku tertentu. Anda dapat mengaturnya ke auto, required, atau ID alat spesifik.
Proses panggilan alat dalam logika aplikasi Anda. Kirimkan output alat kembali ke model untuk melanjutkan percakapan. Ini memungkinkan alur kerja multi-langkah kompleks tanpa parsing eksternal.
Mode JSON dan Batasan
Paksa output terstruktur dengan mengatur response_format menjadi json_object. Model akan mengembalikan JSON tanpa blok kode markdown.
Mode ini ideal untuk menguraikan data ke dalam aplikasi. Pastikan skema Anda jelas untuk meningkatkan akurasi. Struktur JSON yang tidak valid dapat menyebabkan kesalahan penguraian di klien Anda.
Gabungkan mode JSON dengan kontrol suhu untuk format yang konsisten. Gunakan urutan henti untuk mencegah karakter tambahan setelah kurung kurawal penutup.
Batas Laju dan Kuota
Setiap kunci API dibatasi hingga 300 permintaan per menit. Anda dapat menjalankan hingga 8 permintaan simultan secara bersamaan. Ukuran badan permintaan maksimum adalah 8 MB.
Kesalahan 429 menunjukkan bahwa Anda telah melebihi batas laju. Tunggu sebelum mencoba lagi atau kurangi konkurensi Anda. Satu kunci aktif ada per akun; menghasilkan kunci baru akan menggantikan kunci lama.
Pantau penggunaan Anda melalui chunk streaming terakhir atau header respons. Kesalahan seperti 402 (tidak ada kredit) atau 401 (kunci tidak valid) bersifat gratis dan tidak dihitung terhadap kuota Anda.
cURL
curl https://api.grockapi.com/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [{"role": "user", "content": "calculate the sum of two and three"}]
}'Python
from openai import OpenAI
client = OpenAI(base_url="https://api.grockapi.com/v1", api_key="YOUR_KEY")
resp = client.chat.completions.create(
model="uncensored",
messages=[{"role": "user", "content": "Summarise this thread without softening it."}],
)
print(resp.choices[0].message.content)Node.js
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.grockapi.com/v1", apiKey: process.env.API_KEY });
const resp = await client.chat.completions.create({
model: "uncensored",
messages: [{ role: "user", content: "Draft a villain monologue for my game." }],
});
console.log(resp.choices[0].message.content);Streaming
stream = client.chat.completions.create(
model="uncensored",
messages=[{"role": "user", "content": "Tell the story in second person."}],
stream=True,
)
for chunk in stream:
if chunk.choices and chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="", flush=True)