Skip to content
··4 phút đọc

Nâng cấp Chatbot: Sprint một tuần để tương tác thông minh hơn

Tôi xây lại chatbot trong một tuần, nâng cấp từ tóm tắt bài viết cơ bản sang tìm kiếm toàn văn với chunking, bảo mật và metadata — đây là những gì tôi học được về cân bằng sức mạnh AI và chi phí.

Cập nhật (2026): Chatbot này đã tiến hóa thành Sydney! Sau nhiều lần lặp, Sydney giờ sống tại /ask/ và tập trung vào nội dung blog và sản phẩm.


Khi tôi ra mắt phiên bản 0.1 của chatbot DIY tuần trước, mục tiêu là tạo một agent hội thoại có thể tổng hợp thông tin qua các bài blog để trả lời câu hỏi. Mặc dù v0.1 là bước đầu lớn với tư cách người mới học code, nó có hạn chế đáng kể. Cơ sở kiến thức chỉ bao gồm tóm tắt các bài viết, và chatbot gặp khó khăn trong việc truy xuất chi tiết cụ thể như số liệu hay ngày tháng chính xác. Động lực của tôi là cải thiện dần khả năng chatbot qua học tập thực hành. Bài viết này cung cấp cập nhật sau một tuần tối ưu hóa. Tôi tập trung vào mở rộng cơ sở kiến thức để bao gồm toàn bộ nội dung bài viết, tăng cường biện pháp bảo mật và tối ưu hóa mô hình AI về chi phí. Mặc dù chatbot vẫn còn đường dài phía trước, những nâng cấp ban đầu này là tiến bộ đáng khích lệ.

Đây là những gì đã được thực hiện kể từ phiên bản trước:

1. Chức năng

Chatbot bao gồm tất cả bài viết mới nhất đến cuối tháng 10 năm 2023

Tôi xuất bản sáu bài blog trong tháng 10, tất cả giờ đều nằm trong cơ sở kiến thức của chatbot. Ví dụ, bạn có thể hỏi: "Cho tôi biết những điểm chính về Coursera mà Chandler viết" và chatbot có thể cung cấp câu trả lời dựa trên các bài viết tôi viết trong tháng 10/2023.

Cơ sở kiến thức bao gồm toàn bộ bài blog thay vì chỉ tóm tắt

Cho phiên bản đầu, vì thiếu kiến thức/kinh nghiệm làm việc với giới hạn cửa sổ ngữ cảnh từ OpenAI API, tôi phải tạo tóm tắt mỗi bài blog rồi embedding bằng endpoint embedding API của OpenAI. Tôi không biết cách chunk toàn bộ bài viết thành các phần nhỏ hơn và embed từng phần trong khi giữ nguyên ngữ cảnh (tức metadata, URL, tiêu đề, v.v...).

Lần lặp đầu tiên của chunking đã được thực hiện trong tuần này. Cơ sở kiến thức chatbot giờ có toàn bộ bài blog thay vì chỉ tóm tắt. Vẫn còn chỗ cải thiện khi tôi tiếp tục tinh chỉnh giới hạn và cách tiếp cận chunking lý tưởng cho bài viết dài. Hiện tại, tôi chia bài viết dài thành các phần nhỏ hơn không quá 800 token và dùng "đoạn văn" làm điểm ngắt tự nhiên.

Bằng cách này, trong phiên bản tiếp theo, nó có thể trả lời câu hỏi về số liệu cụ thể dễ dàng hơn.

Ngày xuất bản, tiêu đề và URL bài blog được bao gồm

Sau khi người dùng nhập câu hỏi, trong quá trình truy xuất, tiêu đề, ngày xuất bản và URL bài blog cũng được cung cấp cho chatbot. Nên giờ chatbot có thể cung cấp URL cụ thể hoặc ngày xuất bản cho người dùng nếu được hỏi.

Điều này giúp xác minh trong trường hợp người dùng muốn kiểm tra lại hoặc đọc toàn bộ bài blog.

2. Bảo mật

Các biện pháp bảo mật cơ bản được triển khai như:

  • Xác thực đầu vào trước khi gửi đến API
  • Chức năng giới hạn tốc độ cơ bản, tức bạn có thể hỏi bao nhiêu câu mỗi phút cho chatbot
  • Truy vấn và phản hồi chatbot được xác thực với moderation API của OpenAI

3. GPT-4 so với GPT-3.5

Tôi sẽ tiếp tục dùng mô hình GPT-3.5 cho chatbot vì chi phí. Câu trả lời GPT-4 tốt hơn nhiều so với GPT-3.5. Tuy nhiên, vì tôi chưa tìm được cách tốt nhất để làm việc với giới hạn cửa sổ ngữ cảnh trong khi duy trì lịch sử hội thoại, cho các câu hỏi phức tạp mà chatbot cần tìm qua nhiều bài viết, chi phí mỗi câu trả lời cao như $0.15 hoặc $0.2 từ GPT-4. Tôi chưa đủ khả năng chi trả cho dự án cá nhân này. T.T

Vậy thôi cho giờ. Nếu bạn muốn thử chatbot, đây là link. Đây là link đến bài viết trước về chatbot. Chúc cuối tuần vui vẻ.

Nếu bạn đã xây chatbot riêng hoặc làm việc với embeddings và chunking, tôi tò mò — kích thước chunk và cách tiếp cận nào hiệu quả nhất cho bạn? Tôi vẫn đang thử nghiệm :)

Tiếp theo trong hành trình chatbot: Vài tháng sau, tôi xây lại toàn bộ chatbot từ đầu bằng LangChain và FAISS — Cách tôi thoát khỏi bãi lầy code với một AI Agent.

Thân mến,

Chandler

P.S.: Khóa học mới về Generative AI for Everyone, giảng dạy bởi Andrew Ng, không hề thất vọng. Đây là khóa miễn phí, cung cấp kiến thức chung về Generative AI, cách các phần mềm hoặc ứng dụng web Gen AI thường được xây dựng, v.v... Khóa cũng khá ngắn nên bạn có thể xem hết video trong một cuối tuần.

Đọc tiếp

Hành trình
Kết nối
Ngôn ngữ
Tùy chọn