Nguyen Van Quang Huy

Fullstack Developer

0%

Menu Vector Embedding

Bài toán và phạm vi

Menu Vector Embedding là dịch vụ Python nhỏ nằm trong repository Scan to Order, có nhiệm vụ biến câu hỏi và văn bản thực đơn thành vector bằng BGE-M3. Dịch vụ cung cấp health check, endpoint embed một chuỗi và endpoint embed theo lô.

Trang này tách riêng lớp tạo embedding khỏi toàn bộ trợ lý Bé Bảy. Qdrant, retrieval và quá trình soạn câu trả lời thuộc Node service chính; FastAPI chỉ chịu trách nhiệm nạp mô hình, kiểm tra đầu vào và trả vector chuẩn hóa.

Cách sản phẩm hoạt động

Node service có thể gửi một đoạn văn hoặc một batch nội dung đến embedding service rồi dùng vector nhận về cho quá trình lập chỉ mục và tìm kiếm. Batch endpoint giúp giảm số request khi nạp nhiều menu item hoặc knowledge chunk.

API giới hạn độ dài văn bản, số phần tử trong batch và hỗ trợ token bảo vệ tùy cấu hình. Vector được normalize trước khi trả về để phía truy xuất có đầu vào nhất quán cho phép so sánh độ tương đồng.

Điểm đáng chú ý

Một hợp đồng rõ ràng. FastAPI nhận văn bản hoặc một batch văn bản và trả vector BGE-M3 đã được chuẩn hóa.

Có giới hạn tại biên API. Độ dài nội dung, kích thước batch và token truy cập được kiểm tra trước khi chạy mô hình.

Tách đúng trách nhiệm. Python chỉ tạo embedding; Node service chính sở hữu Qdrant, retrieval, dữ liệu menu và luồng chatbot.

Quyết định kỹ thuật

FastAPI phù hợp với một HTTP service mỏng; Sentence Transformers nạp BAAI/bge-m3 và thực hiện encode; Pydantic kiểm tra schema request. Việc tách process Python tránh buộc Express phải quản lý trực tiếp runtime của mô hình.

Service không tự lưu dữ liệu và không chứa logic chatbot. Ranh giới này cho phép tầng Node giữ quyền sở hữu Qdrant, menu, knowledge jobs và provider AI, còn Python tập trung vào một hợp đồng duy nhất là văn bản vào, vector ra.

Công nghệ sử dụng: Python, Qdrant Vector DB, BGE-M3 Embedding, FastAPI, Cosine Similarity.

Ghi chú triển khai

Mã nguồn giữ cấu hình model, giới hạn text, giới hạn batch và token trong biến môi trường. Model được nạp khi ứng dụng khởi động để request sau không phải khởi tạo lại toàn bộ trọng số.

Health endpoint cho biết service và model đã sẵn sàng trước khi hệ thống chính gửi dữ liệu. Thiết kế nhỏ này cũng làm lỗi dễ khoanh vùng: lỗi embedding được tách khỏi lỗi Qdrant, retrieval hoặc câu trả lời của mô hình ngôn ngữ.

Menu Vector Embedding mobile view 1
Menu Vector Embedding mobile view 2

Hãy cùng tạo nên

những sản phẩm đột phá

và ấn tượng!

Sẵn sàng khởi động dự án cùng bạn ngay hôm nay. Mình nhận các vị trí full-time, thực tập hoặc freelance, làm việc trực tiếp tại TP.HCM hoặc từ xa. Bạn có thể liên hệ nhanh qua số 0906 624 786 (gọi điện hoặc Zalo) hoặc gửi email về nguyen.van.quang.huy.2105@gmail.com.

Nguyen Van Quang Huy - Ready to collaborate