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
UIMessageFormat UI (parts[]: text, tool-*)
Reasoning loopLLM ↔ tool trong 1 request (stepCountIs(8))
AgenticGoal → read tools → write (không cần lệnh "ghi note")
Narrow RAGsearchLocalDocs — keyword + excerpt, không vector DB
Few-shotPDK_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

FileVai trò
components/ai-chat/AiChatPanel.tsxuseChat + load history
app/api/chat/route.tsstream + persist
lib/ai/tools.ts6 tools
lib/ai/chat-history.tsDB chat_messages
lib/docs/local-doc-rag-content.tsRAG 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