Referensi desain teknik

Rancang saluran penukaran wajah produksi dari ujung ke ujung

Ubah permintaan pembuatan media menjadi tugas yang dimiliki, dapat diamati, dan diselesaikan dengan benar. Referensi ini memisahkan kontrak DeepSwapAI API saat ini dari arsitektur dan keputusan biaya total yang harus dibuat oleh integrasi Anda.

Oleh Tim Produk DeepSwapAIDiperbarui 27 Juli 2026Panduan desain teknis

Referensi kontrak publik, bukan diagram infrastruktur pribadi

Ini adalah referensi desain kontrak publik, bukan diagram infrastruktur pribadi DeepSwapAI. Ini membedakan perilaku yang diverifikasi dalam API publik dari kontrol integrasi yang direkomendasikan. Ini tidak mengungkapkan topologi penyedia, teknologi antrean, penempatan model, jumlah pekerja, desain jaringan internal, throughput, latensi, SLA, akurasi, atau tolok ukur kualitas visual.

Gunakan untuk memutuskan di mana kepemilikan, validasi, status tugas, percobaan ulang, penyelesaian, pengiriman, penghapusan, dan bukti harus berada dalam integrasi Anda sendiri. Untuk bidang dan respons multipart yang tepat, gunakan Dokumentasi API dan kontrak OpenAPI 3.1. Untuk konsep riset di dalam lokalisasi wajah, transfer identitas, sintesis, pencampuran, dan konsistensi video, baca cara kerja penukaran wajah AI.

Lima alur kerja asinkron berbagi satu bentuk kontrol

Setiap alur kerja pembuatan saat ini mengautentikasi dengan kunci API Bearer, menerima media multipart, mengembalikan taskId, dan mengekspos status terbatas pemilik melalui GET pada rute yang sama. Penyelesaian menggunakan polling; panggilan balik webhook dan SDK bahasa resmi saat ini tidak dipublikasikan.

Alur kerjaPOST dan polling GETUnit biayaBatas utama
Foto/api/ai-tasks6 kredit per tugas30 MB per gambar
Foto batch/api/ai-tasks/batch-face-swap6 kredit per keluaran20 gambar, 95 MB gabungan
Foto grup yang dipetakan/api/ai-tasks/multi-face-swap6 kredit per wajah pengganti10 wajah yang dipetakan, 95 MB gabungan
Video/api/ai-tasks/videoHanya wajah dengan pelestarian latar: 3/dtk, minimal 12 di 1080p600 detik, unggahan gabungan 95 MB
GIF / klip pendek/api/ai-tasks/gif3 kredit per detik, minimal 1230 detik, target 95 MB

Ruang kerja langsung dan dokumentasi API tetap menjadi acuan untuk format yang tepat, biaya minimum, dan kolom permintaan. Tugas akun dan API memerlukan email terverifikasi, hanya satu pembuatan yang dapat aktif per akun, dan batas yang habis dapat mengembalikan HTTP 429 dengan informasi coba lagi.

Berikan setiap keputusan yang tidak dapat diubah satu pemilik

01

Ingress dan identitas

Akhiri TLS, autentikasi kunci yang dipegang server, tetapkan ID korelasi permintaan, dan ikat setiap tugas ke satu akun.

02

Kebijakan dan validasi

Periksa status izin, bidang alur kerja, jenis media yang terdeteksi, ukuran byte, jumlah, durasi, pemetaan, kesiapan akun, dan ketersediaan kredit.

03

Buku besar tugas

Pertahankan taskId, pemilik, alur kerja, biaya yang diharapkan, transisi status, stempel waktu, dan hasil penyelesaian sebelum mengembalikan kendali.

04

Pemrosesan terbatas

Pisahkan penerimaan permintaan dari pembuatan, batasi pekerjaan aktif, dan bedakan kegagalan transportasi yang dapat dicoba ulang dari masukan yang tidak valid.

05

Penyelesaian

Gunakan satu otoritas atom untuk keputusan cadangan, penyelesaian, dan pengembalian dana tugas yang gagal sehingga percobaan ulang tidak dapat mengenakan biaya atau mengembalikan dana dua kali.

06

Pengiriman dan penghapusan

Otorisasi akses hasil oleh pemilik tugas, terapkan hak ekspor gambar, dan hapus media pada jadwal 24 jam yang didokumentasikan.

Hapus dari kontrak permintaan hingga penghapusan yang didukung bukti

  1. Bekukan kontrak permintaan publik. Pilih alur kerja yang tepat dan catat bidang, batas media, unit biaya, dan status terminal.
  2. Atur gerbang otorisasi, persetujuan, dan kesiapan akun. Jaga kunci API di sisi server dan minta keputusan izin sebelum menerima media.
  3. Validasi media dan hitung biaya sebelum mengantrekan. Periksa jenis yang terdeteksi, ukuran, jumlah, durasi, pemetaan, dan kredit yang tersedia sebelum pekerjaan mahal.
  4. Buat satu catatan tugas yang tahan lama. Pertahankan kepemilikan, alur kerja, biaya yang diharapkan, referensi masukan, status, dan taskId.
  5. Proses secara asinkron di belakang antrean terbatas. Batasi konkurensi dan klasifikasikan kegagalan sementara versus permanen.
  6. Selesaikan kredit tepat satu kali. Komit pekerjaan yang selesai dan terapkan jalur pengembalian dana pemrosesan yang gagal yang didokumentasikan tanpa penyelesaian ganda.
  7. Ekspos status dan akses hasil terbatas pemilik. Polling pada interval yang diukur dan berhenti pada COMPLETED, FAILED, atau CANCELLED.
  8. Terapkan penghapusan dan pertahankan bukti operasional. Hapus media sesuai jadwal sambil mempertahankan hanya catatan tugas, penagihan, keamanan, dan dukungan minimum yang diizinkan.

Jaga status pemrosesan tetap terpisah dari status uang

PENDINGPROCESSINGCOMPLETEDatau GAGAL / DIBATALKAN
PeristiwaCatatan tugasTindakan kreditTindakan klien
Permintaan ditolak sebelum pembuatan tugasTidak ada tugas yang diterimaJangan menyimpulkan biayaPerbaiki permintaan atau status akun
Tugas diterimaPertahankan taskId dan biaya yang diharapkanPerlakukan penyelesaian sebagai milik serverMulai polling yang diukur
Tugas selesaiHasil terminalPekerjaan yang selesai tetap diselesaikanOtorisasi pengambilan hasil
Pemrosesan gagalKegagalan terminalKontrak saat ini mengembalikan dana pemrosesan yang gagal secara otomatisBaca kegagalan sebelum memutuskan untuk mengirim ulang
Hasil respons tidak pastiRekonsiliasi sebelum POST lainJangan pernah menebak dari waktu tungguGunakan taskId yang disimpan atau riwayat akun

Tidak ada bidang idempotency-key yang didokumentasikan dalam kontrak publik. Layanan pemanggil harus menonaktifkan pengiriman duplikat, pertahankan taskId pertama, dan rekonsiliasi respons jaringan yang tidak pasti sebelum mengeluarkan POST lain.

Coba ulang hanya ketika kelas kegagalan mengizinkannya

StatusKelas kegagalanRespons arsitektur
400Permintaan atau media tidak validTolak secara permanen hingga kolom atau media berubah.
401 / 403Kunci atau kesiapan akunPutar kunci atau selesaikan verifikasi; jangan melakukan perulangan.
402Kredit tidak mencukupiTambahkan kredit dan kirimkan tugas baru hanya setelah konfirmasi.
404Pemilik, rute, atau taskId salahRekonsiliasi identitas dan metadata tugas yang tersimpan.
429Batas tarif atau generasi aktifHormati Retry-After jika disediakan, tambahkan jitter, dan batasi jumlah percobaan ulang.
500Penerimaan sementara atau kegagalan bacaGunakan exponential backoff terbatas dan rekonsiliasi sebelum pengiriman duplikat.

Lacak keputusan kontrol tanpa menyalin media sensitif ke dalam log

Telemetri tugas yang direkomendasikan mencakup ID korelasi, taskId, pengenal akun, alur kerja, fakta media yang telah dibersihkan, jumlah kredit yang diharapkan, transisi status, jumlah percobaan ulang, kelas kesalahan, peristiwa penyelesaian, dan stempel waktu penghapusan. Jangan mencatat kunci API, gambar wajah, nama file unggahan lengkap, URL hasil yang ditandatangani, atau badan multipart. Rekomendasi Konteks Jejak W3C mendefinisikan konteks permintaan yang dapat dioperasikan; ini adalah opsi desain, bukan klaim tentang implementasi pribadi DeepSwapAI.

Untuk pertahanan unggahan, validasi nama file yang didekodekan, konten yang terdeteksi, format yang diizinkan, jumlah, dan ukuran; jangan percaya pada Content-Type yang disediakan browser saja. OWASP File Upload Cheat Sheet adalah referensi keamanan eksternal. Gunakan perencana persetujuan dan pengungkapan untuk gerbang otorisasi manusia dan Pusat Kepercayaan untuk batasan layanan publik saat ini.

Bandingkan yang dikelola, dihosting sendiri, dan hibrida pada beban kerja terukur yang sama

Jangan membandingkan biaya API dengan sewa GPU mentah saja. Tetapkan satu jendela beban kerja terlebih dahulu: campuran alur kerja, durasi dan resolusi media, konkurensi puncak, tingkat percobaan ulang, retensi, volume peninjauan, dan ketersediaan yang diperlukan. Kemudian tetapkan setiap biaya berulang dan terkait kegagalan ke jendela yang sama.

Dimensi biayaAPI yang DikelolaDihosting sendiriHibridaBukti yang harus dikumpulkan
Kapasitas pemrosesanBiaya tugas atau durasi yang dipublikasikanSewa atau pembelian GPU, kapasitas menganggur, penskalaan, dan runtime modelGaris dasar internal plus luapan eksternal atau pemrosesan spesialisUnit selesai, durasi, resolusi, konkurensi, dan pemanfaatan
Teknik dan operasiIntegrasi, persistensi tugas, polling, peninjauan, dan penanganan perubahan vendorPenyajian model, antrian, peningkatan, perencanaan kapasitas, penerapan, dan respons panggilanOrkestrasi, abstraksi penyedia, dan kepemilikan platform internalJam insinyur terukur, irama rilis, dan beban panggilan
Keamanan dan tata kelolaGerbang persetujuan aplikasi, kebijakan akun, peninjauan, dan buktiSemua moderasi, penyimpanan, penghapusan, kontrol akses, dan kontrol auditKontrol bersama dengan pemilik eksplisit untuk setiap keputusanMenit peninjauan, tingkat eskalasi, ruang lingkup retensi, dan pemilik kontrol
Penyimpanan dan pengirimanPenanganan input, hasil, dan jaringan sisi aplikasiInput, perantara, hasil, cadangan, egress, dan operasi penghapusanCatatan internal plus transfer penyedia terbatasByte yang disimpan, volume transfer, waktu retensi, dan pekerjaan penghapusan
Kegagalan dan keandalanPercobaan ulang, rekonsiliasi, penanganan pemadaman penyedia, dan biaya peralihanRedundansi, respons insiden, pekerjaan gagal, pemulihan, dan kapasitas tidak terpakaiKegagalan ketergantungan dan kegagalan orkestrasi internalTingkat kegagalan, waktu pemulihan, pekerjaan duplikat, dan beban dukungan
Rumus TCO yang sebanding: pemrosesan variabel + kapasitas cadangan + teknik dan operasi + keamanan dan tata kelola + penyimpanan dan pengiriman + kegagalan dan keandalan. Gunakan kalkulator biaya alur kerja saat ini untuk sisi pemrosesan DeepSwapAI yang dipublikasikan, dan gunakan tenaga kerja terukur, kutipan infrastruktur, dan data insiden untuk bagian yang dimiliki tim Anda.

Kerangka kerja ini tidak menerbitkan tolok ukur harga yang dihosting sendiri dan tidak mengklaim bahwa yang dikelola, dihosting sendiri, atau hibrida secara universal lebih murah. Keputusan tergantung pada beban kerja dan kontrol yang dapat dibuktikan untuk periode yang sama.

Pilih yang dikelola, dihosting sendiri, atau hibrida berdasarkan kontrol yang harus Anda miliki

ModelAnda memilikiKetergantungan eksternalPaling cocok
API yang DikelolaGerbang persetujuan, UX aplikasi, persistensi tugas, polling, peninjauan, dan kebijakan bisnisAPI yang dipublikasikan, batasan, harga, dan perilaku pemrosesanTim yang memprioritaskan kecepatan integrasi di atas kontrol infrastruktur
Dihosting sendiriModel, kapasitas GPU, antrian, moderasi, penyimpanan, keamanan, penyelesaian, penghapusan, dan respons insidenRantai pasokan model dan infrastrukturTim dengan persyaratan kontrol atau penerapan yang dibenarkan dan kapasitas operasi
HibridaKebijakan internal, orkestrasi, catatan audit, peninjauan, dan abstraksi penyediaSatu atau lebih layanan generasi terbatasTim yang membutuhkan kontrol tingkat aplikasi tanpa mengoperasikan setiap komponen model
Batas keputusan: matriks ini membandingkan tanggung jawab, bukan kualitas keluaran. Ini tidak menetapkan bahwa satu model penerapan lebih cepat, lebih aman, lebih murah, atau lebih akurat.

Fakta produk saat ini ditambah standar eksternal utama

Tim Produk DeepSwapAI memeriksa lima rute publik, autentikasi Bearer, permintaan multipart, status tugas, alur polling, respons kesalahan, batas konkurensi, penyelesaian kredit, hak gambar uji coba, dan penghapusan media 24 jam pada 22 Juli 2026. Kontrol yang direkomendasikan didasarkan pada Spesifikasi OpenAPI 3.1.2, panduan unggahan OWASP, NIST AI RMF 1.0, dan Konteks Jejak W3C. Lihat metodologi verifikasi klaim untuk bagaimana pernyataan produk saat ini dipisahkan dari panduan desain umum.

Ketahui apa yang ditetapkan dan tidak ditetapkan oleh kontrak publik

Apakah ini arsitektur produksi pribadi DeepSwapAI?

Tidak. Ini adalah referensi desain kontrak publik dan tidak mengungkapkan topologi penyedia, teknologi antrian, penempatan model, jumlah pekerja, jaringan internal, atau target tingkat layanan.

Bagaimana klien mengetahui bahwa suatu tugas selesai?

Simpan taskId yang dikembalikan oleh POST dan polling GET pada rute alur kerja yang sama hingga COMPLETED, FAILED, atau CANCELLED. Panggilan balik webhook saat ini tidak dipublikasikan.

Dapatkah kunci API ditempatkan dalam kode klien?

Tidak. Perlakukan sebagai rahasia sisi server dan jangan simpan di bundel browser, biner seluler, repositori, analitik, log, dan pesan dukungan.

Apakah API menerbitkan kunci idempotensi?

Tidak ada bidang kunci idempotensi yang didokumentasikan. Cegah pengiriman duplikat, pertahankan taskId pertama, dan rekonsiliasi respons yang tidak pasti sebelum POST lain.

Apakah desain ini menjamin throughput atau kualitas?

Tidak. Ini bukan tolok ukur, SLA, skor akurasi, atau jaminan kualitas.

Terapkan terhadap kontrak yang terverifikasi

Gunakan referensi titik akhir yang tepat dan file OpenAPI ketika Anda siap untuk mengubah model kontrol ini menjadi integrasi sisi server.

Buka dokumentasi API