Jika sedang membangun aplikasi AI, Anda mungkin pernah mengalami ini: ingin menggunakan GPT untuk satu jenis tugas, Claude untuk tugas lain, dan mencoba Gemini. Ketika biaya menjadi pertimbangan, Anda juga ingin membandingkan DeepSeek.
Model yang berbeda memang unggul pada tugas yang berbeda.
Menemukan model-model ini tidak sulit. Pertanyaan sebenarnya adalah cara menghubungkan semuanya ke aplikasi Anda.
Anda mungkin perlu mengelola API key, akun, dan dasbor penagihan yang berbeda, serta terkadang menggunakan SDK yang berbeda pula.
Di API Hop, kami berupaya membuat proses ini lebih sederhana. Kami menyediakan satu platform tempat pengembang dapat mengakses beberapa model AI melalui API dan saldo bersama.
Namun, seperti apa penerapannya dalam kode? Apakah API terpadu benar-benar dapat mempermudah pengembangan?
Dalam artikel ini, kami mulai dari penyiapan nyata, menunjukkan cara beralih model, mengukur biaya dan waktu respons, serta membahas hal yang harus diperiksa sebelum diluncurkan.
1. Penyiapan nyata: beberapa model, beberapa integrasi
Misalkan kita sedang membangun aplikasi AI kecil.
Kita berencana menggunakan:
- GPT: untuk tugas umum dan respons terstruktur.
- Claude: untuk penulisan, pemrograman, dan tugas yang lebih panjang.
- Gemini: untuk tugas multimodal.
- DeepSeek: sebagai pilihan lain untuk menguji biaya dan kualitas keluaran.
Jika kita menghubungkan API resmi setiap penyedia secara terpisah, ada empat kumpulan kredensial API, halaman harga, dan metode integrasi yang harus ditangani.
Berikut perbandingan sederhana:
| Tugas | Menghubungkan setiap penyedia model secara terpisah | Menggunakan API terpadu |
|---|---|---|
| Mengelola kredensial API | Hingga 4 kunci | 1 kunci platform |
| Mengelola akun penagihan | Hingga 4 | 1 saldo platform |
| Memilih model | Konfigurasikan setiap penyedia secara terpisah | Ubah ID model jika didukung |
| Membandingkan keluaran model | Bangun alur pengujian sendiri | Gunakan ulang alur permintaan yang sama |
| Memantau biaya | Gabungkan beberapa tagihan | Lihat penggunaan di satu platform |
| Menangani perbedaan antar-model | Tetap diperlukan | Tetap diperlukan |
Baris terakhir itu penting.
Satu API tidak berarti setiap model AI berperilaku persis sama.
Model dapat berbeda dalam parameter, panjang konteks, panggilan alat, format respons, dan tipe masukan yang didukung. API terpadu dapat menyederhanakan integrasi, tetapi kita tetap perlu mengetahui kemampuan yang benar-benar didukung setiap model.
2. Mulai menggunakan API Hop
Kita hanya memerlukan tiga hal:
- Akun API Hop.
- API key API Hop.
- ID model yang saat ini tersedia.
Anda dapat memeriksa model yang didukung dan harga terkini di situs:
Untuk integrasi yang kompatibel dengan SDK OpenAI, API Hop menyediakan URL dasar ini:
https://api.apihop.ai/openai/v1
Perhatikan bahwa alamat ini berbeda dari endpoint chat HTTP umum kami:
POST https://api.apihop.ai/v1/chat-completions
Dalam contoh SDK di bawah, kita menggunakan endpoint yang kompatibel dengan OpenAI.
Langkah 1: Instal SDK
Python:
pip install --upgrade openai
Node.js:
npm install openai
Langkah 2: Atur API key Anda
Kami menyarankan menyimpan API key dalam variabel lingkungan alih-alih menuliskannya langsung dalam kode.
export APIHOP_API_KEY="your-api-key"
export APIHOP_MODEL="your-supported-model-id"
Ganti your-supported-model-id dengan ID sebenarnya dari daftar model saat ini.
Kami menyarankan menyalin ID model secara langsung alih-alih menebaknya dari nama pemasaran model. Pengenal API mungkin tidak persis sama dengan nama yang terlihat di situs resmi model.
3. Lakukan panggilan API pertama dengan Python
Berikut contoh dasar Python menggunakan SDK OpenAI.
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ["APIHOP_API_KEY"],
base_url="https://api.apihop.ai/openai/v1",
)
response = client.chat.completions.create(
model=os.environ["APIHOP_MODEL"],
messages=[
{
"role": "user",
"content": "Explain what an API is in one sentence."
}
],
)
print(response.choices[0].message.content)
Itulah penyiapan dasarnya.
Kita hanya perlu mengatur API key dan URL dasar sekali, lalu mengirim permintaan chat menggunakan model yang didukung.
Apa yang seharusnya dikembalikan?
Jika permintaan berhasil, kita mendapatkan respons yang berisi konten buatan model.
Contohnya, model dapat menjelaskan: “API adalah cara dua aplikasi perangkat lunak berkomunikasi satu sama lain.”
Susunan kata yang tepat berbeda menurut model dan permintaan.
Jika permintaan gagal, mulai dengan memeriksa:
- Apakah API key valid.
- Apakah ID model yang dipilih tersedia.
- Apakah endpoint mendukung operasi yang Anda minta.
- Apakah saldo akun cukup.
- Apakah ada parameter permintaan yang tidak didukung.
Kami tidak menyarankan mencoba ulang setiap kesalahan secara membabi buta. Kegagalan autentikasi, nama model salah, dan batas laju sementara memerlukan pendekatan berbeda.
4. Beralih antara GPT, Claude, Gemini, dan DeepSeek
Sekarang bagian yang menurut kami paling berguna: menguji model berbeda dengan perubahan kode aplikasi seminimal mungkin.
Alih-alih menulis empat integrasi API terpisah, kita dapat mulai dengan fungsi yang menerima ID model.
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ["APIHOP_API_KEY"],
base_url="https://api.apihop.ai/openai/v1",
)
def ask_model(model_id, question):
response = client.chat.completions.create(
model=model_id,
messages=[
{
"role": "user",
"content": question
}
],
)
return response.choices[0].message.content
Sekarang kita dapat memanggil fungsi yang sama dengan ID model berbeda.
question = "Explain REST APIs to a beginner."
model_ids = {
"GPT": os.environ["GPT_MODEL_ID"],
"Claude": os.environ["CLAUDE_MODEL_ID"],
"Gemini": os.environ["GEMINI_MODEL_ID"],
"DeepSeek": os.environ["DEEPSEEK_MODEL_ID"],
}
for name, model_id in model_ids.items():
print(f"\n--- {name} ---")
try:
answer = ask_model(model_id, question)
print(answer)
except Exception as error:
print(f"Request failed: {error}")
Sebelum menjalankannya, cari empat ID model yang valid dan tersedia dalam daftar model terbaru, lalu atur variabel lingkungan yang sesuai:
export GPT_MODEL_ID="supported-gpt-model-id"
export CLAUDE_MODEL_ID="supported-claude-model-id"
export GEMINI_MODEL_ID="supported-gemini-model-id"
export DEEPSEEK_MODEL_ID="supported-deepseek-model-id"
Tujuannya menggunakan ulang fungsi permintaan yang sama alih-alih menulis integrasi SDK terpisah untuk setiap keluarga model.
Satu hal yang perlu diingat: Model yang Anda pilih harus mendukung endpoint chat kompatibel OpenAI dan parameter spesifik yang dikirim. Sebagian fitur lanjutan mungkin memerlukan endpoint lain.
5. Biarkan data pengujian berbicara
Tentu saja, satu permintaan API yang berhasil hanya menunjukkan bahwa endpoint berfungsi. Itu tidak membuktikan layanan cukup cepat, andal, atau terjangkau untuk produksi.
Jadi, mari jalankan pengujian kecil untuk aplikasi kita sendiri.
Kirim prompt yang sama ke keempat model dan catat:
- Apakah permintaan berhasil.
- Lama setiap permintaan.
- Jumlah token masukan.
- Jumlah token keluaran.
- Apa yang benar-benar dikembalikan model.
Untuk putaran pertama, kita menggunakan prompt ini:
Explain how HTTPS protects data between a browser and a server. Use fewer than 100 words.
Pertanyaannya cukup sederhana, tetapi merupakan titik awal yang baik untuk memeriksa apakah format permintaan yang sama berfungsi di berbagai model.
Skrip pengujian Python
import os
import time
import json
from openai import OpenAI
client = OpenAI(
api_key=os.environ["APIHOP_API_KEY"],
base_url="https://api.apihop.ai/openai/v1",
timeout=60.0,
max_retries=0,
)
models = {
"GPT": os.environ["GPT_MODEL_ID"],
"Claude": os.environ["CLAUDE_MODEL_ID"],
"Gemini": os.environ["GEMINI_MODEL_ID"],
"DeepSeek": os.environ["DEEPSEEK_MODEL_ID"],
}
prompt = (
"Explain how HTTPS protects data between "
"a browser and a server. Use fewer than 100 words."
)
results = []
for provider, model_id in models.items():
for run in range(5):
start = time.perf_counter()
try:
response = client.chat.completions.create(
model=model_id,
messages=[
{"role": "user", "content": prompt}
],
)
elapsed = time.perf_counter() - start
usage = response.usage
results.append({
"provider": provider,
"model_id": model_id,
"run": run + 1,
"success": True,
"latency_seconds": round(elapsed, 3),
"input_tokens": (
usage.prompt_tokens if usage else None
),
"output_tokens": (
usage.completion_tokens if usage else None
),
"answer": (
response.choices[0].message.content
),
})
except Exception as error:
elapsed = time.perf_counter() - start
results.append({
"provider": provider,
"model_id": model_id,
"run": run + 1,
"success": False,
"latency_seconds": round(elapsed, 3),
"error": str(error),
})
with open("apihop-test-results.json", "w") as f:
json.dump(results, f, indent=2)
print(json.dumps(results, indent=2))
Kita mengatur max_retries=0 karena ingin melihat apakah setiap permintaan individual gagal, alih-alih membiarkan SDK menyembunyikan kesalahan dengan percobaan ulang otomatis. Ini untuk pengukuran; bukan berarti Anda harus menggunakan pengaturan yang sama dalam produksi.
Permintaan dasar hanya mengirim model dan messages, yang harus didukung seluruh model pilihan. Permintaan ini menghilangkan parameter sampling opsional seperti temperature dan top_p. Sebelum menambahkan parameter opsional untuk suatu model, periksa dukungan parameter model tersebut dan catat perubahannya. 400 akibat parameter yang tidak didukung adalah kesalahan kompatibilitas permintaan, bukan bukti kualitas keluaran model yang buruk.
Catat konteks yang cukup untuk mereproduksi pengujian
Skrip ini adalah metode evaluasi, bukan peringkat kinerja yang dipublikasikan. Ringkasan lima permintaan sebelumnya telah dihapus karena catatan permintaan yang mendasari dan tarif historis tidak tersedia untuk diverifikasi pembaca.
Untuk pengujian Anda sendiri, simpan waktu pengujian UTC, ID model yang persis, endpoint, seluruh parameter dan prompt permintaan, kolom usage mentah, respons atau kesalahan yang telah disamarkan, serta sumber dan tanggal tarif yang berlaku. Jangan pernah menyertakan API key dalam catatan. Pisahkan masukan biasa, masukan dalam cache, penulisan cache, dan keluaran sesuai aturan penagihan model alih-alih menghitung penggunaan yang sama dua kali.
Di sini, latency_seconds mengukur seluruh permintaan tanpa streaming, bukan waktu menuju token pertama. Selidiki jumlah token yang tidak terduga terhadap permintaan lengkap dan catatan penggunaan sebelum membandingkan biaya. Sertakan upaya gagal dan percobaan ulang dalam biaya tingkat tugas. Lima permintaan berhasil tidak membuktikan SLA atau peringkat kualitas seluruh platform.
6. Bandingkan biaya API menggunakan penggunaan token aktual
Salah satu alasan utama harga API AI membingungkan adalah token masukan dan keluaran biasanya memiliki harga berbeda.
Sebagian model juga menawarkan harga masukan dalam cache, yang dapat memengaruhi biaya akhir lebih lanjut.
Untuk API teks, kita biasanya mulai dengan rumus ini:
Perkiraan biaya = (token masukan x harga masukan + token keluaran x harga keluaran) / 1,000,000
Ini mengasumsikan kedua harga per juta token dan seluruh penggunaan ditagih dengan tarif standar tanpa cache.
Coba perhitungan biaya sederhana
Misalkan aplikasi kita membuat 100,000 permintaan per bulan.
Kita memperkirakan setiap permintaan menggunakan rata-rata:
- 1,000 token masukan.
- 300 token keluaran.
Hasilnya adalah penggunaan bulanan berikut:
| Metrik | Penggunaan bulanan |
|---|---|
| Permintaan | 100,000 |
| Token masukan | 100,000,000 |
| Token keluaran | 30,000,000 |
Selanjutnya, mari bandingkan dua kumpulan harga hipotetis.
| Item harga | Contoh A | Contoh B |
|---|---|---|
| Harga masukan / juta token | $2.00 | $1.00 |
| Harga keluaran / juta token | $8.00 | $4.00 |
| Biaya masukan bulanan | $200 | $100 |
| Biaya keluaran bulanan | $240 | $120 |
| Total biaya bulanan | $440 | $220 |
Dalam contoh ini, B lebih murah 50% daripada A.
Dengan penggunaan token yang sama, selisihnya $220 per bulan.
Sebelum memilih penyedia, kita memasukkan harga terbaru model ke rumus dan memeriksa biaya platform, aturan cache, biaya minimum, serta ketentuan penagihan lainnya.
Anda dapat menemukan harga model API Hop saat ini di halaman harga.
Mengapa data token aktual penting?
Model yang berbeda dapat menghasilkan jumlah token keluaran berbeda, bahkan saat menjawab pertanyaan yang sama.
Ini penting karena token keluaran sering lebih mahal daripada token masukan.
Kami menyarankan menguji model dengan prompt nyata Anda sendiri dan menggunakan data penggunaan yang dikembalikan API untuk memeriksa konsumsi jika memungkinkan.
Ada detail lain yang mudah terlewat: keluarga model berbeda dapat menggunakan tokenizer berbeda, sehingga jumlah token yang dilaporkan tidak selalu dapat dibandingkan secara langsung.
Karena itu, alih-alih sekadar bertanya “Model mana yang menggunakan lebih sedikit token?”, kami lebih memperhatikan: Berapa biaya yang benar-benar ditagihkan untuk menyelesaikan kumpulan tugas tetap yang sama?
7. Apa lagi yang diperiksa sebelum diluncurkan?
Untuk demo, mendapatkan respons dari model biasanya cukup untuk menyelesaikan langkah pertama.
Namun, menghadirkan aplikasi kepada pengguna nyata berbeda.
Kami lebih memperhatikan permintaan gagal, anggaran terlampaui, masalah keamanan, serta apakah sistem berperilaku konsisten dan dapat diprediksi.
Berikut beberapa hal yang kami sarankan diperiksa sebelum mengirim lalu lintas bisnis nyata.
Penanganan kesalahan
Kami membedakan antara:
- Masalah autentikasi, seperti API key tidak valid.
- Batas laju atau kekurangan kapasitas sementara.
- Model atau parameter permintaan yang tidak didukung.
- Batas waktu dan kesalahan jaringan.
- Kegagalan di sisi server.
Kami hanya mencoba kembali ketika upaya berikutnya berpeluang berhasil, dengan jumlah percobaan ulang terbatas dan jeda yang wajar.
Kompatibilitas model
Kami tidak menganggap setiap model mendukung setiap fitur.
Sebelum menggunakan pemanggilan alat, keluaran JSON terstruktur, masukan gambar, konteks panjang, atau respons streaming, kami memeriksa dukungan model dan endpoint yang spesifik.
Kontrol biaya
Kami menyarankan melacak biaya setiap tugas bisnis utama.
Contohnya, jika membangun alat pembuatan konten, kita harus berfokus pada “Berapa biaya rata-rata untuk membuat dokumen lengkap?”, bukan hanya harga per juta token yang tercantum.
Model murah yang memerlukan tiga percobaan ulang tambahan mungkin pada akhirnya tidak menghemat biaya.
Keamanan dan penanganan data
Kami menyimpan API key di server untuk mengurangi risiko kebocoran dan segera merotasinya jika diperlukan.
Sebelum mengirim data pelanggan ke platform API pihak ketiga, termasuk API Hop, kami juga membaca kebijakan penanganan dan retensi datanya.
API yang kompatibel tidak berarti ketentuan privasi dan komitmen layanan identik.
Keandalan
Untuk beban kerja penting, kami menyarankan menguji rencana cadangan saat terjadi kegagalan dan memeriksa apakah model cadangan dapat menangani masukan yang sama.
Peralihan cadangan hanya berguna jika model cadangan benar-benar kompatibel dengan tugasnya.
8. Kapan API terpadu masuk akal?
Menurut kami, API terpadu layak dipertimbangkan ketika:
- Anda sedang membangun SaaS AI kecil dan ingin membandingkan model.
- Anda sedang menguji GPT, Claude, Gemini, dan DeepSeek.
- Anda tidak ingin memelihara beberapa akun penagihan terpisah.
- Produk Anda berubah dengan cepat, dan Anda ingin menyederhanakan integrasi terlebih dahulu.
- Anda ingin memilih model berbeda untuk tugas berbeda berdasarkan hasil pengujian aktual.
Namun, API terpadu tidak selalu merupakan pilihan terbaik.
Menggunakan API resmi secara langsung mungkin lebih sesuai jika Anda memerlukan fitur baru yang baru dirilis penyedia model dan belum didukung gateway, memerlukan kontrak langsung dengan penyedia model, bergantung pada dukungan khusus penyedia, atau memerlukan kontrol lanjutan yang tidak disediakan API kompatibel.
Demikian pula, jika tim Anda sudah menjalankan gateway internal matang yang memenuhi kebutuhan keandalan, pemantauan, dan integrasi model, beralih platform mungkin tidak memberi banyak manfaat.
Kami lebih menginginkan pengembang membandingkan pilihan berdasarkan kebutuhan nyata, bukan hanya klaim pemasaran.
9. Pertanyaan Umum
Bisakah satu API key digunakan untuk memanggil GPT, Claude, Gemini, dan DeepSeek?
API Hop menyediakan API key dan saldo platform bersama untuk model yang didukung. Anda tetap memerlukan ID model yang persis dari daftar model saat ini dan endpoint yang sesuai serta didukung untuk setiap panggilan.
Apakah kode SDK OpenAI yang sudah ada perlu diubah untuk menggunakan API Hop?
Untuk permintaan chat kompatibel OpenAI yang didukung, Anda biasanya dapat tetap menggunakan SDK OpenAI dan hanya mengubah URL dasar, API key, serta ID model.
Namun, jika menggunakan fitur lanjutan khusus suatu penyedia, Anda mungkin tetap perlu mengubah kode.
Apakah API terpadu selalu lebih murah daripada terhubung langsung ke API resmi?
Itu bergantung pada model, penggunaan token, harga cache, biaya platform, dan beban kerja aktual.
Kami menyarankan membandingkan tagihan nyata untuk kumpulan tugas yang sama alih-alih menganggap semua gateway lebih murah.
API Hop tidak menjanjikan harga lebih rendah atau kualitas keluaran lebih baik untuk setiap model dan beban kerja. Bandingkan tarif terkini dalam kondisi penagihan yang setara, lalu evaluasi kualitas keluaran pada tugas Anda sendiri.
Bisakah model diganti secara dinamis ketika aplikasi berjalan?
Ya. Aplikasi Anda dapat memilih ID model berbeda yang didukung untuk setiap permintaan.
Namun, Anda tetap perlu menangani perbedaan parameter, respons, dan fitur model.
Apakah API Hop hanya mendukung model teks?
Tidak.
API Hop juga menawarkan layanan API gambar, video, dan sebagian data.
Layanan tersebut dapat menggunakan endpoint dan format permintaan berbeda, sehingga tidak dapat dipanggil dengan cara yang sama seperti API chat teks.
Catatan akhir
Menggunakan beberapa model AI seharusnya tidak berarti memelihara empat sistem integrasi yang sepenuhnya terpisah.
Di API Hop, tujuan kami menyederhanakan bagian yang sama: satu platform, satu saldo untuk dikelola, dan cara terpadu mengakses model yang didukung.
Namun, kami juga percaya bahwa mengukur hasil nyata adalah hal terpenting.
Sebelum memilih model atau penyedia layanan, kami menyarankan menjawab tiga pertanyaan:
- Apakah berfungsi? Uji fitur API yang benar-benar diperlukan aplikasi Anda.
- Berapa biayanya? Hitung biaya dari penggunaan aktual, bukan hanya harga iklan.
- Bagaimana kinerjanya? Gunakan prompt Anda sendiri untuk membandingkan latensi, kegagalan, dan kualitas keluaran.
Kami telah menyediakan kode dan alur pengujian sederhana di atas agar Anda dapat memeriksa sendiri dengan akun Anda.
Untuk memulai, lihat daftar model, periksa harga terbaru, dan ikuti dokumentasi API kami.
Kami ingin melihat apa yang Anda bangun dengannya.
Tim API Hop