Xây Dựng Hệ Thống Prompt Động Cho AI SaaS Với Next.js Và Vercel AI SDK
<toc />
Mở Đầu
<callout>
Trong quá trình phát triển **TaxJoy** — trợ lý thuế năng lực AI dành cho các kế toán viên chứng nhận (CPA) — chúng tôi nhận ra rằng việc thiết kế prompt không hề đơn giản như dự đoán ban đầu.
</callout>
Khi dự án bắt đầu, với các tính năng đơn giản, một prompt tĩnh cho hệ thống AI có vẻ đủ dùng. Tuy nhiên, khi mở rộng với nhiều loại người dùng khác nhau (CPA và khách hàng của họ), các quy trình đa dạng (điền form, tóm tắt tài liệu thuế, kiểm tra kiểm toán) cũng như nhiều tông giọng truyền tải (chuyên nghiệp, thân thiện, động viên), prompt tĩnh trở thành nút thắt cổ chai. Điều này buộc chúng tôi phải tái cấu trúc lại toàn bộ cách thiết kế prompt theo hướng <mark>động và có thể mở rộng</mark>. Bài viết này sẽ chia sẻ chi tiết cách chúng tôi xây dựng và triển khai một hệ thống prompt engine động, giúp tối ưu trải nghiệm AI cho mọi ngữ cảnh sử dụng.
Vấn Đề: Prompt Tĩnh Không Thể Mở Rộng
Trong các phiên bản đầu, hệ thống AI sử dụng một prompt hệ thống cứng nhắc, định sẵn. Dù hoạt động tốt trong giai đoạn đầu, nhưng khi:
- CPA cần câu trả lời <u>chính xác, kỹ thuật</u>.
- Khách hàng cần <u>hướng dẫn đơn giản, thân thiện</u>.
- Các biểu mẫu cần các prompt chỉ đạo rõ ràng như “Yêu cầu W-2, người phụ thuộc, 1099”.
- Yêu cầu tóm tắt tài liệu cần kết quả có cấu trúc và phân tích.
Thì một prompt duy nhất toàn diện trở nên quá phức tạp và dễ gây lỗi khi chỉnh sửa. Mỗi thay đổi nhỏ đều có thể phá vỡ toàn bộ hệ thống.
<callout>Điều quan trọng: Một prompt tĩnh duy nhất không đủ linh hoạt cho các kịch bản đa dạng và dễ gây rối trong bảo trì.</callout>
Giải Pháp: Prompt Động Với Phương Pháp Injection
Chúng tôi quyết định xây dựng một Prompt Engine tập trung trong TaxJoy, cho phép tạo ra prompt hệ thống <mark>động theo vai trò, ngữ cảnh và tông giọng</mark>:
- Vai trò người dùng: CPA hoặc Khách hàng
- Ý định hiện tại: Trao đổi, điền form, tóm tắt, kiểm tra
- Tông giọng: Thân thiện, chuyên nghiệp, động viên (tùy chọn)
Mỗi lời gọi AI đều được tiêm vào một prompt hệ thống mới, được tạo ra dựa trên tham số đã chọn nhằm kiểm soát hành vi AI một cách chính xác và linh hoạt.
<callout>
Từ các <mark>đầu vào đơn giản</mark>, hệ thống tạo ra <mark>hành vi AI có thể mở rộng và dễ bảo trì</mark>.
</callout>
Tổng Quan Kiến Trúc Hệ Thống
Cấu trúc thư mục chính
Luồng xử lý chính
- Người dùng (CPA hoặc Khách hàng) tương tác với trợ lý AI.
- Frontend gửi thông tin
role
(vai trò), intent
(ý định), và tone
(tông giọng) đến backend qua API /api/chat/route.ts
.
- Backend gọi hàm tạo prompt động từ
/lib/prompt-engine/index.ts
.
- Backend gọi API
streamText()
của Vercel AI SDK với prompt vừa tạo.
- AI trả về phản hồi phù hợp theo ngữ cảnh.
Sơ đồ luồng thông tin đơn giản:
Chi Tiết Triển Khai
1. Định nghĩa Vai trò, Ý định và Tông giọng
2. Tạo prompt động dựa trên tham số truyền vào
3. Cách inject prompt vào lúc gọi AI SDK
<callout>
Sự tách biệt này giúp dễ dàng quản lý và mở rộng prompt mà không gây xung đột trong logic.
</callout>
Tại Sao Chọn Kiến Trúc Này?
- Nguồn duy nhất cho prompt: Việc chỉnh sửa prompt tập trung dễ dàng, không phải chỉnh sửa nhiều nơi.
- Điều khiển dựa trên vai trò và mục đích: Đảm bảo chất lượng câu trả lời phù hợp ngữ cảnh.
- Mở rộng dễ dàng: Có thể thêm vai trò, ý định hoặc giọng điệu mới chỉ cần cập nhật module prompt.
- Dễ bảo trì và không rối: Tránh sự phức tạp với các chuỗi if/else lớn trong logic nghiệp vụ.
Những Thách Thức Đã Gặp
- Xác định độ chi tiết cho từng loại prompt (giữ đơn giản với 4 ý định cốt lõi ban đầu).
- Cân bằng giữa prompt dễ đọc với prompt quá trừu tượng hoặc quá tổng quát.
- Xử lý thay đổi liên tục ngữ cảnh trong hội thoại, ví dụ CPA chuyển đổi vai trò trong cùng một phiên (giải pháp: tạo prompt mới mỗi khi có thao tác chính).
Bài Học Rút Ra
<callout>
<mark>Prompt phải được xem là phần mềm, không phải văn bản tĩnh:</mark> cần thiết kế module hóa, có kiểm soát phiên bản và có thể kiểm thử tự động.
</callout>
- Bắt đầu với thiết kế đơn giản, sau đó mở rộng dần.
- Vai trò + ý định đã giải quyết 90% các vấn đề.
- Tông giọng chỉ thêm sau khi nhận được phản hồi người dùng.
- Kỹ thuật prompt engineering là thiết kế kiến trúc, không chỉ là viết câu chữ hay hơn.
Nếu Bạn Đang Xây Dựng AI SaaS...
Bất kể là ngành thuế, y tế, pháp lý hay hỗ trợ khách hàng:
- Hệ thống prompt thông minh sẽ làm sản phẩm toàn diện thông minh hơn.
- Đừng xem LLM (Large Language Model) như hộp đen kỳ diệu.
- Hãy xem nó như một trợ lý thông minh cần hướng dẫn cụ thể, cá nhân hóa cho từng người dùng và từng trạng thái.
<mark>Đó là sức mạnh của prompt động.</mark>
Muốn Thấy Ví Dụ Thực Tế?
Chúng tôi đang ra mắt TaxJoy phiên bản truy cập sớm — trợ lý thuế AI giúp CPA tiết kiệm hơn 40 giờ mỗi tháng trong mùa thuế.
Tham Khảo
- Hall, B. (2024). Building a Dynamic Prompt Engine for an AI SaaS (Next.js + Vercel AI SDK). TaxJoy Tech Blog.
- "Modular Prompt Design for Scalable AI Applications," AI Journal, 2023.