- Tujuan: Bangun backend sederhana pakai GPT-4 API untuk jadi otak si "Jarvis".
Jarvis CLI |
---|
![]() |
Langkah:
- Setup akun OpenAI API
- Bikin server backend (Node.js atau Python FastAPI)
- Koneksi ke GPT-4 API
- Buat endpoint /ask untuk tanya jawab
- Integrasi antarmuka (Web, atau BotTelegram)
jarvis-dashboard/
├── public/
│ ├── index.html (jekyll generate)
│ └── style.css
├── server/
│ └── index.js
├── .env
└── package.json
install depensi
npm init -y
npm install express axios dotenv
.env
OPENAI_API_KEY=sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
index.js
const express = require('express');
const axios = require('axios');
require('dotenv').config();
const app = express();
app.use(express.json());
const GPT_ENDPOINT = 'https://api.openai.com/v1/chat/completions';
app.post('/ask', async (req, res) => {
const userMessage = req.body.message;
try {
const response = await axios.post(
GPT_ENDPOINT,
{
model: 'gpt-4o',
messages: [{ role: 'user', content: userMessage }],
},
{
headers: {
'Authorization': `Bearer ${process.env.OPENAI_API_KEY}`,
'Content-Type': 'application/json',
},
}
);
const reply = response.data.choices[0].message.content;
res.json({ reply });
} catch (error) {
console.error(error?.response?.data || error.message);
res.status(500).json({ error: 'Something went wrong' });
}
});
app.listen(3000, () => {
console.log('🧠 AI server berjalan di http://localhost:3000');
});
- Web dashboard (pakai Bootstrap + Jekyll)
- CLI interface (langsung ngetik di terminal)
- Telegram bot (cocok untuk mobilitas)
- Voice input (pakai Whisper atau Google STT)
const form = document.getElementById("chat-form");
const input = document.getElementById("user-input");
const chatBox = document.getElementById("chat-box");
form.addEventListener("submit", async (e) => {
e.preventDefault();
const message = input.value.trim();
if (!message) return;
appendMessage("user", message);
input.value = "";
appendMessage("jarvis", "⏳ Sedang berpikir...");
const res = await fetch("/ask", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ message }),
});
const data = await res.json();
chatBox.lastChild.remove();
appendMessage("jarvis", data.reply);
});
function appendMessage(role, text) {
const div = document.createElement("div");
div.className = role;
div.textContent = text;
chatBox.appendChild(div);
chatBox.scrollTop = chatBox.scrollHeight;
}
node server/index.js
- Tujuan: Jadikan Jarvis lebih dari sekadar ngobrol.
- Home automation (pakai MQTT + ESP32)
- Firebase/Firestore (untuk simpan & ambil data)
- Kalender Google (via OAuth2)
- Kontrol lampu/AC/TV (pakai IFTTT atau Tuya API)
- BOT TELEGRAM
- Mode suara (voice-to-text)
- Riwayat percakapan
- Login user
- Terima pesan dari kamu via Telegram
- Kirim ke GPT-4 API
- Balas langsung ke chat dengan gaya smart assistant
Telegram Chat → Bot Telegram → GPT-4 API → Balas ke Telegram
-
Node.js
-
node-telegram-bot-api
-
Install dulu
npm install node-telegram-bot-api express axios dotenv
.env
OPENAI_API_KEY=sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
TELEGRAM_BOT_TOKEN=isi_dari_BotFather
require('dotenv').config();
const TelegramBot = require('node-telegram-bot-api');
const axios = require('axios');
const bot = new TelegramBot(process.env.TELEGRAM_BOT_TOKEN, { polling: true });
const GPT_API = 'https://api.openai.com/v1/chat/completions';
bot.on('message', async (msg) => {
const chatId = msg.chat.id;
const userMessage = msg.text;
// Kirim placeholder "Jarvis sedang mikir..."
await bot.sendMessage(chatId, '🧠 Jarvis sedang memproses...');
try {
const res = await axios.post(
GPT_API,
{
model: 'gpt-4o',
messages: [{ role: 'user', content: userMessage }],
},
{
headers: {
Authorization: `Bearer ${process.env.OPENAI_API_KEY}`,
'Content-Type': 'application/json',
},
}
);
const reply = res.data.choices[0].message.content;
await bot.sendMessage(chatId, `🤖 Jarvis:\n${reply}`);
} catch (err) {
console.error(err.response?.data || err.message);
await bot.sendMessage(chatId, '⚠️ Jarvis gagal berpikir. Coba lagi ya.');
}
});
node serve/bot.js
- Buka Telegram
- Cari bot kamu (nama yang kamu kasih via @BotFather)
- Chat: "Hai Jarvis, kamu bisa bantuin nyusun ide bisnis?"
- Mode suara (voice-to-text)
- Riwayat percakapan
- Login user