Sau ứng dụng sinh văn bản, bài này chuyển sang ứng dụng chat: cách xây và tích hợp, cách tuỳ biến cho từng lĩnh vực, và cách giám sát để ứng dụng chạy tốt và dùng AI có trách nhiệm.
Video bài học (tiếng Anh): xem trên YouTube.
Ứng dụng chat đã hoà vào đời sống hằng ngày, không chỉ để trò chuyện. Chúng là phần không thể thiếu của chăm sóc khách hàng, hỗ trợ kỹ thuật và cả các hệ thống tư vấn phức tạp. Rất có thể gần đây bạn đã được một ứng dụng chat giúp đỡ. Khi tích hợp các công nghệ tiên tiến như AI tạo sinh (generative AI) vào các nền tảng này, độ phức tạp tăng lên và thách thức cũng vậy.
Một số câu hỏi cần trả lời:
- Xây ứng dụng. Làm sao xây hiệu quả và tích hợp (integration) liền mạch các ứng dụng AI này cho từng tình huống cụ thể?
- Giám sát. Sau khi triển khai (deploy), làm sao giám sát và đảm bảo ứng dụng chạy ở chất lượng cao nhất, cả về chức năng lẫn việc tuân thủ sáu nguyên tắc AI có trách nhiệm?
Khi chúng ta tiến sâu vào thời đại tự động hoá và tương tác người - máy liền mạch, việc hiểu AI tạo sinh thay đổi phạm vi, chiều sâu và khả năng thích ứng của ứng dụng chat ra sao trở nên thiết yếu. Bài này xem xét kiến trúc hỗ trợ các hệ thống phức tạp này, các phương pháp fine-tuning cho tác vụ chuyên ngành, và các chỉ số, cân nhắc để triển khai AI có trách nhiệm.
Giới thiệu
Bài này gồm:
- Kỹ thuật xây và tích hợp ứng dụng chat hiệu quả.
- Cách tuỳ biến và fine-tuning cho ứng dụng.
- Chiến lược và cân nhắc để giám sát ứng dụng chat hiệu quả.
Mục tiêu học tập
Sau bài này, bạn sẽ có thể:
- Mô tả các cân nhắc khi xây và tích hợp ứng dụng chat vào hệ thống có sẵn.
- Tuỳ biến ứng dụng chat cho tình huống cụ thể.
- Xác định các chỉ số và cân nhắc chính để giám sát, duy trì chất lượng ứng dụng chat dùng AI.
- Đảm bảo ứng dụng chat dùng AI có trách nhiệm.
Tích hợp AI tạo sinh vào ứng dụng chat
Nâng tầm ứng dụng chat bằng AI tạo sinh không chỉ là làm chúng thông minh hơn; mà là tối ưu kiến trúc, hiệu năng và giao diện để mang lại trải nghiệm chất lượng. Việc này gồm xem xét nền tảng kiến trúc, tích hợp API và giao diện người dùng. Phần này cho bạn một lộ trình toàn diện, dù bạn gắn ứng dụng vào hệ thống có sẵn hay xây thành nền tảng độc lập.
Chatbot hay ứng dụng chat?
Trước khi xây, hãy so sánh "chatbot" với "ứng dụng chat dùng AI", vốn có vai trò và chức năng khác nhau. Mục đích chính của chatbot là tự động hoá các tác vụ hội thoại cụ thể, như trả lời câu hỏi thường gặp hay theo dõi đơn hàng. Nó thường vận hành theo logic dựa trên luật hoặc thuật toán AI phức tạp. Ngược lại, ứng dụng chat dùng AI là môi trường rộng hơn nhiều, hỗ trợ nhiều hình thức giao tiếp số như chat văn bản, giọng nói và video giữa người dùng với nhau. Đặc điểm nổi bật của nó là tích hợp một model AI tạo sinh mô phỏng hội thoại tinh tế, giống người, sinh câu trả lời dựa trên nhiều loại đầu vào và tín hiệu ngữ cảnh. Một ứng dụng chat dùng AI tạo sinh có thể thảo luận chủ đề mở, thích ứng với ngữ cảnh hội thoại thay đổi, thậm chí tạo ra đối thoại sáng tạo hoặc phức tạp.
Bảng dưới tóm tắt khác biệt và điểm giống nhau chính:
| Chatbot | Ứng dụng chat dùng AI tạo sinh |
|---|---|
| Tập trung vào tác vụ, dựa trên luật | Nhận biết ngữ cảnh |
| Thường được tích hợp vào hệ thống lớn hơn | Có thể chứa một hoặc nhiều chatbot |
| Giới hạn trong các chức năng đã lập trình | Tích hợp model AI tạo sinh |
| Tương tác chuyên biệt, có cấu trúc | Có thể thảo luận chủ đề mở |
Tận dụng chức năng có sẵn qua SDK và API
Khi xây ứng dụng chat, bước đầu tốt là xem những gì đã có sẵn. Dùng SDK và API để xây ứng dụng chat có lợi vì nhiều lý do. Tích hợp các SDK và API có tài liệu tốt giúp ứng dụng thành công lâu dài, giải quyết các mối lo về khả năng mở rộng và bảo trì.
- Rút ngắn phát triển, giảm chi phí: dựa vào chức năng có sẵn thay vì tự xây tốn kém giúp bạn tập trung vào các phần quan trọng hơn, như logic nghiệp vụ.
- Hiệu năng tốt hơn: khi tự xây từ đầu, sớm muộn bạn sẽ tự hỏi "Nó mở rộng ra sao? Ứng dụng có chịu được lượng người dùng tăng đột biến không?" SDK và API được bảo trì tốt thường có sẵn giải pháp cho những mối lo này.
- Bảo trì dễ hơn: cập nhật và cải tiến dễ quản lý, vì phần lớn API và SDK chỉ cần cập nhật thư viện khi có phiên bản mới.
- Tiếp cận công nghệ tiên tiến: tận dụng các model đã được fine-tuning và huấn luyện trên tập dữ liệu lớn mang lại cho ứng dụng khả năng xử lý ngôn ngữ tự nhiên.
Truy cập chức năng của SDK hay API thường cần được cấp quyền dùng dịch vụ, thường qua một key hoặc token xác thực riêng. Chúng ta sẽ dùng thư viện OpenAI cho Python để xem điều này trông thế nào. Bạn cũng có thể tự thử trong notebook cho OpenAI hoặc notebook cho Azure OpenAI Services của bài này.
import os
from openai import OpenAI
API_KEY = os.getenv("OPENAI_API_KEY","")
client = OpenAI(
api_key=API_KEY
)
response = client.responses.create(model="gpt-5-mini", input="Suggest two titles for an instructional lesson on chat applications for generative AI.", store=False)
print(response.output_text)
Ví dụ trên dùng model GPT-5 mini với Responses API để hoàn thành prompt, nhưng để ý rằng API key được đặt trước đó. Bạn sẽ nhận lỗi nếu không đặt key.
Trải nghiệm người dùng (UX)
Các nguyên tắc UX chung vẫn áp dụng cho ứng dụng chat, nhưng có thêm vài cân nhắc đặc biệt quan trọng do có thành phần machine learning:
- Cơ chế xử lý câu trả lời mơ hồ: model AI tạo sinh đôi khi đưa câu trả lời mơ hồ. Một tính năng cho phép người dùng yêu cầu làm rõ sẽ hữu ích khi gặp vấn đề này.
- Giữ ngữ cảnh: các model AI tạo sinh tiên tiến có khả năng nhớ ngữ cảnh trong cuộc hội thoại, có thể là yếu tố cần thiết cho trải nghiệm. Cho người dùng quyền kiểm soát và quản lý ngữ cảnh cải thiện trải nghiệm, nhưng cũng mang rủi ro lưu giữ thông tin nhạy cảm. Cân nhắc thời gian lưu thông tin, như đặt chính sách lưu giữ, giúp cân bằng giữa nhu cầu ngữ cảnh và quyền riêng tư.
- Cá nhân hoá: với khả năng học và thích ứng, model AI mang lại trải nghiệm riêng cho từng người. Điều chỉnh trải nghiệm qua các tính năng như hồ sơ người dùng không chỉ khiến người dùng thấy được thấu hiểu, mà còn giúp họ tìm câu trả lời cụ thể nhanh hơn, tạo tương tác hiệu quả và hài lòng hơn.
Một ví dụ về cá nhân hoá là thiết lập "Custom instructions" trong ChatGPT của OpenAI. Nó cho phép bạn cung cấp thông tin về bản thân có thể là ngữ cảnh quan trọng cho prompt. Đây là một ví dụ custom instruction:

"Hồ sơ" này khiến ChatGPT soạn một giáo án về danh sách liên kết (linked list). Để ý rằng ChatGPT tính tới việc người dùng có thể muốn giáo án chuyên sâu hơn dựa trên kinh nghiệm của cô ấy.

Khung system message của Microsoft cho LLM
Microsoft đưa ra hướng dẫn viết system message hiệu quả khi sinh câu trả lời từ LLM, chia thành 4 phần:
- Xác định model phục vụ ai, cùng khả năng (capability) và giới hạn của nó.
- Xác định định dạng đầu ra của model.
- Đưa ví dụ cụ thể minh hoạ hành vi mong muốn của model.
- Đưa thêm các "rào chắn" về hành vi.
Khả năng tiếp cận (accessibility)
Dù người dùng có khiếm khuyết về thị giác, thính giác, vận động hay nhận thức, một ứng dụng chat được thiết kế tốt nên dùng được cho tất cả. Danh sách dưới liệt kê các tính năng cụ thể:
- Cho người khiếm thị: giao diện tương phản cao, chữ thay đổi kích thước được, tương thích trình đọc màn hình.
- Cho người khiếm thính: chức năng chuyển văn bản thành giọng nói và giọng nói thành văn bản, tín hiệu hình ảnh cho thông báo âm thanh.
- Cho người khiếm khuyết vận động: hỗ trợ điều hướng bằng bàn phím, lệnh giọng nói.
- Cho người khiếm khuyết nhận thức: tuỳ chọn ngôn ngữ đơn giản.
Tuỳ biến và fine-tuning cho model chuyên ngành
Hãy tưởng tượng một ứng dụng chat hiểu thuật ngữ nội bộ của công ty bạn và đoán trước các câu hỏi người dùng thường có. Có vài cách đáng nhắc tới:
- Tận dụng model DSL. DSL là viết tắt của domain specific language (ngôn ngữ chuyên ngành). Bạn có thể dùng một model DSL được huấn luyện cho một lĩnh vực để hiểu khái niệm và tình huống của lĩnh vực đó.
- Áp dụng fine-tuning. Fine-tuning là quá trình huấn luyện thêm model bằng dữ liệu cụ thể.
Tuỳ biến: dùng model DSL
Dùng model ngôn ngữ chuyên ngành (DSL model) có thể tăng mức tương tác của người dùng nhờ các tương tác chuyên biệt, sát ngữ cảnh. Đó là model được huấn luyện hoặc fine-tuning để hiểu và sinh văn bản thuộc một lĩnh vực, ngành hay chủ đề cụ thể. Cách dùng model DSL có thể từ tự huấn luyện từ đầu, tới dùng model có sẵn qua SDK và API. Một lựa chọn khác là fine-tuning: lấy một model đã huấn luyện sẵn và điều chỉnh cho một lĩnh vực cụ thể.
Tuỳ biến: áp dụng fine-tuning
Fine-tuning thường được cân nhắc khi model huấn luyện sẵn chưa đáp ứng được ở một lĩnh vực chuyên biệt hoặc tác vụ cụ thể.
Ví dụ, câu hỏi y khoa phức tạp và cần nhiều ngữ cảnh. Khi bác sĩ chẩn đoán, họ dựa trên nhiều yếu tố như lối sống hay bệnh nền, thậm chí dựa vào các tạp chí y khoa mới để xác nhận chẩn đoán. Trong những tình huống tinh tế như vậy, một ứng dụng chat AI đa dụng không thể là nguồn đáng tin.
Tình huống: ứng dụng y khoa
Hãy xem một ứng dụng chat hỗ trợ bác sĩ bằng cách tra cứu nhanh hướng dẫn điều trị, tương tác thuốc hay kết quả nghiên cứu mới.
Một model đa dụng có thể đủ để trả lời câu hỏi y khoa cơ bản hoặc đưa lời khuyên chung, nhưng có thể gặp khó với:
- Ca rất cụ thể hoặc phức tạp. Ví dụ, một bác sĩ thần kinh có thể hỏi: "What are the current best practices for managing drug-resistant epilepsy in pediatric patients?" (Các thực hành tốt nhất hiện nay để điều trị động kinh kháng thuốc ở bệnh nhi là gì?)
- Thiếu tiến bộ mới. Model đa dụng có thể khó đưa ra câu trả lời cập nhật, có tính tới những tiến bộ mới nhất trong thần kinh học và dược học.
Trong những trường hợp như vậy, fine-tuning model bằng tập dữ liệu y khoa chuyên biệt có thể cải thiện đáng kể khả năng xử lý các câu hỏi phức tạp này một cách chính xác, đáng tin hơn. Điều này cần một tập dữ liệu lớn, liên quan, phản ánh đúng các thách thức và câu hỏi của lĩnh vực.
Cân nhắc cho trải nghiệm chat AI chất lượng cao
Phần này nêu các tiêu chí của ứng dụng chat "chất lượng cao", gồm thu thập các chỉ số có thể hành động và tuân theo một khung dùng AI có trách nhiệm.
Các chỉ số chính
Để duy trì hiệu năng cao của ứng dụng, cần theo dõi các chỉ số và cân nhắc chính. Các phép đo này không chỉ đảm bảo ứng dụng hoạt động mà còn đánh giá chất lượng model AI và trải nghiệm người dùng. Danh sách dưới gồm các chỉ số cơ bản, chỉ số AI và chỉ số trải nghiệm người dùng:
| Chỉ số | Định nghĩa | Cân nhắc cho lập trình viên ứng dụng chat |
|---|---|---|
| Uptime | Thời gian ứng dụng hoạt động và người dùng truy cập được. | Bạn sẽ giảm thời gian ngừng hoạt động thế nào? |
| Thời gian phản hồi | Thời gian ứng dụng trả lời một truy vấn của người dùng. | Làm sao tối ưu xử lý truy vấn để cải thiện thời gian phản hồi? |
| Precision | Tỷ lệ dự đoán dương tính đúng trên tổng số dự đoán dương tính. | Bạn sẽ kiểm chứng precision của model thế nào? |
| Recall (độ nhạy) | Tỷ lệ dự đoán dương tính đúng trên số trường hợp dương tính thực tế. | Bạn sẽ đo và cải thiện recall thế nào? |
| F1 Score | Trung bình điều hoà của precision và recall, cân bằng đánh đổi giữa hai chỉ số. | F1 Score mục tiêu của bạn là bao nhiêu? Bạn sẽ cân bằng precision và recall thế nào? |
| Perplexity | Đo mức phân phối xác suất model dự đoán khớp với phân phối thực của dữ liệu. | Bạn sẽ giảm perplexity thế nào? |
| Chỉ số hài lòng của người dùng | Đo cảm nhận của người dùng về ứng dụng, thường qua khảo sát. | Bạn thu thập phản hồi bao lâu một lần? Sẽ điều chỉnh dựa trên phản hồi thế nào? |
| Tỷ lệ lỗi | Tỷ lệ model mắc lỗi khi hiểu hoặc khi tạo đầu ra. | Bạn có chiến lược gì để giảm tỷ lệ lỗi? |
| Chu kỳ huấn luyện lại | Tần suất cập nhật model để đưa vào dữ liệu và nhận định mới. | Bạn huấn luyện lại model bao lâu một lần? Điều gì kích hoạt một chu kỳ huấn luyện lại? |
| Phát hiện bất thường | Công cụ và kỹ thuật nhận ra các mẫu bất thường, không khớp hành vi mong đợi. | Bạn sẽ phản ứng với bất thường thế nào? |
Áp dụng AI có trách nhiệm trong ứng dụng chat
Cách tiếp cận AI có trách nhiệm (Responsible AI) của Microsoft xác định sáu nguyên tắc định hướng việc phát triển và dùng AI. Dưới đây là các nguyên tắc, định nghĩa, những điều lập trình viên ứng dụng chat nên cân nhắc và lý do cần nghiêm túc với chúng.
| Nguyên tắc | Định nghĩa của Microsoft | Cân nhắc cho lập trình viên ứng dụng chat | Vì sao quan trọng |
|---|---|---|---|
| Công bằng | Hệ thống AI nên đối xử công bằng với mọi người. | Đảm bảo ứng dụng chat không phân biệt đối xử dựa trên dữ liệu người dùng. | Xây dựng niềm tin và sự hoà nhập; tránh hệ luỵ pháp lý. |
| Tin cậy và an toàn | Hệ thống AI nên hoạt động tin cậy và an toàn. | Kiểm thử và có cơ chế an toàn khi lỗi để giảm lỗi và rủi ro. | Đảm bảo người dùng hài lòng và ngăn tác hại tiềm ẩn. |
| Quyền riêng tư và bảo mật | Hệ thống AI nên an toàn và tôn trọng quyền riêng tư. | Mã hoá mạnh và có biện pháp bảo vệ dữ liệu. | Bảo vệ dữ liệu nhạy cảm của người dùng và tuân thủ luật về quyền riêng tư. |
| Hoà nhập | Hệ thống AI nên trao quyền và thu hút mọi người. | Thiết kế UI/UX dễ tiếp cận, dễ dùng cho nhiều đối tượng. | Đảm bảo nhiều người hơn dùng được ứng dụng hiệu quả. |
| Minh bạch | Hệ thống AI nên dễ hiểu. | Cung cấp tài liệu rõ ràng và lập luận cho câu trả lời của AI. | Người dùng dễ tin một hệ thống hơn nếu hiểu cách nó ra quyết định. |
| Trách nhiệm giải trình | Con người phải chịu trách nhiệm về hệ thống AI. | Thiết lập quy trình rõ ràng để kiểm tra và cải thiện quyết định của AI. | Cho phép cải thiện liên tục và khắc phục khi có sai sót. |
Bài tập
Xem bài tập trong repo gốc. Nó dẫn bạn qua một loạt bài thực hành, từ chạy những prompt chat đầu tiên tới phân loại, tóm tắt văn bản và hơn thế nữa. Bài tập có sẵn bằng nhiều ngôn ngữ lập trình.
Bài tiếp theo: Xây ứng dụng tìm kiếm.
Nguồn
- Dịch và biên tập từ microsoft/generative-ai-for-beginners · 07-building-chat-applications/README.md, giấy phép MIT.