Cách làm RAG với Ollama

Cách làm RAG với Ollama

À bạn đang quan tâm tới RAG (Retrieval-Augmented Generation) chạy cùng Ollama.
Nói đơn giản: thay vì để model (như llama3, mistral, gpt-oss-20b) “tự nghĩ”, ta tiếp sức bằng dữ liệu riêng (document, PDF, website…) → AI sẽ trả lời chính xác hơn.


Cách làm RAG với Ollama

1. Ý tưởng

  • Ollama chỉ lo phần sinh văn bản (LLM).
  • Ta cần thêm công cụ Vector Database / Embeddings để lưu & tìm kiếm dữ liệu.
  • Quy trình RAG:
    1. Nhập dữ liệu (PDF, TXT, website…).
    2. Cắt nhỏ (chunk) văn bản.
    3. Sinh embeddings (vector).
    4. Lưu vào Vector DB (FAISS, Chroma, Weaviate…).
    5. Khi có câu hỏi → tìm đoạn văn phù hợp → đưa vào prompt cho model trong Ollama → sinh câu trả lời.

2. Setup cơ bản bằng Python

Ví dụ dùng LangChain + Ollama + Chroma:

from langchain_community.llms import Ollama
from langchain_community.embeddings import OllamaEmbeddings
from langchain_community.vectorstores import Chroma
from langchain.text_splitter import CharacterTextSplitter
from langchain.chains import RetrievalQA
from langchain.docstore.document import Document

# 1. Model Ollama (llama3 hoặc mistral)
llm = Ollama(model="llama3")

# 2. Embeddings từ Ollama
embeddings = OllamaEmbeddings(model="llama3")

# 3. Chuẩn bị dữ liệu
docs = [
    Document(page_content="ChatGPT là một mô hình ngôn ngữ lớn của OpenAI."),
    Document(page_content="Ollama cho phép chạy LLM local như LLaMA, Mistral, Gemma...")
]

# 4. Chia nhỏ văn bản
text_splitter = CharacterTextSplitter(chunk_size=200, chunk_overlap=50)
split_docs = text_splitter.split_documents(docs)

# 5. Tạo Vector DB
db = Chroma.from_documents(split_docs, embeddings)

# 6. Tạo RAG pipeline
qa = RetrievalQA.from_chain_type(
    llm=llm,
    retriever=db.as_retriever()
)

# 7. Đặt câu hỏi
query = "Ollama dùng để làm gì?"
print(qa.run(query))

Lúc này Ollama sẽ trả lời dựa trên dữ liệu bạn cung cấp, thay vì chỉ suy đoán.


3. Công cụ hỗ trợ RAG với Ollama

  • LangChain – dễ tích hợp (Python, JS).
  • LlamaIndex – chuyên cho RAG (mạnh khi build app).
  • Chroma / FAISS – vector database nhẹ, chạy local.
  • Weaviate, Pinecone – vector DB cloud, mạnh mẽ hơn.

4. Chạy thử nhanh CLI (chưa cần code)

Ollama hỗ trợ “system prompt”, bạn có thể làm RAG thủ công kiểu:

ollama run llama3 "Trả lời dựa trên thông tin sau: 
1. ChatGPT là AI của OpenAI.
2. Ollama chạy LLM local.
Hỏi: Ollama là gì?"

✅ Vậy là bạn có thể biến Ollama + LangChain thành một trợ lý RAG AI local để đọc tài liệu của riêng bạn.

Bạn có muốn mình làm ví dụ RAG đọc file PDF sách rồi cho Ollama trả lời câu hỏi dựa vào nội dung PDF không?

À bạn đang quan tâm tới RAG (Retrieval-Augmented Generation) chạy cùng Ollama. Nói đơn giản: thay vì để model (như…