AI chatbot
Chat streaming terautentikasi lewat POST /api/ai/chat dan @repo/ai.
TurboJet menyertakan API chat streaming yang dibangun di atas Vercel AI SDK. Completion melewati Vercel AI Gateway dan mengembalikan stream pesan UI yang cocok untuk useChat / DefaultChatTransport.
Belum ada UI chatbot
Belum ada UI chat di apps/marketing. Package dan route API siap dipakai
client yang Anda tambahkan sendiri (dashboard, modal, atau halaman khusus).
Fitur yang bisa Anda bangun
Backend mendukung bagian yang dibutuhkan untuk pengalaman chatbot lengkap:
- Respons streaming (
createUIMessageStreamResponse) - Array pesan multi-turn (context percakapan)
modelIddan system prompt opsional lewat helper@repo/ai- Akses terautentikasi dan rate limit write pada route
Daftar sesi, riwayat tersimpan, dan UI yang dipoles adalah urusan aplikasi yang Anda tambahkan di atasnya.
Route API
Router Hono di-mount di /api/ai dari app marketing:
export const aiRouter = new Hono<AuthEnv>().post(
"/chat",
rateLimit("WRITE"),
requireAuth,
async (c) => {
if (!env.AI_GATEWAY_API_KEY) {
fail(503, "AI Gateway is not configured");
}
const body = await c.req.json<{ messages?: unknown }>();
if (!Array.isArray(body.messages)) {
fail(400, "messages must be an array");
}
return createChatUIMessageResponse({
messages: body.messages as UIMessage[],
});
},
);| Detail | Nilai |
|---|---|
| Method / path | POST /api/ai/chat |
| Auth | Wajib (requireAuth) |
| Rate limit | WRITE |
| Body | { messages: UIMessage[] } |
| Sukses | Respons stream pesan UI |
| Key gateway hilang | 503 |
| Body tidak valid | 400 — messages must be an array |
Logika streaming ada di packages/ai/src/chat.ts (createChatUIMessageResponse).
Menghubungkan client
Gunakan useChat dari AI SDK dengan transport yang mem-post ke /api/ai/chat. Cookie sesi harus dikirim agar Better Auth dapat mengautentikasi request:
"use client";
import { useChat } from "@ai-sdk/react";
import { DefaultChatTransport } from "ai";
export function AiChat() {
const { messages, sendMessage, status } = useChat({
transport: new DefaultChatTransport({
api: "/api/ai/chat",
credentials: "include",
}),
});
// Render messages dan input yang memanggil sendMessage...
}Install @ai-sdk/react di app yang menyajikan UI jika belum menjadi dependency. Lihat dokumentasi Vercel AI SDK untuk detail useChat.
Terkait
- Ringkasan AI — model dan setup gateway
- Menggunakan prompt — helper prompt yang dapat dipakai ulang
- Environment —
AI_GATEWAY_API_KEY - API — konvensi modul Hono