APIMaster.ai

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.

Dapatkan akses OpenAI API melalui APIMaster →