LlamaIndex
LlamaIndex là framework mã nguồn mở giúp tải, lập chỉ mục và truy xuất dữ liệu riêng tư cho LLM, hỗ trợ các pipeline RAG và agent tài liệu.
LlamaIndex là framework mã nguồn mở giúp kết nối model ngôn ngữ lớn (LLM) với dữ liệu riêng tư: framework này tải tài liệu, cơ sở dữ liệu và API, lập chỉ mục nội dung rồi truy xuất các đoạn văn bản mà model cần để trả lời câu hỏi. Hầu hết ứng dụng xây dựng bằng framework này sử dụng tạo sinh tăng cường truy xuất (RAG), chẳng hạn trợ lý trả lời dựa trên sổ tay, hợp đồng hoặc phiếu yêu cầu của công ty, và agent AI đọc cũng như thao tác với tài liệu. Jerry Liu phát hành dự án với tên GPT Index vào tháng 11 năm 2022 và đổi tên thành LlamaIndex vào tháng 2 năm 2023. Framework LlamaIndex có phiên bản Python và TypeScript; công ty này cũng vận hành LlamaParse, một dịch vụ lưu trữ chuyển PDF, bảng và slide phức tạp thành văn bản dễ lập chỉ mục.
LlamaIndex hoạt động như thế nào#
Ứng dụng LlamaIndex gồm hai giai đoạn. Quá trình nạp dữ liệu chạy một lần cho mỗi lần cập nhật dữ liệu: các connector từ LlamaHub tải tệp và dịch vụ thành đối tượng Document, bộ phân tích node chia từng đối tượng thành các đoạn gọi là Node, rồi model embedding chuyển mỗi Node thành vector—embedding của Node—được lưu trong chỉ mục. Truy vấn chạy cho mỗi câu hỏi: bộ truy xuất tìm các Node gần với câu hỏi nhất, bộ hậu xử lý như bộ xếp hạng lại sắp xếp lại hoặc lọc chúng, rồi bộ tổng hợp phản hồi đặt các Node còn lại vào cửa sổ ngữ cảnh của LLM kèm hướng dẫn trả lời dựa trên nội dung đó.
VectorStoreIndex là loại mặc định, lưu embedding trong bộ nhớ hoặc trong cơ sở dữ liệu vector bên ngoài. Các loại chỉ mục khác gửi từng đoạn cho model để tạo bản tóm tắt, xây dựng đồ thị tri thức gồm thực thể và quan hệ cho truy vấn theo kiểu GraphRAG, hoặc đối sánh từ khóa. Bộ máy truy vấn trả lời một câu hỏi đơn lẻ, bộ máy trò chuyện duy trì cuộc hội thoại, còn Workflows—lớp điều phối dựa trên sự kiện của LlamaIndex—kết nối truy xuất, công cụ và nhiều agent thành các hệ thống RAG agentic có khả năng quyết định cần tìm kiếm gì và khi nào.
Lập chỉ mục ảnh theo nội dung bên trong#
Có thể truy xuất mọi nội dung biểu diễn được dưới dạng văn bản. Chạy Ultralytics YOLO26 trên một bộ sưu tập ảnh sẽ chuyển mỗi ảnh thành mô tả có thể tìm kiếm: Results.verbose() trả về số lượng từng lớp từ kết quả của chế độ predict dưới dạng một chuỗi ngắn; chuỗi này trở thành Document, trong đó metadata lưu URL ảnh. Sau đó, model embedding Hugging Face chạy cục bộ cho phép sử dụng chỉ mục mà không cần API key:
from llama_index.core import Document, Settings, VectorStoreIndex
from llama_index.embeddings.huggingface import HuggingFaceEmbedding
from ultralytics import YOLO
Settings.embed_model = HuggingFaceEmbedding(model_name="BAAI/bge-small-en-v1.5")
model = YOLO("yolo26n.pt")
# Describe each image by its detections; the URL stays in metadata and out of the embedding
docs = []
for url in ["https://ultralytics.com/images/bus.jpg", "https://ultralytics.com/images/zidane.jpg"]:
results = model(url)
text = f"A photo containing {results[0].verbose()}"
docs.append(Document(text=text, metadata={"image": url}, excluded_embed_metadata_keys=["image"]))
# Index the descriptions, then retrieve the image that best matches a question
index = VectorStoreIndex.from_documents(docs)
retriever = index.as_retriever(similarity_top_k=1)
nodes = retriever.retrieve("Which photo shows a bus?")
print(nodes[0].node.metadata["image"], round(nodes[0].score, 3))Bộ truy xuất trả về ảnh xe buýt cùng điểm độ tương đồng cosine, tìm thấy thông qua mô tả của bộ phát hiện chứ không phải tên tệp. Thêm bộ tổng hợp phản hồi sẽ giúp trả lời bằng văn xuôi các câu hỏi về bộ sưu tập; đây là mẫu dùng trong các hệ thống RAG đa phương thức kết hợp thị giác máy tính với tìm kiếm tài liệu.
LlamaIndex và các công cụ liên quan#
- LangChain: Framework tổng quát cho ứng dụng và agent LLM, với nhiều tích hợp. Hiện cả hai dự án đều hỗ trợ truy xuất và agent; LlamaIndex chuyên sâu hơn về nạp dữ liệu, phân tích cú pháp và các loại chỉ mục, còn các nhóm thường dùng bộ truy xuất của LlamaIndex bên trong agent LangChain hoặc LangGraph.
- Cơ sở dữ liệu vector: Lưu vector và thực hiện tìm kiếm vector. LlamaIndex hoạt động ở lớp phía trên, quyết định cách phân tích cú pháp, chia đoạn, tạo embedding và truy xuất tài liệu, cũng như cách chuyển tài liệu cho model; framework này hỗ trợ hàng chục hệ lưu trữ vector làm backend.
- Tìm kiếm ngữ nghĩa: Riêng bước truy xuất. LlamaIndex bổ sung khả năng tạo sinh để kết quả được trả về dưới dạng câu trả lời kèm các Node nguồn làm trích dẫn.










