Tin mới nhất

Menu

Browsing "Older Posts"

Bài Viết Về Chủ Đề " Mistral "

Chia Sẻ Khóa Học Local GenAI RAG Với LlamaIndex, Ollama & Elasticsearch [Khóa 5701 A]

11 tháng 10 2025 / No Comments

Xây dựng một Generative AI Platform với Retrieval Augmented Generation cùng Elasticsearch, LlamaIndex, Ollama và Mistral.

Retrieval-Augmented Generation (RAG) là bước thực hành tiếp theo sau semantic indexing & search. Trong khóa học này, bạn sẽ xây dựng một local-first RAG pipeline hoàn chỉnh, có khả năng tiếp nhận các PDF, lưu trữ các chunked vector trong Elasticsearch, truy xuất context phù hợp và generate các câu trả lời có căn cứ với Mistral LLM chạy cục bộ thông qua Ollama.

Chúng ta sẽ cùng nhau làm việc từ đầu đến cuối trên một kịch bản cụ thể: tìm kiếm CV của sinh viên để trả lời các câu hỏi như "Ai đã làm việc ở đâu?" hoặc "Ai có kinh nghiệm về Spark?". Bạn sẽ thiết lập một  Dockerized stack (FastAPI, Elasticsearch, Kibana, Streamlit, Ollama) và kết nối chúng với LlamaIndex để bạn có thể tập trung vào logic, thay vì boilerplate. Trong quá trình này, bạn sẽ tìm hiểu những điểm mạnh của RAG, những điểm yếu của nó (precision/recall, hallucination), và cách thiết kế cho production.

Cuối cùng, bạn sẽ có một ứng dụng hoạt động: upload các PDF → extract text → tạo JSON sạch → chunk & embed → index vào Elasticsearch → truy vấn qua Streamlit → generate câu trả lời với Mistral, fully reproducible trên máy của bạn.

Tôi sẽ học được gì?

Từ Search đến RAG:

Xem lại semantic search và mở rộng nó sang  RAG: trước tiên hãy truy xuất các chunk liên quan, sau đó generate các câu trả lời có căn cứ. Xem cách  LlamaIndex  kết nối dữ liệu của bạn với LLM và lý do tại sao chunk size và overlap lại quan trọng đối với recall & precision.

Xây dựng Pipeline:

Sử dụng FastAPI để chấp nhận tải lên PDF và kích hoạt ingestion flow: text extraction, JSON shaping, chunking, embeddings và indexing vào Elasticsearch, tất cả đều được phối hợp với LlamaIndex để giảm thiểu boilerplate.

Làm việc với Elasticsearch:

Tạo một index cho các CV chunk với vector và metadata. Hiểu về similarity search vs. các truy vấn keyword, cách các vector field được lưu trữ và cách khám phá các document và score với  Kibana.

Streamlit Chat Interface:

Xây dựng một Streamlit UI đơn giản để đặt câu hỏi bằng ngôn ngữ tự nhiên. Chuyển đổi debug mode để kiểm tra các chunk nào được hỗ trợ câu trả lời và sử dụng các metadata filter (ví dụ: by person) để tăng độ chính xác cho các truy vấn được nhắm mục tiêu.

Ingestion & JSON Shaping:

Trích xuất văn bản thô từ PDF bằng PyMuPDF, sau đó để Ollama (Mistral) tạo lossless JSON (escaped character, preserved structure). Xử lý các sự cố định dạng JSON không thường xuyên với retries và strict prompting.

Cải thiện chất lượng câu trả lời:

Tìm hiểu các lever thực tế để cải thiện kết quả:

  • ✓ Tune chunk size/overlap & top-K retrieval.
  • ✓ Add richer metadata (vai trò, kỹ năng, vị trí) cho hybrid filtering.
  • ✓ Thử nghiệm với các embedding model và prompt nghiêm ngặt hơn.
  • ✓ Xem xét các structured output (ví dụ: JSON lists) cho các list-style question.

Dockerized Setup:

Sử dụng Docker Compose để khởi động full stack (FastAPI, Elasticsearch, Kibana, Streamlit và Ollama (Mistral) để bạn có thể chạy toàn bộ hệ thống cục bộ với cấu hình nhất quán.

Bonus: Các Production Pattern:

Khám phá cách các prototype map này tương thích với thiết kế có khả năng mở rộng:

  • ✓ Lưu trữ các upload trong một data lake (ví dụ: S3) và trigger processing với một message queue (Kafka/SQS).
  • ✓ Autoscale worker cho chunking và embeddings.
  • ✓ Hoán đổi các LLM backend (ví dụ: Bedrock/OpenAI) đằng sau các clean API.
  • ✓ Persist chat history trong MongoDB/Postgres và replace Streamlit với một React/Next.js UI.


NHẬN GET EBOOK TRÊN AMAZON THEO YÊU CẦU 



Copyright Disclaimer:
This site does not store any files on its server. We only index and link to content provided by other sites. Please contact the content providers to delete copyright contents if any and email us, we'll remove relevant links or contents immediately.
Tuyên bố miễn trừ bản quyền:
Trang web này không lưu trữ bất kỳ tệp nào trên máy chủ của nó. Chúng tôi chỉ lập chỉ mục và liên kết đến nội dung được cung cấp bởi các trang web khác. Vui lòng liên hệ với các nhà cung cấp nội dung để xóa nội dung bản quyền nếu có và gửi email cho chúng tôi, chúng tôi sẽ xóa các liên kết hoặc nội dung có liên quan ngay lập tức.