
ลองเล่น Deepseek-R1 และสร้าง AI Agent ด้วย Langgraph
ในบทความนี้เราจะมาทดลองสร้าง AI Agent ที่สามารถโต้ตอบกับฐานข้อมูล SQLite โดยใช้ Deepseek-R1 ซึ่งเป็น Open Source Language Model ร่วมกับ Langgraph ซึ่งเป็นเครื่องมือสำหรับสร้าง AI workflows แบบใหม่จาก LangChain โครงสร้างของโปรเจค โปรเจคของเราประกอบด้วยไฟล์หลัก 2 ไฟล์: setup.py - สำหรับสร้างและจัดการฐานข้อมูล SQLite agent.py - สำหรับสร้าง AI Agent ที่จะโต้ตอบกับฐานข้อมูล การสร้างฐานข้อมูล เริ่มต้นจาก setup.py ที่ใช้สร้างฐานข้อมูลสินค้าตัวอย่าง โดยมีตาราง products ที่เก็บข้อมูลต่างๆ เช่น: id (PRIMARY KEY) name price category stock description last_updated โค้ดส่วนนี้จะสร้างฐานข้อมูลพร้อมข้อมูลตัวอย่างกว่า 100 รายการ แบ่งเป็นหมวดหมู่ต่างๆ เช่น Smartphones, Laptops, TVs, Audio เป็นต้น # setup.py import sqlite3 import os from datetime import datetime def init_database(): try: db_path = os.path.join(os.path.dirname(__file__), 'products.db') conn = sqlite3.connect(db_path) cursor = conn.cursor() cursor.execute('DROP TABLE IF EXISTS products') cursor.execute(''' CREATE TABLE IF NOT EXISTS products ( id INTEGER PRIMARY KEY, name TEXT NOT NULL, price REAL NOT NULL, category TEXT NOT NULL, stock INTEGER NOT NULL, description TEXT, last_updated TIMESTAMP DEFAULT CURRENT_TIMESTAMP ) ''') cursor.execute('CREATE INDEX IF NOT EXISTS idx_products_category ON products(category)') cursor.execute('CREATE INDEX IF NOT EXISTS idx_products_price ON products(price)') cursor.execute('CREATE INDEX IF NOT EXISTS idx_products_stock ON products(stock)') products_data = [ # Smartphones (1, 'iPhone 15 Pro Max', 48900.00, 'Smartphones', 45, '1TB storage, titanium finish'), (2, 'iPhone 15 Pro', 42900.00, 'Smartphones', 50, '256GB storage, A17 Pro chip'), (3, 'iPhone 15', 32900.00, 'Smartphones', 60, '128GB storage, A16 chip'), (4, 'Samsung Galaxy S24 Ultra', 45900.00, 'Smartphones', 40, '512GB storage, S Pen included'), (5, 'Samsung Galaxy S24+', 35900.00, 'Smartphones', 45, '256GB storage, AI features'), (6, 'Samsung Galaxy S24', 29900.00, 'Smartphones', 55, '128GB storage'), (7, 'Google Pixel 8 Pro', 35900.00, 'Smartphones', 35, 'Advanced AI camera features'), (8, 'Google Pixel 8', 27900.00, 'Smartphones', 40, 'Android flagship'), (9, 'OnePlus 12', 31900.00, 'Smartphones', 30, 'Snapdragon 8 Gen 3'), (10, 'Xiaomi 14 Pro', 29900.00, 'Smartphones', 40, 'Leica optics'), # Laptops (11, 'MacBook Pro 16"', 89900.00, 'Laptops', 25, 'M3 Max chip, 32GB RAM'), ........ ] cursor.executemany(''' INSERT OR REPLACE INTO products (id, name, price, category, stock, description) VALUES (?, ?, ?, ?, ?, ?) ''', products_data) conn.commit() print("Database initialized successfully!") return conn except sqlite3.Error as e: print(f"SQLite error: {e}") return None except Exception as e: print(f"Error: {e}") return None def main(): conn = init_database() if not conn: print("Failed to initialize database") return if __name__ == "__main__": main() เราสามารถสร้างฐานข้อมูลด้วยคำสั่ง: ...