สร้างระบบแนะนำสินค้าในอีคอมเมิร์ซด้วย LangChain, Ollama และ Open-source Embedding แบบ Local
บทความนี้จะสอนวิธีสร้างระบบแนะนำสินค้าอัจฉริยะสำหรับเว็บไซต์อีคอมเมิร์ซของคุณ
โดยใช้ LangChain, Ollama (รัน LLM ในเครื่อง) และ Embedding แบบโอเพ่นซอร์ส
ทุกอย่างรันได้ในเครื่องหรือเซิร์ฟเวอร์ส่วนตัว ไม่ต้องส่งข้อมูลลูกค้าไปที่ Cloud หรือ API ใด ๆ
ทำไมต้องใช้แนวทางนี้?
- ข้อมูลลูกค้าปลอดภัย ไม่ต้องส่งออกนอกบริษัท
- ไม่มีค่าใช้จ่าย API
- ใช้โมเดล LLM แบบโอเพ่นซอร์ส (Llama 3, Mistral ฯลฯ) ได้ทันที
- ยืดหยุ่น: ปรับใช้กับแค็ตตาล็อกสินค้า, FAQ, Knowledge base อะไรก็ได้
ภาพรวมโซลูชัน
ระบบนี้ประกอบด้วย 3 ส่วนหลัก:
- SentenceTransformers สำหรับสร้าง embedding (เวกเตอร์) สินค้า
- Chroma สำหรับ vector search แบบ local
- Ollama รัน LLM (Llama 3, Mistral ฯลฯ) ในเครื่อง/เซิร์ฟเวอร์
แผนภาพ Data Flow
flowchart TD
U["User Query<br/>(ตัวอย่าง: 'รองเท้าวิ่งกันน้ำสำหรับผู้หญิง')"]
Q["LangChain<br/>Similarity Search"]
V["Chroma Vector Store<br/>+ Embeddings"]
P["Product Data<br/>(JSON, CSV, DB)"]
R["Relevant Products"]
LLM["Ollama LLM<br/>(Llama 3, Mistral ฯลฯ)"]
A["ผลแนะนำสุดท้าย<br/>(Chatbot ตอบกลับ)"]
U --> Q
Q --> V
V -->|Top Matches| R
R --> LLM
LLM --> A
P --> V
อธิบาย:
- ผู้ใช้ กรอกคำค้นหา (ธรรมชาติ)
- LangChain จะค้นหาสินค้าที่เกี่ยวข้องมากที่สุดด้วย Embedding และ Chroma
- สินค้าที่ได้จะถูกส่งต่อให้ LLM (Ollama) เพื่อสร้างข้อความแนะนำที่เป็นธรรมชาติ
ขั้นตอนการสร้างระบบ
1. เตรียมข้อมูลสินค้า
แนะนำให้อยู่ในรูปแบบ JSON เช่น
[
{
"id": "1",
"name": "Nike Pegasus 39",
"description": "รองเท้าวิ่งกันน้ำสำหรับผู้หญิง",
"category": "Running Shoes",
"tags": ["กันน้ำ", "วิ่ง", "ผู้หญิง"]
}
]
2. ติดตั้งไลบรารีที่จำเป็น
pip install langchain-community langchain-core chromadb sentence-transformers ollama
และติดตั้ง Ollama พร้อมโมเดลที่ต้องการ (เช่น ollama pull llama3
)
3. ตัวอย่างโค้ด Python
from langchain_community.llms import Ollama
from langchain_community.vectorstores import Chroma
from langchain_community.embeddings import SentenceTransformerEmbeddings
import json
# โหลดข้อมูลสินค้า
with open('products.json', encoding='utf-8') as f:
products = json.load(f)
texts = [p['description'] for p in products]
metadatas = [{"id": p["id"], "name": p["name"], "category": p["category"], "tags": p["tags"]} for p in products]
# สร้าง embedding
embeddings = SentenceTransformerEmbeddings(model_name="all-MiniLM-L6-v2")
# สร้าง vector store
vectorstore = Chroma.from_texts(texts, embeddings, metadatas=metadatas)
# ค้นหาสินค้า
query = "รองเท้าวิ่งกันน้ำสำหรับผู้หญิง"
results = vectorstore.similarity_search(query, k=2)
print("สินค้าแนะนำ:")
for r in results:
print("-", r.metadata['name'], "|", r.page_content)
# ใช้ LLM (Ollama) สร้างข้อความแนะนำ
llm = Ollama(model="llama3")
context = "\n".join([f"{r.metadata['name']}: {r.page_content}" for r in results])
user_question = f"จากสินค้าที่พบนี้ คุณจะแนะนำชิ้นไหนสำหรับผู้หญิงที่ต้องการรองเท้าวิ่งกันน้ำ?\n\n{context}"
response = llm.invoke(user_question)
print("\nChatbot ตอบกลับ:")
print(response)
วิธีการทำงาน
- Semantic Search: ระบบจะค้นหาด้วยความหมาย ไม่ใช่แค่คีย์เวิร์ด
- Chroma Vector DB: ค้นหา similarity ได้เร็วและแม่นยำในเครื่อง
- Ollama LLM: สร้างคำตอบหรือคำแนะนำในรูปแบบภาษาคนจริง ๆ
ต่อไปนี้คุณสามารถ...
- เพิ่มฟีลด์ metadata เพื่อคำแนะนำที่ละเอียดขึ้น
- เชื่อมกับหน้าแชท/หน้าเว็บของคุณ
- ทดลองเปลี่ยน LLM ใน Ollama ได้หลายแบบ เช่น Mistral, Phi, Gemma ฯลฯ
พร้อมจะยกระดับระบบแนะนำสินค้าแบบไม่ต้องพึ่ง Cloud หรือ API ภายนอกแล้วหรือยัง?
ลองใช้โซลูชันนี้เลยครับ ทั้งฟรี ปลอดภัย และควบคุมได้เอง 100%!
หากมีคำถามหรืออยากเพิ่มฟีเจอร์อื่น ๆ ติดต่อได้เลยครับ
Get in Touch with us
Related Posts
- คู่มือปี 2025: เปรียบเทียบเฟรมเวิร์กสร้างแอปมือถือยอดนิยม (Flutter, React Native, Expo, Ionic และอื่น ๆ)
- เข้าใจการใช้ `np.meshgrid()` ใน NumPy: ทำไมถึงจำเป็น และจะเกิดอะไรขึ้นถ้าสลับลำดับ?
- วิธีใช้ PyMeasure เพื่อควบคุมเครื่องมือวัดและทดลองในห้องแล็บโดยอัตโนมัติ
- ยกระดับแชทบอทของคุณด้วยบริการเชื่อมต่อ API กับระบบธุรกิจ
- เดา “สมการ” โดยไม่ต้องใช้คณิตศาสตร์: สำรวจความสัมพันธ์ระหว่างแมวกับนก
- วิธีสร้างโปรเจกต์ที่ทนทานต่อ AI: ไอเดียที่เน้นการปฏิสัมพันธ์ของมนุษย์
- สร้างห้องทดลองความปลอดภัยไซเบอร์ด้วย GNS3 + Wazuh + Docker ฝึก ตรวจจับ และป้องกันภัยคุกคามในระบบเดียว
- วิธีจำลองและฝึกฝนการตั้งค่าอุปกรณ์เครือข่ายด้วย GNS3
- LMS คืออะไร? และทำไมคุณควรรู้จัก Frappe LMS
- Agentic AI ในโรงงานอุตสาหกรรม: ระบบที่คิดเอง ปรับตัวเอง และทำงานได้อัตโนมัติ
- ควบคุมยานยนต์ไฟฟ้าได้อย่างชาญฉลาด ปลอดภัย และทันสมัย ด้วยระบบ Geo-Fencing และติดตามแบบเรียลไทม์
- วิธีเชื่อมต่อระบบ Single Sign-On (SSO) ด้วย Google OAuth ใน FastAPI
- สร้างแอปจองแท็กซี่ของคุณเองกับ Simplico: ปลอดภัย ขยายได้ และพร้อมเปิดตัวทันที
- วางระบบ Backend สำหรับสถานีชาร์จ EV ที่พร้อมขยายตัว — ออกแบบโดย Simplico
- วิธีจัดการราคาซับซ้อนสำหรับสินค้าสั่งทำพิเศษ (Made-to-Order) ใน Odoo
- วิธีสร้างระบบสั่งผลิตสินค้าเฉพาะลูกค้า (Made-to-Order) เพื่อเพิ่มยอดขายและความพึงพอใจ
- ปรับธุรกิจให้ฉลาดขึ้นด้วย Agentic AI อัตโนมัติเต็มรูปแบบ
- จัดการเครื่องทดสอบใยแก้วนำแสง EXFO อย่างง่าย ด้วยระบบ Admin Panel น้ำหนักเบา
- ยกระดับความพร้อมปฏิบัติการทางเรือ ด้วยการจำลอง EMI: ลดความเสี่ยงอย่างคุ้มค่า ด้วย MEEP และ Python
- เสริมความมั่นคงปลอดภัยทางไซเบอร์ด้วย Wazuh: ระบบ SIEM แบบโอเพ่นซอร์สที่ปรับขนาดได้และคุ้มค่า