0Pricing
AI Agents · บทเรียน

การสร้าง RAG แบบง่ายด้วย FAISS หรือ Chroma

เขียน Python 40 บรรทัดเพื่อสร้าง Embedding ของคำค้น ค้นหาส่วนที่ใกล้ที่สุด K อันดับแรก ใส่ลงในพรอมต์ และถาม LLM

การสร้าง RAG แบบง่ายด้วย FAISS หรือ Chroma เป็นบทเรียน AI Agents ฟรีบน CoddyKit นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน AI Agents และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส AI Agents มีบทเรียนทั้งหมด 4 บทเรียน

บางส่วนของบทเรียนนี้ยังไม่ได้รับการแปล และแสดงเป็นภาษาอังกฤษ

RAG 40 บรรทัด

ตอนนี้คุณมีองค์ประกอบทั้งหมดแล้ว เราจะประกอบองค์ประกอบเหล่านั้นเป็น RAG แบบง่ายที่ทำงานได้บนชุดเอกสารขนาดเล็ก

Step 1: Install

# pip install openai chromadb

Step 2: Sample Corpus

docs = [
    'Python is a high-level interpreted programming language created by Guido van Rossum in 1991.',
    'Pizza is a savory dish of Italian origin consisting of a round flat base of dough.',
    'The Eiffel Tower is a wrought-iron lattice tower in Paris, France, completed in 1889.',
    'NumPy is a Python library used for working with arrays and numerical computing.',
    'The Great Wall of China is a series of fortifications built across northern China.'
]
print(f"Loaded {len(docs)} documents")
for i, d in enumerate(docs):
    print(f"{i+1}. {d[:50]}...")

Step 3: Set Up Chroma

import chromadb
from openai import OpenAI

client = chromadb.Client()
collection = client.create_collection('demo')
openai_client = OpenAI()

Step 4: Embed and Store

embed_response = openai_client.embeddings.create(
    model='text-embedding-3-small',
    input=docs
)
vectors = [d.embedding for d in embed_response.data]

collection.add(
    ids=[f'd{i}' for i in range(len(docs))],
    embeddings=vectors,
    documents=docs
)

Step 5: Embed the Query

query = 'Tell me about Python programming'
query_vec = openai_client.embeddings.create(
    model='text-embedding-3-small',
    input=query
).data[0].embedding

Step 6: Retrieve Top-K

results = collection.query(
    query_embeddings=[query_vec],
    n_results=2
)
retrieved = results['documents'][0]
print(retrieved)
# ['Python is a high-level...', 'NumPy is a Python library...']

Step 7: Build the RAG Prompt

context = '\n'.join(f'- {chunk}' for chunk in retrieved)
prompt = f'''
Using only the context below, answer the question. If unknown, say so.

Context:
{context}

Question: {query}
'''

Step 8: Call the LLM

response = openai_client.chat.completions.create(
    model='gpt-4o-mini',
    messages=[{'role': 'user', 'content': prompt}],
    temperature=0,
)
print(response.choices[0].message.content)

ทางเลือกแทน FAISS

หากต้องการทำงานภายในเครื่องทั้งหมดโดยไม่มีเซิร์ฟเวอร์ฐานข้อมูล FAISS จะยิ่งง่ายกว่า:

import faiss
import numpy as np

index = faiss.IndexFlatIP(1536)  # inner product, normalised vectors
index.add(np.array(vectors).astype('float32'))

D, I = index.search(np.array([query_vec]).astype('float32'), k=2)
retrieved = [docs[i] for i in I[0]]

ข้อจำกัดของ RAG แบบง่ายนี้

  • ไม่มีการแบ่งเป็นส่วนย่อย — ใช้ได้เฉพาะกับเอกสารสั้น ๆ
  • ไม่มีการจัดอันดับใหม่
  • ไม่มีการกรองข้อมูลเมตา
  • ไม่มีการประเมิน

เราจะแก้ไขทั้งหมดนี้ในหลักสูตรถัด ๆ ไป

ต้นทุนต่อคำค้นหา

สำหรับคำค้นหาแต่ละรายการที่คุณส่ง:

  • การเรียกสร้างเวกเตอร์ฝังตัว 1 ครั้ง (ประมาณ 0.00002 ดอลลาร์)
  • การสร้างคำตอบสนทนา 1 ครั้งพร้อมบริบทประมาณ 500 โทเค็น (ประมาณ 0.0001 ดอลลาร์)

รวมแล้วประมาณหนึ่งในหนึ่งร้อยเซนต์ต่อคำถาม

นำไปใช้งานแล้วปรับปรุงต่อ

RAG ความยาวเพียง 40 บรรทัดนี้ทำได้ดีกว่าแชตบอตส่วนใหญ่ที่ไม่มีบริบทแล้ว สำหรับการถาม-ตอบข้อเท็จจริงจากข้อมูลของคุณ นำไปใช้งานจริง คอยดูว่าผู้ใช้ทำให้ระบบล้มเหลวอย่างไร แล้วค่อยเพิ่มเทคนิคขั้นสูงในจุดที่จำเป็นที่สุด

Top-K ของ RAG แบบพื้นฐาน

การดึงข้อมูลแบบ "top-K" หมายถึงอะไร

สรุปทบทวน

คุณสร้าง RAG แล้ว ต่อไปเราจะดูฐานข้อมูลเวกเตอร์ที่ขยายระบบนี้ให้รองรับได้มากกว่าแล็ปท็อปเครื่องเดียว

คำถามที่พบบ่อย

บทเรียน “การสร้าง RAG แบบง่ายด้วย FAISS หรือ Chroma” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “การสร้าง RAG แบบง่ายด้วย FAISS หรือ Chroma” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส AI Agents ให้อัปเกรดเป็น CoddyKit PRO คอร์ส AI Agents มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “การสร้าง RAG แบบง่ายด้วย FAISS หรือ Chroma”

เขียน Python 40 บรรทัดเพื่อสร้าง Embedding ของคำค้น ค้นหาส่วนที่ใกล้ที่สุด K อันดับแรก ใส่ลงในพรอมต์ และถาม LLM คุณปฏิบัติ AI Agents ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน AI Agents หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน AI Agents บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน

บทเรียน “การสร้าง RAG แบบง่ายด้วย FAISS หรือ Chroma” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน AI Agents นี้ได้ไหม

ได้ บทเรียน AI Agents ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. RAG แก้ปัญหาอะไร (จุดตัดความรู้ ภาพหลอน)
  2. กลยุทธ์การแบ่งเป็นส่วน (คงที่ ประโยค เชิงความหมาย)
  3. การสร้างดัชนีชุดเอกสาร
  4. การสร้าง RAG แบบง่ายด้วย FAISS หรือ Chroma
← กลับไปที่ AI Agents