Tech → AI
PDK AI Chatbot — Kiến trúc
Cập nhật 22/06/2026
- #ai
- #chatbot
- #architecture
PDK AI Chatbot — Tóm tắt (Tech Docs)
Maintainer guide đầy đủ: docs/ai-chatbot.md (glossary, luồng từng bước, debug checklist).
Stack
Next.js 15 · Vercel AI SDK 6 · Gemini (gemini-2.5-flash) · MySQL/Prisma 7
Luồng chính (1 turn)
Mount → GET /api/chat/history?limit=20 → setMessages
User gửi → POST /api/chat (SSE) { messages[] }
Server → few-shot + history → streamText + tools (max 8 steps)
Stream → UIMessage parts (text + tool-*)
onFinish → upsert user + assistant → chat_messages
Thuật ngữ nhanh
| Thuật ngữ | Ý nghĩa |
|---|---|
| UIMessage | Format UI (parts[]: text, tool-*) |
| Reasoning loop | LLM ↔ tool trong 1 request (stepCountIs(8)) |
| Agentic | Goal → read tools → write (không cần lệnh "ghi note") |
| Narrow RAG | searchLocalDocs — keyword + excerpt, không vector DB |
| Few-shot | PDK_FEW_SHOT_MESSAGES inject server, không hiện UI |
Tools (6)
Read: fetchDailyLogs · searchTechDocs (excerpt) · searchLocalDocs (RAG) · searchNotes
Write: createQuickNote · saveTechDoc
File quan trọng
| File | Vai trò |
|---|---|
components/ai-chat/AiChatPanel.tsx | useChat + load history |
app/api/chat/route.ts | stream + persist |
lib/ai/tools.ts | 6 tools |
lib/ai/chat-history.ts | DB chat_messages |
lib/docs/local-doc-rag-content.ts | RAG token budget |
Env
GEMINI_API_KEY=...
AI_MODEL=gemini-2.5-flash
Debug nhanh
- Log server:
[PDK Chat] - Lỗi UI:
lib/ai/format-chat-error.ts - F5 mất chat → kiểm tra
chat_messages+ GET/api/chat/history