เทคโนโลยีโดย milo อ่าน 6 นาทีเรียบเรียงโดยมี AI ช่วย

สร้าง AI Agent สนทนาภาษาไทยเรียลไทม์ด้วย Ollama และ Typhoon: คู่มือฉบับ Dev ไทย

อยากมี AI คุยภาษาไทยรู้เรื่องแถมรันได้บนเครื่องตัวเอง? บทความนี้พาคุณสร้าง AI Agent สนทนาแบบเรียลไทม์ด้วย Ollama และโมเดล Typhoon ตั้งค่าง่าย ฝึกสอนไม่ยาก พร้อมโค้ดตัวอย่าง

สารบัญ

เคยไหมที่ใช้ AI ช่วยงานแล้วรู้สึกว่ามันตอบภาษาไทยได้ดี แต่ขาดบริบทเฉพาะทางหรือความเป็นธุรกิจของเราไปสักนิด? หรือบางทีก็กังวลเรื่องความเป็นส่วนตัวของข้อมูลที่ต้องส่งไปบนคลาวด์ วันนี้เราจะมาแก้ปัญหานี้กันแบบตรงประเด็น ด้วยการสร้าง AI Agent สนทนาภาษาไทยแบบเรียลไทม์ที่รันบนเครื่องของเราเอง ด้วยพลังของ Ollama และโมเดล Typhoon ครับ

ทำไมต้อง Ollama และ Typhoon?

ถ้าพูดถึงการรันโมเดล AI ในเครื่อง (Local LLM) Ollama คือตัวเลือกที่ทำให้ชีวิตนักพัฒนาง่ายขึ้นมาก มันจัดการดาวน์โหลดและรันโมเดลให้เหมือนกับที่ Docker ทำกับคอนเทนเนอร์ ส่วน Typhoon คือตระกูลโมเดลภาษาที่พัฒนาโดยทีม SCB 10X ที่โดดเด่นมากในเรื่องความเข้าใจภาษาไทยและวัฒนธรรมในบริบทท้องถิ่น

การนำสองสิ่งนี้มาผสมกัน ทำให้เราได้ AI ที่คุยภาษาไทยได้ลื่นไหล ตอบสนองเร็ว และที่สำคัญคือข้อมูลไม่รั่วไหลออกไปไหน

เตรียมเครื่องมือให้พร้อม

ก่อนจะเริ่มเขียนโค้ด เรามาดูสเปกขั้นต่ำและเครื่องมือที่ต้องติดตั้งกันก่อนครับ

  • เครื่องคอมพิวเตอร์: แนะนำ RAM 16GB ขึ้นไป ถ้ามี GPU (เช่น NVIDIA หรือ Apple Silicon) จะช่วยให้ AI ตอบสนองไวขึ้นมาก
  • Ollama: ดาวน์โหลดและติดตั้งได้จากเว็บ ollama.com
  • Python: เวอร์ชัน 3.9 ขึ้นไป
  • IDE: VS Code หรืออะไรก็ได้ที่ถนัด

ดึงโมเดล Typhoon ลงเครื่อง

เมื่อติดตั้ง Ollama เรียบร้อยแล้ว ให้เปิด Terminal แล้พิมพ์คำสั่งดึงโมเดล Typhoon ลงมาเก็บในเครื่อง ในที่นี้เราจะใช้เวอร์ชันที่เหมาะกับงานสนทนาและมีขนาดไม่ใหญ่จนเกินไป

ollama pull scb10x/llama3.1-typhoon2-8b-instruct

รอจนดาวน์โหลดเสร็จ จากนั้นลองทดสอบคุยดูก่อนเพื่อดูว่าโมเดลทำงานปกติ

ollama run scb10x/llama3.1-typhoon2-8b-instruct "สวัสดีครับ แนะนำอาหารไทยมื้อเช้าหน่อย"

ถ้าได้คำตอบกลับมาเป็นภาษาไทยที่อ่านรู้เรื่อง แปลว่าเครื่องของคุณพร้อมแล้วครับ

เขียนโค้ดสร้าง AI Agent สนทนาแบบเรียลไทม์

ปกติเวลาเราคุยกับ AI มักจะรอจนกว่ามันจะพิมพ์ตอบจบทั้งข้อความถึงจะเห็นผล แต่งานนี้เราอยากได้แบบเรียลไทม์ (Streaming) คือพิมพ์ทีละตัวอักษรเหมือนคนแชทกัน ให้ติดตั้งไลบรารี ollama สำหรับ Python ก่อน

pip install ollama

จากนั้นสร้างไฟล์ chat_agent.py แล้วเขียนโค้ดดังนี้

import ollama

def chat_with_typhoon():
    print("🤖 Typhoon AI Agent พร้อมคุยแล้ว! (พิมพ์ 'ออก' เพื่อจบการสนทนา)")
    
    # เก็บประวัติการแชทเพื่อให้ AI จำบทสนทนาได้
    messages = [
        {
            "role": "system",
            "content": "คุณคือผู้ช่วย AI ที่เป็นมิตร ตอบคำถามสั้น กระชับ และเป็นภาษาไทยเสมอ"
        }
    ]

    while True:
        user_input = input("\n🧑 คุณ: ")
        if user_input.lower() == 'ออก':
            print("👋 แล้วเจอกันใหม่นะครับ")
            break

        messages.append({"role": "user", "content": user_input})

        print("🤖 Typhoon: ", end="", flush=True)
        
        # เรียกใช้ Ollama แบบ Stream
        try:
            response = ollama.chat(
                model='scb10x/llama3.1-typhoon2-8b-instruct',
                messages=messages,
                stream=True
            )
            
            full_response = ""
            for chunk in response:
                content = chunk['message']['content']
                print(content, end="", flush=True)
                full_response += content
            
            # เก็บคำตอบของ AI กลับเข้าไปในประวัติ
            messages.append({"role": "assistant", "content": full_response})
            print() # ขึ้นบรรทัดใหม่
            
        except Exception as e:
            print(f"\n[เกิดข้อผิดพลาด]: {e}")

if __name__ == "__main__":
    chat_with_typhoon()

ลองรันด้วยคำสั่ง python chat_agent.py คุณจะได้ AI ที่ตอบกลับทีละคำเหมือนคนแชทจริงๆ และยังจำบทสนทนาก่อนหน้าได้ด้วย

ฝึกสอน (Fine-tune) ให้ AI เข้าใจธุรกิจของเรา

การใส่ System Prompt ในโค้ดเป็นวิธีที่ง่ายที่สุด แต่ถ้าคุณต้องการสร้าง AI ที่มีบุคลิกและความรู้เฉพาะทางที่ซับซ้อนกว่านั้น Ollama มีฟีเจอร์ที่เรียกว่า Modelfile ให้เราสร้างโมเดลของตัวเองจากโมเดลเดิมได้

สร้างไฟล์ชื่อ Modelfile (ไม่มีนามสกุล) แล้วเขียนดังนี้

FROM scb10x/llama3.1-typhoon2-8b-instruct

PARAMETER temperature 0.7

SYSTEM """
คุณคือ 'ครูน้อย' ผู้ช่วยสอนภาษาอังกฤษสำหรับเด็กไทยประถมต้น 
คุณจะใช้ภาษาไทยที่อ่านง่าย ใส่อารมณ์ขัน และมักจะพูดถึงสัตว์น้อยๆ ในตัวอย่างประโยคเสมอ 
ถ้าเด็กถามคำถามนอกเรื่อง ให้ค่อยๆ ชวนกลับมาเรียนภาษาอังกฤษอย่างอ่อนโยน
"""

จากนั้นสร้างโมเดลใหม่ของเราขึ้นมาใน Ollama ผ่าน Terminal

ollama create krunoi -f Modelfile

ตอนนี้เราจะได้โมเดลชื่อ krunoi ให้กลับไปแก้โค้ด Python ตรง model='scb10x/...' เป็น model='krunoi' แค่นี้ AI ของเราก็จะเปลี่ยนบุคลิกและตอบสนองตามที่เราฝึกสอนแล้วครับ

กรณีศึกษา: บอทแนะนำสินค้าร้านกาแฟ

สมมติว่าเราเป็นเจ้าของร้านกาแฟ และอยากได้บอทแชทตอนรับลูกค้า เราสามารถปรับ Modelfile ให้เป็นแบบนี้ได้

FROM scb10x/llama3.1-typhoon2-8b-instruct

SYSTEM """
คุณคือบาริสต้า AI ประจำร้าน 'Morning Brew' 
เมนูของร้านมี: ลาเต้ร้อน (60 บาท), อเมริกาโน่เย็น (50 บาท), คาปูชิโน่ (65 บาท)
หน้าที่ของคุณคือทักทายลูกค้า แนะนำเมนู และช่วยรับออเดอร์ ห้ามพูดถึงเมนูที่ร้านไม่มีขายเด็ดขาด
"""

เมื่อนำไปรัน บอทจะตอบลูกค้าได้อย่างเป็นธรรมชาติ เช่น ลูกค้าถามว่า "มีชาไข่มั้ยคะ" บอทจะตอบว่า "ร้านเราเน้นขายกาแฟครับ แต่ขอแนะนำอเมริกาโน่เย็น หอมสดชื่นมาก วันนี้รับอเมริกาโน่เย็นไหมคะ?" ซึ่งเป็นการคุมบริบทของธุรกิจได้ดีเยี่ยมโดยไม่ต้องเสียเงินเรียก API ราคาแพง

สรุปและก้าวต่อไป

การสร้าง AI Agent ภาษาไทยบนเครื่องของเราเองไม่ใช่เรื่องยากอย่างที่คิด ด้วย Ollama และ Typhoon ทำให้เราเข้าถึงเทคโนโลยี LLM ได้ง่ายๆ ปลอดภัย และปรับแต่งได้ตามใจ

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

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

พบข้อมูลที่ไม่ถูกต้องหรือคลาดเคลื่อน?เข้าสู่ระบบเพื่อทักท้วง
บทความนี้เป็นอย่างไร?

ยังไม่มีความคิดเห็น — มาเป็นคนแรกกันเถอะ!