Quy trình Zalo Agent -> NotebookLM: từ tin nhắn Zalo tới infographic, audio, video, slide
Chủ bot nhắn trên Zalo, bot nạp tài liệu vào một sổ tay NotebookLM riêng cho cuộc chat, tạo nội dung Studio chạy nền rồi tự tải file về gửi lại. Mọi bước đi qua máy chủ NotebookLM (Docker, Chrome headless) trên chính VPS.
Bạn đưa
Bot làm
Trả về
Chốt chặn (do mã kiểm, không nhờ AI)
Chủ bot nhắn cho agent trên Zalo, ví dụ: "Tạo infographic từ file này" hoặc "Làm podcast tóm tắt tài liệu"
BƯỚC 1
Yêu cầu được nhận và qua cổng kiểm quyền
tức thì
Bạn đưaCâu lệnh rõ việc muốn làm: nạp nguồn, hỏi, tạo, lấy lại, xem danh sách File, link web hoặc link YouTube đính kèm cùng lượt (nếu có)
Bot làmModel chọn hành động của tool notebooklm: them_nguon / hoi / tao / lay / danh_sach Đọc lại cấu hình NOTEBOOKLM_API_URL và trần ngày từ dashboard
Chốt chặnCửa 1: tool không vào schema khi chưa cấu hình máy chủ, hoặc người nhắn không phải chủ bot (trừ khi bật NOTEBOOKLM_PUBLIC) Trong nhóm chỉ chạy ở lượt mà MỌI tin đều của chủ bot Cửa 2: execute đọc lại DB và kiểm lần nữa Trần NOTEBOOKLM_MAX_PER_DAY mỗi cuộc chat (mặc định 5)
Nhắn thử: Tạo infographic tóm tắt file PDF này giúp anh
BƯỚC 2
Mỗi cuộc chat có một sổ tay riêng
lần đầu khoảng 5-10 giây
Bot làmTra bảng notebooklm_notebooks theo tài khoản + cuộc chat Chưa có thì POST /notebooks/create, lưu notebook_id và notebook_url Mọi lời gọi sau đều gửi kèm notebook_url (PUT /activate của máy chủ không dùng được)
Trả vềnotebook_url của sổ tay
Chốt chặnMọi lời gọi tới máy chủ NotebookLM đi qua hàng đợi tuần tự (máy chủ chỉ có một Chrome)
BƯỚC 3
Tài liệu được nạp vào sổ tay
vài giây tới 1 phút mỗi nguồn
Bạn đưaChữ dán thẳng, link web, link YouTube Hoặc file PDF/Word/Excel/PowerPoint/ảnh gửi trong cùng lượt
Bot làmChữ, link, YouTube: POST /content/sources đúng loại nguồn FILE: bot tự trích chữ (extractDocumentText), ảnh mô tả bằng mắt thuê (describeImage) rồi nạp dạng text Giữ tên file làm tiêu đề nguồn
Trả vềDanh sách nguồn đã nạp + nguồn lỗi kèm lý do
Chốt chặnTối đa 5 tệp mỗi lượt, cắt 400.000 ký tự mỗi nguồn Đường tải file gốc của máy chủ bị hỏng nên KHÔNG dùng; tệp không trích được chữ báo rõ, không im lặng
Nhắn thử: Nạp 3 file này vào sổ tay rồi tóm tắt cho anh
BƯỚC 4
Hỏi đáp hoặc tạo nội dung Studio chạy nền
hỏi 10-30 giây; infographic ~90 giây, audio ~5 phút, video ~10 phút
Bạn đưaCâu hỏi về tài liệu, hoặc loại nội dung muốn tạo: infographic, audio, video, slide, bảng, báo cáo
Bot làmhoi: POST /ask, trả lời kèm trích dẫn nguồn (sources.citations) tao: trả lời ngay "đang làm", xếp hàng rồi POST /content/generate (chặn tới khi xong) So danh sách Studio TRƯỚC và SAU để nhận ra đúng nội dung mới tạo
Trả vềCâu trả lời có trích dẫn Nội dung mới trên Studio của sổ tay
Chốt chặnCâu trả lời bọc wrapUntrustedContent (nội dung ngoài, không phải lệnh) Cả bot một việc tạo mỗi lúc; việc hỏng được hoàn lượt trong ngày
Nhắn thử: Làm podcast 2 người bàn về tài liệu này
BƯỚC 5
File được tải về bằng phiên Google sống
vài giây, chờ thêm nếu link chưa sẵn
Bot làmGET /content lấy mediaUrl của nội dung mới Đọc cookie SỐNG từ hồ sơ Chrome của container (giải mã Cookies SQLite v10), không dùng state.json đã cũ Audio M4A đổi sang MP3 bằng ffmpeg; slide/bảng không có file thì gửi link Google Slides/Sheets; báo cáo chữ ghi ra .md
Trả vềPNG infographic MP3 audio MP4 video Link Slides/Sheets Báo cáo .md
Chốt chặnLink trả 404/5xx thì thử lại tối đa 6 lần cách 20 giây; trả HTML là phiên hết hạn, dừng và báo Chỉ tải từ host Google qua https
BƯỚC 6
Kết quả về Zalo, ghi vào lịch sử, có thể xin lại
tức thì
Bot làmGửi file vào đúng cuộc chat (deliverFile), ghi thẳng vào lịch sử vì lượt chat đã đóng Hỏng thì nhắn một câu ngắn nêu đúng lý do, không im lặng lay: gửi lại nội dung mới nhất cùng loại đã có, không trừ trần ngày
Trả vềTin Zalo kèm file Dòng lịch sử để bot nhớ ở lượt sau
Chốt chặnGiám sát mỗi 5 phút: máy chủ không phản hồi, mất đăng nhập Google, không đọc được cookie -> hiện ở Việc cần làm trên app điện thoại + Nhật ký
Nhắn thử: Gửi lại file audio vừa tạo
Cùng sổ tay, hỏi tiếp hoặc tạo thêm loại nội dung khác mà không phải nạp lại tài liệuSổ tay gắn với cuộc chat nên lượt sau vẫn dùng đúng nguồn đã nạp
Nguyên tắc xuyên suốt Không chính thức Máy chủ NotebookLM điều khiển Chrome bằng phiên Google thật. Dùng tài khoản Google riêng, không dùng tài khoản chính.
Mặc định chỉ chủ bot Người lạ không thấy tool. Mở cho mọi người là quyết định tường minh qua NOTEBOOKLM_PUBLIC.
Chỉ mở trong máy REST của máy chủ không có xác thực nên cổng 3000 chỉ nghe 127.0.0.1; noVNC 6080 chỉ trên IP Tailscale để đăng nhập Google.
Đo thật, không tin tài liệu Hình dạng phản hồi, nút tải xuống, nạp file đều lệch tài liệu của repo gốc; bot chỉ dùng đường đã chạy được.
Không nuốt câm Nguồn lỗi, link hết hạn, phiên mất đều có câu báo riêng; việc dở dang được nhắn lại.
Nền tảng dùng chung roomi-fields/notebooklm-mcpDocker, REST 127.0.0.1:3000 Chrome headless + noVNCđăng nhập Google một lần extractDocumentTexttrích chữ PDF/Word/Excel/PPT describeImagemô tả ảnh (Providers > Vision) ffmpegM4A -> MP3 Hàng đợi tuần tự + trần ngàynotebooklm-queue Giám sát 5 phútnotebooklm-health -> Việc cần làm