Tutorial Python OpenAI API 2026 | APIMaster.ai
Tutorial Python OpenAI API lengkap—instal SDK, buat chat completions, alirkan respons, gunakan function calling, dan bangun aplikasi async. Berfungsi dengan APIMaster.ai untuk akses diskon.
Tutorial Python OpenAI API
Tutorial ini mencakup penggunaan OpenAI API dengan Python mulai dari instalasi hingga kasus penggunaan lanjutan. Semua contoh berfungsi dengan APIMaster.ai—cukup ubah api_key dan base_url.
Instalasi
pip install openai
Memerlukan Python 3.8+. Paket openai adalah SDK resmi OpenAI untuk Python (versi 1.x).
Pengaturan Awal
from openai import OpenAI
client = OpenAI(
api_key="KUNCI_APIMASTER_ANDA",
base_url="https://apimaster.ai/v1",
)
Atau gunakan variabel lingkungan (direkomendasikan):
export OPENAI_API_KEY="KUNCI_APIMASTER_ANDA"
export OPENAI_BASE_URL="https://apimaster.ai/v1"
from openai import OpenAI
client = OpenAI() # membaca env var secara otomatis
Chat Completions Dasar
response = client.chat.completions.create(
model="gpt-5.4",
messages=[
{"role": "system", "content": "Anda adalah ahli Python."},
{"role": "user", "content": "Apa itu generator di Python?"},
],
)
print(response.choices[0].message.content)
print(f"Token terpakai: {response.usage.total_tokens}")
Respons Streaming
stream = client.chat.completions.create(
model="gpt-5.4",
messages=[{"role": "user", "content": "Tulis binary search dalam Python."}],
stream=True,
)
for chunk in stream:
delta = chunk.choices[0].delta.content
if delta:
print(delta, end="", flush=True)
print()
Percakapan Multi-Putaran
messages = [
{"role": "system", "content": "Anda adalah asisten coding yang membantu."}
]
def kirim(teks_pengguna):
messages.append({"role": "user", "content": teks_pengguna})
resp = client.chat.completions.create(model="gpt-5.4", messages=messages)
balasan = resp.choices[0].message.content
messages.append({"role": "assistant", "content": balasan})
return balasan
print(kirim("Jelaskan list comprehension."))
print(kirim("Berikan contoh yang lebih sulit."))
Output Terstruktur (Mode JSON)
Paksa model mengembalikan JSON yang valid:
import json
response = client.chat.completions.create(
model="gpt-5.4",
messages=[
{
"role": "user",
"content": "Ekstrak nama, email, dan perusahaan dari: 'Hubungi Jane Smith (jane@acme.com) di Acme Corp.'",
}
],
response_format={"type": "json_object"},
)
data = json.loads(response.choices[0].message.content)
print(data) # {"name": "Jane Smith", "email": "jane@acme.com", "company": "Acme Corp"}
Function Calling (Penggunaan Alat)
import json
tools = [
{
"type": "function",
"function": {
"name": "ambil_harga_saham",
"description": "Ambil harga saham terkini untuk simbol ticker",
"parameters": {
"type": "object",
"properties": {
"ticker": {"type": "string", "description": "Simbol saham, misal AAPL"},
},
"required": ["ticker"],
},
},
}
]
messages = [{"role": "user", "content": "Berapa harga saham Apple saat ini?"}]
response = client.chat.completions.create(
model="gpt-5.4",
messages=messages,
tools=tools,
tool_choice="auto",
)
# Proses panggilan alat
if response.choices[0].finish_reason == "tool_calls":
tool_call = response.choices[0].message.tool_calls[0]
args = json.loads(tool_call.function.arguments)
print(f"Memanggil {tool_call.function.name} dengan {args}")
# Simulasikan hasil fungsi
result = {"ticker": args["ticker"], "price": 189.50}
# Kirim hasil kembali
messages.append(response.choices[0].message)
messages.append({
"role": "tool",
"tool_call_id": tool_call.id,
"content": json.dumps(result),
})
final = client.chat.completions.create(model="gpt-5.4", messages=messages)
print(final.choices[0].message.content)
Embeddings
response = client.embeddings.create(
model="text-embedding-3-small",
input=["Tutorial Python OpenAI API", "Dasar-dasar machine learning"],
)
embeddings = [item.embedding for item in response.data]
print(f"Dimensi embedding: {len(embeddings[0])}")
Penggunaan Async
import asyncio
from openai import AsyncOpenAI
client = AsyncOpenAI(
api_key="KUNCI_APIMASTER_ANDA",
base_url="https://apimaster.ai/v1",
)
async def generate(prompt: str) -> str:
resp = await client.chat.completions.create(
model="gpt-5.4",
messages=[{"role": "user", "content": prompt}],
)
return resp.choices[0].message.content
async def main():
# Jalankan 5 permintaan secara bersamaan
prompts = [f"Jelaskan konsep #{i}" for i in range(5)]
results = await asyncio.gather(*[generate(p) for p in prompts])
for r in results:
print(r[:100])
asyncio.run(main())
Penanganan Error
from openai import OpenAI, AuthenticationError, RateLimitError, APIError
import time
def panggil_aman(client, **kwargs):
for percobaan in range(3):
try:
return client.chat.completions.create(**kwargs)
except AuthenticationError:
raise # Jangan ulangi error otentikasi
except RateLimitError:
time.sleep(2 ** percobaan)
except APIError as e:
if e.status_code >= 500:
time.sleep(1)
else:
raise
raise RuntimeError("Percobaan maksimum terlampaui")
Panduan Pemilihan Model
| Tugas | Model | Alasan |
|---|---|---|
| Rangkuman, klasifikasi | gpt-4o-mini | Biaya rendah |
| Coding umum, menulis | gpt-5.4 | Keseimbangan terbaik |
| Penalaran kompleks | gpt-5.5 atau o3 | Kemampuan tinggi |
| Pemrosesan batch | gpt-4o-mini atau gpt-5.4 | Pilih berdasarkan kualitas dan anggaran |
Pertanyaan yang Sering Diajukan
Bagaimana cara menginstal pustaka Python OpenAI?
Jalankan pip install openai. Untuk akses APIMaster, tidak diperlukan paket tambahan—cukup setel base_url dan api_key saat menginisialisasi klien.
Versi Python apa yang diperlukan untuk pustaka OpenAI? Python 3.8 atau lebih baru. Klien async memerlukan Python 3.10+ untuk kompatibilitas terbaik.
Bagaimana cara menangani batas kecepatan OpenAI API di Python?
Gunakan exponential backoff—tangkap RateLimitError dan coba ulang dengan penundaan yang meningkat. Pustaka tenacity menyederhanakan ini. Routing APIMaster memberikan stabilitas tambahan.
Bisakah saya menggunakan pustaka Python OpenAI dengan model Claude?
Ya—melalui APIMaster. Setel base_url="https://apimaster.ai/v1" dan gunakan ID model seperti claude-sonnet-4-6. Format respons identik dengan respons GPT.
Bagaimana cara menggunakan panggilan async OpenAI di Python?
Gunakan AsyncOpenAI alih-alih OpenAI, dan await panggilan API. Lihat contoh async dalam panduan di atas.