Xây dựng hệ thống RAG cục bộ với Go, PostgreSQL và Ollama mà không cần API đám mây
Ollama
Bài viết khám phá việc tạo một hệ thống RAG hoàn toàn cục bộ bằng Go, PostgreSQL với pgvector và Ollama, tránh các framework nặng nề như LangChain và các API đám mây. Nội dung bao gồm kiến trúc, lập chỉ mục, tìm kiếm ngữ nghĩa và sinh văn bản, nhấn mạnh lợi ích của xử lý cục bộ cho quyền riêng tư và kiểm soát.
Bài viết mô tả việc xây dựng một hệ thống RAG (Retrieval-Augmented Generation - Tạo sinh tăng cường truy hồi) cục bộ mà không cần đến các API đám mây, sử dụng Go, PostgreSQL với tiện ích mở rộng pgvector và Ollama. Hệ thống bao gồm hai thành phần chính: một CLI tiếp nhận để lập chỉ mục tài liệu ngoại tuyến và một API REST để xử lý các truy vấn của người dùng theo thời gian thực. Các tài liệu được chia thành các đoạn, nhúng bằng mô hình nomic-embed-text và lưu trữ trong PostgreSQL với pgvector để tìm kiếm ngữ nghĩa. Tại thời điểm truy vấn, hệ thống tạo một vector nhúng cho truy vấn, tìm các đoạn tương tự bằng cách sử dụng tìm kiếm lân cận gần nhất gần đúng (HNSW) và truyền ngữ cảnh liên quan đến mô hình llama3.2 thông qua Ollama để tạo câu trả lời. Cách tiếp cận này đảm bảo quyền riêng tư dữ liệu và tính tự chủ hoàn toàn, tránh các lệnh gọi API bên ngoài. Bài viết nhấn mạnh tầm quan trọng của việc sử dụng cùng một mô hình nhúng cho cả việc lập chỉ mục và truy vấn để duy trì tính nhất quán của không gian vector.
Nguồn: Habr — хаб NLP —
bản gốc
