สร้าง AI Agent วิเคราะห์ยอดขายอี-คอมเมิร์ซด้วย Ollama + LangGraph สำหรับ SME ไทย
ปลดล็อกข้อมูลยอดขายของคุณอย่างปลอดภัย ด้วยการสร้าง AI Agent วิเคราะห์แนวโน้มบนเครื่อง (On-Premise) โดยใช้ Ollama และ LangGraph ไม่ต้องส่งข้อมูลลูกค้าขึ้น Cloud อีกต่อไป
สารบัญ
เคยไหมที่นั่งดู Excel ยอดขายยาวเป็นหางว่าว แล้วรู้สึกว่าตัวเองมีข้อมูลอยู่ในมือเต็ม แต่กลับตอบคำถามง่ายๆ อย่าง "สินค้าไหนกำลังมาแรง?" หรือ "ทำไมยอดขายสัปดาห์นี้ตก?" ไม่ได้?
สำหรับ SME ไทยหลายคน การวิเคราะห์ข้อมูล (Data Analysis) ดูเหมือนจะเป็นเรื่องของบริษัทใหญ่ที่มีทีม Data Scientist แต่ในความเป็นจริง ปัจจุบันเราสามารถใช้ AI ช่วยวิเคราะห์ได้แล้ว ปัญหาคือการส่งข้อมูลยอดขายหรือข้อมูลลูกค้าขึ้นไปบน Cloud AI (เช่น ChatGPT) อาจมีความเสี่ยงด้านความเป็นส่วนตัวของข้อมูล (Data Privacy) และค่าใช้จ่ายที่ทยอยขึ้นตามการใช้งาน
วันนี้เราจะมาเปลี่ยนวิธีเล่นกัน ด้วยการสร้าง AI Agent ที่ช่วยวิเคราะห์แนวโน้มยอดขายอี-คอมเมิร์ซ โดยรันบนเครื่องของเราเอง (On-Premise) ด้วยความแรงของ Ollama และความฉลาดของ LangGraph แบบ 100% ปลอดภัย ไม่มีข้อมูลรั่วไหล
ทำไม SME ไทยต้องรัน AI บนเครื่อง (On-Premise)?
ก่อนจะลงลึกเรื่องโค้ด ขอเล่าเหตุผลจริงใจว่าทำไมการรัน AI บนเครื่อง (On-Premise) ถึงเหมาะกับธุรกิจขนาดเล็กถึงกลางในไทย
- ความปลอดภัยของข้อมูล (Data Privacy): ข้อมูลยอดขาย ชื่อลูกค้า หรือต้นทุนสินค้า คือสมองของธุรกิจ การรันโมเดลในเครื่องของเราเอง หมายความว่าข้อมูลเหล่านี้จะไม่เดินทางออกไปยังเซิร์ฟเวอร์ของคนอื่นเลย
- ควบคุมค่าใช้จ่ายได้: การเรียก API ของ LLM บน Cloud นั้นคิดเงินเป็น Token ถ้าคุณมีข้อมูลหลายหมื่นแถว ค่าใช้จ่ายอาจพุ่งได้ แต่ถ้ารันในเครื่อง ค่าใช้จ่ายหลักคือค่าไฟและฮาร์ดแวร์ที่คุณมีอยู่แล้ว
- ทำงานได้แม้ออฟไลน์: อยู่ที่ไหนก็วิเคราะห์ข้อมูลได้ ไม่ต้องห่วงเรื่องสัญญาณอินเทอร์เน็ต
เครื่องมือที่เราจะใช้: Ollama และ LangGraph
เราจะใช้พลังของ 2 เครื่องมือหลักที่กำลังเป็นที่นิยมในวงการ Developer
Ollama
เป็นเครื่องมือที่ช่วยให้เรารัน Large Language Model (LLM) บนเครื่องคอมพิวเตอร์ของเราได้ง่ายๆ เหมือนรัน Docker โดยรองรับโมเดลยอดนิยมเช่น Llama 3, Mistral หรือ Qwen ซึ่งเราสามารถเลือกโมเดลที่เหมาะกับสเปคเครื่องของเราได้
LangGraph
หากใครเคยใช้ LangChain ก็จะคุ้นเคยกับแนวคิดการเชื่อมต่อเครื่องมือต่างๆ แต่ LangGraph คือการยกระดับขึ้นไปอีก โดยเปลี่ยน AI จากแค่ "ผู้ตอบคำถาม" ให้กลายเป็น "Agent" ที่มีหน่วยความจำ (State) และสามารถตัดสินใจวนลูปทำงาน (Cyclic Workflow) ได้เองตามเงื่อนไข
เริ่มต้นสร้าง AI Agent วิเคราะห์ยอดขาย
มาดูขั้นตอนการสร้างกันเลย โครงสร้างของ Agent เราจะแบ่งเป็น 3 ส่วนหลักคือ:
- Data Loader: โหลดไฟล์ CSV ยอดขาย
- Analyzer: ส่งข้อมูลให้ LLM วิเคราะห์แนวโน้ม
- Reporter: สรุปผลออกมาเป็นภาษาที่มนุษย์อ่านเข้าใจ
ขั้นตอนที่ 1: ติดตั้ง Ollama และโมเดล
ก่อนอื่นดาวน์โหลดและติดตั้ง Ollama จากเว็บไซต์หลัก เมื่อติดตั้งเรียบร้อยให้เปิด Terminal แล้วพิมพ์คำสั่งดาวน์โหลดโมเดล (แนะนำ Qwen 2.5 หรือ Llama 3 สำหรับงานวิเคราะห์ข้อมูลเบื้องต้น):
ollama pull qwen2.5
ขั้นตอนที่ 2: เตรียมไฟล์ข้อมูลยอดขาย (CSV)
สมมติว่าเรามีไฟล์ sales_data.csv ที่เก็บยอดขายจากแพลตฟอร์มอี-คอมเมิร์ซ มีหัวข้อประมาณนี้:
order_id,date,product_name,category,quantity,price,customer_region
1001,2023-10-01,เสื้อยืดสกรีน,เสื้อผ้า,2,350,กรุงเทพฯ
1002,2023-10-01,รองเท้าผ้าใบ,เสื้อผ้า,1,1200,เชียงใหม่
1003,2023-10-02,เสื้อยืดสกรีน,เสื้อผ้า,1,350,กรุงเทพฯ
ขั้นตอนที่ 3: เขียนโค้ด Python ด้วย LangGraph
ติดตั้งไลบรารีที่จำเป็นก่อน:
pip install langchain langgraph ollama pandas
จากนั้นสร้างไฟล์ agent.py แล้วเขียนโค้ดดังนี้:
import pandas as pd
from typing import TypedDict, List
from langgraph.graph import StateGraph, END
from langchain_community.chat_models import ChatOllama
from langchain_core.prompts import ChatPromptTemplate
# 1. กำหนด State ของ Agent (หน่วยความจำระหว่างทำงาน)
class AgentState(TypedDict):
raw_data: str
analysis_result: str
final_report: str
# 2. ตั้งค่า LLM ผ่าน Ollama
llm = ChatOllama(model="qwen2.5", temperature=0.3)
# 3. สร้างฟังก์ชัน Node สำหรับวิเคราะห์ข้อมูล
def analyze_data(state: AgentState):
print("--- กำลังวิเคราะห์ข้อมูล ---")
prompt = ChatPromptTemplate.from_messages([
("system", "คุณเป็น AI ผู้เชี่ยวชาญด้านการวิเคราะห์ยอดขายอี-คอมเมิร์ซ กรุณาวิเคราะห์ข้อมูลต่อไปนี้และบอกแนวโน้ม สินค้าขายดี และข้อสังเกต"),
("human", "ข้อมูลยอดขาย:\n{data}")
])
chain = prompt | llm
response = chain.invoke({"data": state['raw_data']})
return {"analysis_result": response.content}
# 4. สร้างฟังก์ชัน Node สำหรับทำรายงานสรุป
def generate_report(state: AgentState):
print("--- กำลังสร้างรายงานสรุป ---")
prompt = ChatPromptTemplate.from_messages([
("system", "จากข้อมูลวิเคราะห์ที่ได้ กรุณาทำสรุปเป็น Bullet points ให้เจ้าของร้าน SME อ่านแล้วเข้าใจง่าย พร้อมแนะนำการตลาด 1 ข้อ"),
("human", "{analysis}")
])
chain = prompt | llm
response = chain.invoke({"analysis": state['analysis_result']})
return {"final_report": response.content}
# 5. สร้าง Graph เชื่อม Node เข้าด้วยกัน
workflow = StateGraph(AgentState)
workflow.add_node("analyzer", analyze_data)
workflow.add_node("reporter", generate_report)
workflow.set_entry_point("analyzer")
workflow.add_edge("analyzer", "reporter")
workflow.add_edge("reporter", END)
app = workflow.compile()
# 6. รัน Agent
if __name__ == "__main__":
# อ่านไฟล์ CSV (ในที่นี้จำลองการอ่านข้อมูลมาเก็บใน string)
df = pd.read_csv('sales_data.csv')
# ตัดข้อมูลให้พอดีกับ Context Window ของโมเดล (สมมติเอา 50 แถวล่าสุดมาวิเคราะห์)
data_str = df.tail(50).to_string()
inputs = {"raw_data": data_str}
# เริ่มทำงาน
result = app.invoke(inputs)
print("\n=== รายงานสรุปยอดขายจาก AI Agent ===")
print(result['final_report'])
กรณีศึกษา: ร้านเสื้อผ้าออนไลน์ "ไทยสมัยใหม่"
สมมติว่าร้านหนึ่งนำโค้ดนี้ไปใช้กับไฟล์ยอดขายสัปดาห์ที่ผ่านมา ซึ่งมียอดขายรวมตกลง 20% เมื่อเทียบกับสัปดาห์ก่อนหน้า
เมื่อรัน Agent นี้ AI จะทำงานใน 2 ขั้นตอน ขั้นแรกมันจะอ่านข้อมูลและพบว่า "ยอดขายเสื้อยืดสกรีนในกรุงเทพฯ ตกลง แต่รองเท้าผ้าใบในภูมิภาคขายดีขึ้น" จากนั้นในขั้นตอน Reporter มันจะสรุปออกมาเป็นภาษาที่นักการตลาดเข้าใจ เช่น:
- สินค้าเด่นประจำสัปดาห์: รองเท้าผ้าใบ (โต 15% ในกลุ่มภูมิภาค)
- จุดที่ต้องระวัง: ยอดสั่งซื้อเสื้อยืดในกรุงเทพฯ ลดลงผิดปกติ
- คำแนะนำการตลาด: ควรลองทำแคมเปญจัดส่งฟรีสำหรับเสื้อยืดในเขตกรุงเทพฯ เพื่อกระตุ้นยอดขายในสัปดาห์หน้า
สิ่งที่ธุรกิจได้คือ "ข้อเสนอแนะที่นำไปใช้ได้จริง" (Actionable Insight) โดยไม่ต้องจ้างนักวิเคราะห์ข้อมูลมานั่งดู Excel ทั้งวัน
เทคนิคเพิ่มเติมสำหรับการทำงานจริง
- จัดการ Context Window: ถ้าไฟล์ CSV มีหลักพันแถว อย่าส่งเข้า LLM ทั้งหมด ให้ใช้ Pandas ทำการ Aggregate ข้อมูลก่อน (เช่น หายอดรวมแยกตามจังหวัด หรือสินค้า) แล้วค่อยส่งตัวเลขสรุปเข้า AI
- ใช้โมเดลที่เหมาะสม: ถ้าเครื่องคุณมี RAM 16GB ขึ้นไป ลองใช้
llama3.1:8bแต่ถ้าเครื่องไม่แรงqwen2.5:3bหรือphi3ก็ทำงานได้ดีในระดับประหยัด - เพิ่ม Tool ให้ Agent: ในอนาคตคุณสามารถเพิ่ม Node ให้ AI เรียกฐานข้อมูล SQL หรือดึงข้อมูลจาก API ของ Shopee/Lazada ได้โดยตรงผ่าน LangGraph
สรุป
การสร้าง AI Agent ไม่ใช่เรื่องเฉพาะของบริษัทเทคโนโลยีระดับโลกอีกต่อไป ด้วย Ollama และ LangGraph ทำให้ SME ไทยสามารถมีผู้ช่วยวิเคราะห์ข้อมูลส่วนตัวได้ฟรี ปลอดภัย และทำงานได้แบบอัตโนมัติ
ลองก๊อปปี้โค้ดนี้ไปรันบนเครื่องของคุณดูสิ แล้วลองปรับ Prompt ให้เข้ากับธุรกิจของคุณ ถ้าใครทำสำเร็จหรือมีไอเดียเจ๋งๆ ในการต่อยอด Agent นี้ อย่าลืมมาแชร์กันในคอมเมนต์นะครับ ขอให้สนุกกับการเขียนโค้ดและทำธุรกิจให้โตไปด้วยกัน!
เนื้อหาที่จัดทำโดยมี AI ช่วยจะมีป้ายกำกับ "เรียบเรียงโดยมี AI ช่วย" เพื่อให้คุณทราบอย่างชัดเจน เราถือว่าความโปร่งใสเรื่องการใช้ AI เป็นสิ่งสำคัญต่อความไว้วางใจของผู้อ่าน
ความคิดเห็น (0)
ยังไม่มีความคิดเห็น — มาเป็นคนแรกกันเถอะ!