Mengapa kami tidak memanggil AI langsung dari browser
Layanan AI (OpenAI, Anthropic, dan lainnya) memerlukan kunci API – kode rahasia yang mengidentifikasi kamu dan digunakan untuk penagihan. Dan inilah hasil tangkapannya:
Apa pun yang kamu masukkan ke dalam JavaScript di browser dapat dibaca oleh siapa saja (F12 → kode sumber). Jika kunci kamu ada di sana, siapa pun dapat menghubungi AI menggunakan uang kamu.
kamu sudah mengetahui solusi dari Master: server kamu sendiri. Kuncinya tetap berada di server, dan browser hanya berbicara ke server kamu:
Browser → your server (the key is here!) → AI service
Browser ← your server ← AI service
Tunjukkan pada saya: titik akhir /zeptat-se
Kami akan membangun server Express dari Master. Kami akan menyimpan kunci dalam file .env (ini tidak pernah terjadi di GitHub – tambahkan ke .gitignore!):
AI_KLIC=sk-your-secret-key-here
Dan server mendapatkan titik akhir baru:
require('dotenv').config();
const express = require('express');
const app = express();
app.use(express.json());
app.use(express.static('public'));
app.post('/zeptat-se', async (req, res) => {
const { otazka } = req.body;
const odpoved = await fetch('https://api.openai.com/v1/chat/completions', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': `Bearer ${process.env.AI_KLIC}`,
},
body: JSON.stringify({
model: 'gpt-4o-mini',
messages: [
{ role: 'system', content: 'You are a friendly helper. Answer briefly in English.' },
{ role: 'user', content: otazka },
],
}),
});
const data = await odpoved.json();
res.json({ text: data.choices[0].message.content });
});
app.listen(3000, () => console.log('Server running at http://localhost:3000'));
Apa yang baru di sini:
fetchjuga dapat mengirim data:metode: 'POST'danbody.HeaderdenganOtorisasi– di situlah kunci ditampilkan.role: 'system'– itulah perintah kamu dari pelajaran terakhir! Ini mendefinisikan bagaimana AI berperilaku.process.env.AI_KLIC– kuncinya dibaca dari.env, bukan ditulis dalam kode.
Di mana saya bisa mendapatkan kunci? Layanan AI mengeluarkan kunci API setelah pendaftaran – dan biasanya berbayar (walaupun murah, hanya sen per jawaban). Ini adalah pekerjaan orang tua: minta mereka membuatkan kunci untuk kamu dan menambahkan sedikit kredit (beberapa dolar sudah cukup). Tanpa kunci, kamu masih dapat menguji dengan respons yang dibuat-buat – lihat “Giliran kamu” di bawah.
Giliran kamu 💪
- Tambahkan baris
.envke.gitignore– periksa dengan perintahgit status(file.envtidak boleh muncul). - Buat titik akhir
/zeptat-sedengan mengikuti contoh. - Tidak punya kunci? Tidak masalah – cukup kembalikan respons tes untuk saat ini dan lanjutkan ke pelajaran berikutnya:
app.post('/zeptat-se', (req, res) => {
res.json({ text: `Test answer to: "${req.body.otazka}"` });
});
- Coba titik akhir dari browser (konsol F12):
const r = await fetch('/zeptat-se', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ otazka: 'Hi, who are you?' }),
});
console.log(await r.json());
Periksa: Server merespons POST /zeptat-se (dengan tes atau jawaban AI nyata), dan kunci rahasianya tidak ada dalam kode atau di GitHub.
Apa yang bisa diambil dari pelajaran ini
- Kunci rahasia ada di server di
.env, tidak pernah ada di browser atau di Git. fetchdapat melakukan POST – mengirimkan data dalambody, dan kunci dalamheaders.- Perintah sistem membentuk kepribadian pembantu AI kamu.
© 2026 Ing. Martin Polak / AlgoRhino · Ketentuan penggunaan konten