Trò chuyện với dữ liệu bằng WrenAI
Không cần nhất thiết phải học code để phân tích dữ liệu. Đã có cách để chỉ cần đưa ra yêu cầu chuẩn chỉnh là AI lo liệu hết phần còn lại.
Dữ liệu công ty được xem là tài sản quý giá của doanh nghiệp. Tuy nhiên, làm sao để khai thác mỏ vàng này thay vì tốn hàng đống tiền thu thập làm sạch dữ liệu và đưa ra các biểu đồ phức tạp, đặc biệt là làm sao để người dùng sử dụng dữ liệu và đưa ra quyết định khi mà họ gặp khó khăn trong việc phân tích dữ liệu.
Từ thưở ban đầu, sự ra đời của Business Intelligence (BI) nhằm thu hẹp khoảng cách giữa đội kinh doanh và đội kỹ thuật. Tuy nhiên, trong thực tế triển khai thì BI vẫn tồn tại nhiều vấn đề.
- Dashboard cố định, thiếu linh hoạt: BI dashboard về cơ bản chỉ là những biểu đồ tĩnh, tạo ra để giải quyết những câu hỏi đã biết. Ví dụ: Tổng chi phí theo thời gian, số lượng user theo địa điểm, top các bài viết,... Nhưng trong quá trình sử dụng, người dùng nghiệp vụ (business user) vẫn sẽ có những câu hỏi bất chợt tùy vào dữ liệu thực tế mà không thể được giải quyết dựa vào BI dashboard có sẵn.
- Phụ thuộc vào đội kỹ thuật: Khi nảy sinh những nhu cầu mới hoặc câu hỏi xoáy sâu vào vấn đề cụ thể, user vẫn phải phụ thuộc vào đội kỹ thuật. Quá trình này vẫn sẽ mất vài tiếng, vài ngày, thậm chí vài tuần với những dự án lớn.
- Khó học và khó dùng: Việc sử dụng thành thạo các công cụ BI để có thể tự tạo dashboard vẫn cần những kỹ năng nhất định về ngôn ngữ lập trình (SQL, Python), ngoài ra phải nắm cấu trúc dữ liệu của doanh nghiệp. Việc này không hề đơn giản, đặc biệt là với người không chuyên về kỹ thuật.
WrenAI là gì?
WrenAI là một công cụ phân tích dữ liệu và Business Intelligence (BI) nguồn mở, nổi bật với tính năng Text-to-SQL, cho phép biến ngôn ngữ tự nhiên như tiếng Anh và tiếng Việt thành các câu lệnh SQL. Thay vì phải viết code, người dùng chỉ cần hỏi bằng ngôn ngữ thông thường, hệ thống sẽ tự động chuyển câu hỏi thành SQL và trả về kết quả bạn cần.
Tưởng tượng bạn đang vận hành hệ thống chat cho nhiều bộ phận trong doanh nghiệp, bạn gặp một câu hỏi bất ngờ:
So sánh trong tháng 6 và tháng 7, bộ phận nào tăng nhiều chi phí sử dụng nhất?
Thông thường, bạn sẽ phải lên BI, lọc và xuất dữ liệu tháng 6 và tháng 7 ra file Excel. Sau vài thao tác VLOOKUP để gộp và tính toán, bạn ra kết quả. Nếu nhanh thì mất 15 phút và sẽ còn lâu hơn rất nhiều nếu cần hỗ trợ từ đội kỹ thuật.
Vậy một hệ thống trong mơ sẽ chạy như thế nào?
Người dùng chỉ cần nhập yêu cầu vào một khung text nhỏ, và nhận về kết quả sau vài giây. Đó chính xác là điều mà WrenAI đang hướng đến.
Bạn chỉ cần nhập yêu cầu, WrenAI sẽ lo phần còn lại
Các thành phần chính của WrenAI
1. Knowledge
Trong WrenAI, Knowledge đóng vai trò quyết định trong việc biến các câu hỏi từ ngôn ngữ tự nhiên thành câu truy vấn SQL chính xác và phù hợp. Các loại Knowledge trong WrenAI bao gồm:
- Semantic Layer: Đây là nơi tập trung định nghĩa, logic giúp việc dịch các khái niệm kinh doanh thành các cấu trúc cụ thể của cơ sở dữ liệu. Có thể xem Semantic Layer như là một Data Catalog của dữ liệu.
- Question-SQL pair: cho phép người dùng lưu các câu hỏi và câu lệnh SQL từ WrenAI. Khi một người dùng hỏi câu tương tự trong tương lai, WrenAI sẽ tạo ra câu SQL dựa trên câu question-SQL pair đã lưu làm tăng độ chính xác và đảm bảo nhất quán.
- Instructions: Tạo ra những hướng dẫn cụ thể cho WrenAI trong việc tạo ra query. Ví dụ: Loại bỏ trạng thái là “canceled”, “rejected” trong các bảng usage.
Giao diện quản lý question-SQL pairs
2. API
WrenAI cũng hỗ trợ endpoint API để có thể tích hợp với các dịch vụ khác. Các nhóm API bao gồm:
- Query & Answering: Tạo SQL từ câu hỏi, chạy và tóm tắt kết quả.
- Charting: Vẽ biểu đồ kèm dữ liệu.
- Truy xuất Metadata: truy xuất metadata của bảng, mối quan hệ,... làm ngữ cảnh giúp cho việc tạo SQL được nhất quán.
- Truy xuất Knowledge.
Với các API trên, doanh nghiệp có thể dễ dàng tích hợp WrenAI vào quy trình làm việc thực tế. Ví dụ: xây dựng một chatbot nội bộ mà khi người dùng nhập câu hỏi thì hệ thống backend sẽ gọi API /ask
của WrenAI và trả về câu trả lời trên giao diện chat. Hoặc trên một dashboard hiện tại, thêm một ô để người dùng nhập câu hỏi; hệ thống sẽ gọi /generate_sql
để lấy câu SQL, cho đội dữ liệu kiểm tra nhanh (nếu cần) trước khi dùng /run_sql
để truy xuất dữ liệu và hiển thị kết quả trực quan. Cách thức tích hợp cụ thể sẽ tùy thuộc vào nhu cầu và hạ tầng hiện tại của doanh nghiệp.
Gọi API /ask của WrenAI để trả lời câu hỏi
3. LLM model
Với mỗi lần truy vấn trên WrenAI, tùy vào độ phức tạp của câu hỏi và dữ liệu mà số lượng token cũng khác nhau. Nhìn chung dao động vào khoảng 50k ~ 100k token (khoảng 95% là input token) với mỗi câu hỏi.
Chi phí cho lượng token trên vào khoảng $0.01 trong trường hợp sử dụng GPT-4o-mini. Trường hợp sử dụng model cao cấp hơn như GPT-5, chi phí sẽ vào khoảng $0.08.
Chi phí cho mỗi lần chạy model GPT-4o-mini
WrenAI sử dụng các pipeline, mỗi pipeline sẽ làm một task riêng biệt, ví dụ như tạo câu SQL, trả lời kết quả, gợi ý, tạo chart, truy vấn knowledge,... Mỗi pipeline lại có thể cài đặt model tương ứng, tùy thuộc vào tốc độ và độ khó của task.
- Với những pipeline liên quan đến SQL như generation, correction, generation_reasoning, khi độ chính xác của SQL là yếu tố sống còn của kết quả truy vấn, bạn nên ưu tiên sử dụng các model cao cấp như GPT-5 hay Gemini Pro.
- Với những pipeline liên quan đến truy vấn dữ liệu, logic đơn giản như classification, description, knowledge retrieval, summarize thì nên ưu tiên sử dụng các model nhỏ hơn như GPT-5-mini hay Gemini Flash để tối ưu về tốc độ và chi phí.
Cài đặt và kết nối WrenAI
Việc cài đặt phiên bản OSS bằng Docker theo guideline khá đơn giản, đặc biệt là nếu sử dụng mô hình LLM mặc định từ OpenAI. Các bạn có thể tham khảo link hướng dẫn cài đặt WrenAI.
Tuy nhiên nếu sử dụng AI Gateway (ví dụ như LiteLLM) thì bạn sẽ hơi tốn thời gian trong việc config vì tài liệu cũng ít đề cập đến vấn đề này. Cảm nhận cá nhân là phần tài liệu cài đặt và sử dụng của WrenAI vẫn cần bổ sung nhiều.
Ở đây, mình sử dụng model GPT-4o-mini được host trên Azure Foundry thông qua AI Gateway là LiteLLM.
Kết nối GPT-4o-mini với WrenAI
Sau khi cài đặt, WrenAI có thể kết nối với nhiều nguồn dữ liệu phổ biến như BigQuery, PostgreSQL, MySQL, Snowflake, Redshift và nhiều database khác.
Cụ thể, mình sẽ kết nối WrenAI với database của LiteLLM - nơi đang lưu trữ dữ liệu sử dụng AI Model của người dùng.
WrenAI có thể kết nối với nhiều nguồn dữ liệu khác nhau
Tương tác với dữ liệu trên WrenAI
Sau khi cài đặt xong, hãy thử bắt đầu bằng câu hỏi đơn giản:
What is the daily active user count for the last 30 days?
Với mỗi yêu cầu từ user, đầu tiên WrenAI sẽ tiến hành bước chuẩn bị. Đây là một công đoạn quan trọng để WrenAI thực hiện chuỗi suy luận (Chain of Thought) nhằm xác định các business logic (Ví dụ: active user là gì?), liên kết các bảng và các cột liên quan, xác định các Timeframe,... Người dùng cần review bước chuẩn bị này và chỉnh sửa trong trường hợp cần thiết. Trong thực tế sử dụng, đây là bước thường phải chỉnh sửa rất nhiều để ra được kết quả đúng với mong đợi.
WrenAI thực hiện chuỗi suy luận (Chain of Thought) khi phân tích câu hỏi
Sau bước chuẩn bị, WrenAI sẽ tạo ra câu SQL, chạy và tạo kết quả cho người dùng.
Kết quả trả về tương tự như việc thực thi một câu lệnh SQL
Thử với một câu hỏi khác, yêu cầu phải JOIN cơ bản để trả lời câu hỏi. WrenAI vẫn cho ra câu trả lời đúng.
WrenAI cũng hỗ trợ vẽ biểu đồ dựa vào kết quả của query và đưa vào dashboard.
Các loại biểu đồ này tương đối cơ bản, không cho phép tùy biến nhiều, phù hợp với việc sử dụng cá nhân.
Triển khai WrenAI trong môi trường doanh nghiệp
Để triển khai thành công WrenAI trong môi trường doanh nghiệp, cần chuẩn bị và lưu ý một số yếu tố sau:
- Data ready: Bảo đảm dữ liệu có cấu trúc nhất quán và các mối quan hệ giữa các bảng cần rõ ràng, dữ liệu đã được làm sạch, chuẩn hóa và được tổ chức theo mô hình phục vụ phân tích (OLAP) thay vì mô hình tối ưu cho nghiệp vụ (OLTP).
- Định nghĩa logic nghiệp vụ: WrenAI cần được dạy về ngôn ngữ và các quy tắc của doanh nghiệp. Đây là bước quan trọng để hệ thống có thể dịch các thuật ngữ trong doanh nghiệp thành các logic truy vấn. Ví dụ: thuật ngữ active user được định nghĩa thế nào, weekly sẽ tính từ chủ nhật hay thứ hai, high-end-model là những model nào,... Quá trình này là đầu vào quan trọng cho Semantic Layer của WrenAI.
- Đội kỹ thuật: Thực tế khi triển khai vẫn sẽ cần tham gia của đội kỹ thuật trong việc vận hành WrenAI. Đội này sẽ nắm rõ về cơ sở dữ liệu của doanh nghiệp, cấu hình các Semantic Layer, thêm các Instruction phù hợp, cũng như bổ sung các Question-SQL pair khi hệ thống gợi ý chưa chính xác. Nhóm này sẽ đóng vai trò huấn luyện viên cho WrenAI để điều chỉnh, giúp hệ thống hiểu đúng các khái niệm đặc thù của doanh nghiệp.
- Đào tạo người dùng: Mặc dù sử dụng ngôn ngữ thông thường, nhưng để tăng độ chính xác khi truy xuất dữ liệu, người dùng cần biết cách đặt câu hỏi sao cho rõ ràng, sử dụng thuật ngữ nhất quán với Semantic Layer, hiểu cách kiểm tra và điều chỉnh kết quả cho phù hợp với nhu cầu của mình.
Khi nào nên dùng WrenAI?
WrenAI đã cho thấy khả năng chuyển đổi hiệu quả từ câu hỏi bằng ngôn ngữ tự nhiên sang các câu truy vấn SQL. Trong những trường hợp đơn giản, khi câu hỏi rõ ràng và dữ liệu đã được mô hình hóa tốt (ví dụ chỉ liên quan 1 - 2 bảng và các khái niệm quen thuộc), WrenAI có thể trả lời rất chính xác.
Ngược lại, nếu câu hỏi mơ hồ hoặc liên quan đến quá nhiều bảng phức tạp (ví dụ yêu cầu JOIN trên 5–7 bảng) hoặc sử dụng thuật ngữ chưa có trong Knowledge, hệ thống có thể sinh ra SQL chưa đúng ý hoặc sai logic. Thực tế vận hành cho thấy, với những nhu cầu phân tích phức tạp, đôi khi vẫn cần sự can thiệp của đội ngũ kỹ thuật để chỉnh sửa lại bước chuẩn bị hoặc tối ưu câu SQL thủ công để đảm bảo kết quả chính xác. Nên hãy đảm bảo bạn biết đội vận hành sẽ làm gì để WrenAI thông minh hơn sau thời gian sử dụng, chứ đừng nghĩ là cài một lần xong rồi thôi nhé.
Nhìn chung, WrenAI là một công cụ rất hứa hẹn và mạnh mẽ, đại diện cho xu hướng “Generative BI” trong tương lai. Đây sẽ là một trợ lý đắc lực giúp tăng hiệu suất làm việc với dữ liệu và mở rộng khả năng tiếp cận dữ liệu cho toàn bộ tổ chức.