Vanna.ai: Trò chuyện với cơ sở dữ liệu SQL
(github.com/vanna-ai)- Mã nguồn mở tạo Text-To-SQL chính xác bằng LLM áp dụng RAG (Retrieval-Augmented Generation)
Cách Vanna hoạt động
- Huấn luyện "mô hình" RAG: Huấn luyện mô hình RAG trên dữ liệu của người dùng.
- Đặt câu hỏi: Khi đặt câu hỏi bằng mô hình đã huấn luyện, hệ thống sẽ trả về truy vấn SQL có thể được tự động thực thi trên cơ sở dữ liệu.
Giao diện người dùng
- Một số giao diện người dùng được xây dựng bằng Vanna gồm có Jupyter Notebook, vanna-ai/vanna-streamlit, vanna-ai/vanna-flask, vanna-ai/vanna-slack, v.v.
Bắt đầu
- Cài đặt: Có thể cài Vanna bằng lệnh
pip install vanna. - Import: Có thể sử dụng Vanna thông qua đoạn mã
import vanna as vn.
Huấn luyện
- Huấn luyện bằng câu lệnh DDL: Có thể huấn luyện mô hình bằng các câu lệnh DDL chứa thông tin về tên bảng, cột, kiểu dữ liệu, quan hệ, v.v. của cơ sở dữ liệu.
- Huấn luyện bằng tài liệu: Có thể huấn luyện mô hình bằng cách bổ sung tài liệu về thuật ngữ hoặc định nghĩa nghiệp vụ.
- Huấn luyện bằng SQL: Có thể thêm các truy vấn SQL hiện có làm dữ liệu huấn luyện để tạo ra SQL mới.
Đặt câu hỏi
- Có thể dùng phương thức
vn.ask("질문")để đặt câu hỏi và nhận truy vấn SQL liên quan.
RAG so với fine-tuning
- RAG có thể di chuyển giữa các LLM, dễ loại bỏ dữ liệu huấn luyện, chi phí thấp và có khả năng thích ứng tốt với tương lai.
- Fine-tuning hữu ích khi cần tối thiểu hóa số token trong prompt, nhưng khởi đầu chậm và chi phí huấn luyện cũng như vận hành cao.
Vì sao chọn Vanna
- Độ chính xác cao với tập dữ liệu phức tạp: Năng lực của Vanna được quyết định dựa trên dữ liệu huấn luyện.
- Bảo mật và quyền riêng tư: Nội dung cơ sở dữ liệu không được gửi tới LLM hay cơ sở dữ liệu vector.
- Tự học: Khi dùng qua Jupyter, hệ thống có thể tự động học từ các truy vấn đã được thực thi thành công.
- Hỗ trợ mọi cơ sở dữ liệu SQL: Có thể kết nối với mọi cơ sở dữ liệu SQL có thể kết nối bằng Python.
- Lựa chọn front-end: Có thể bắt đầu từ Jupyter Notebook rồi cung cấp cho người dùng qua Slackbot, ứng dụng web, ứng dụng Streamlit hoặc front-end tùy chỉnh.
Mở rộng Vanna
- Vanna được thiết kế để kết nối với mọi cơ sở dữ liệu, LLM và cơ sở dữ liệu vector.
- Lớp cơ sở trừu tượng VannaBase định nghĩa các chức năng nền tảng và cung cấp triển khai sử dụng OpenAI cùng ChromaDB.
Tài liệu bổ sung
- Có cung cấp tài liệu đầy đủ, website và nhóm Discord để hỗ trợ.
Ý kiến của GN⁺:
- Vanna là một công cụ mạnh mẽ giúp tự động hóa quản lý cơ sở dữ liệu và tạo truy vấn SQL, cho phép người dùng dễ dàng tạo các truy vấn SQL có độ chính xác cao trên những tập dữ liệu phức tạp.
- Thông qua giao diện thân thiện với người dùng và tính năng tự học, ngay cả người không chuyên cũng có thể khai thác cơ sở dữ liệu hiệu quả hơn, từ đó đẩy nhanh hơn nữa việc ra quyết định dựa trên dữ liệu.
- Khả năng mở rộng và thích ứng tương lai của Vanna mang lại cho doanh nghiệp cơ hội phản ứng linh hoạt với thay đổi công nghệ và liên tục cải thiện quy trình quản lý dữ liệu.
1 bình luận
Ý kiến trên Hacker News
Trải nghiệm người dùng đang phát triển dự án ChatDB.ai
Trải nghiệm cá nhân khi dùng GPT-4
SHOW TABLEcủa MySQL CLI để kiểm tra cấu trúc bảng, rồi tạo truy vấn dựa trên các bảng đó nhằm hiển thị các chỉ số kinh doanh như tỷ lệ bỏ giỏ hàng.Góc nhìn hoài nghi về hệ thống dịch ngôn ngữ tự nhiên sang SQL
Sự quan tâm đến các sản phẩm tương tự, bao gồm startup được YC hỗ trợ
Kinh nghiệm với dịch vụ báo cáo dựa trên duckdb
Lo ngại và giải thích về cách RAG hoạt động
Thắc mắc về vấn đề hallucination của LLM
Chia sẻ kinh nghiệm dùng dataset và công nghệ riêng
Kinh nghiệm tại bit.io và phản ứng của khách hàng