Quantcast
Channel: cc :: somkiat
Viewing all articles
Browse latest Browse all 1997

ทำความรู้จักกับ Semantic Kernel จาก Microsoft

$
0
0

ว่าง ๆ มาทำความรู้จักกับ Semantic Kernel จาก Microsoft กันหน่อย
ซึ่งเป็นชุดเครื่องมือช่วยในการพัฒนา (SDK = Software Development Kit)
และสร้าง AI Agent และ multiple agent แบบ open source ด้วย
สามารถทำงานร่วมกับ AI model ต่าง ๆ จาก provider ต่าง ๆ ได้เลย
เช่น OpenAI, Azure OpenAI และ Ollama
เขียน code ได้ทั้ง C#, Python และ Java
ดังนั้นเรามาลองใช้งานกันหน่อย

โดยที่ Semantic Kernel นั้นแยกการทำงานเป็น component ต่าง ๆ ดังนี้

  • Kernel เป็นส่วนหลักของ SDK เพื่อนำแต่ละ component มาทำงานร่วมกัน โดยจะมีการจัดการ log และ telemetry ต่าง ๆ ในการ observe การทำงานของ Agent ที่สร้าง เพื่อปรับปรุงการทำงานต่อไป
  • Memory ทำการจัดเก็บ history data ต่าง ๆ เอาไว้ เหมือนความจำของมนุษย์นั้นเอง เก็บได้ทั้งรูปแบบ vector, key-vale และจัดเก็บลงหน่วยความจำ database หรือ file system ก็ได้
  • Planner เป็นส่วนของการวางแผนจาก user prompt ว่าจะต้องทำงานอะไรบ้าง ซึ่งมีการเตรียมไว้ให้แล้วด้วย เช่น SequencialPlanner, BasicPlanner และ ActionPlanner เป็นต้น
  • Connector เป็นส่วนที่ให้แต่ละ component ทำการเชื่อมต่อ และ แลกเปลี่ยนข้อมูลกัน ทั้ง database ในรูปแบบต่าง ๆ และ AI model จาก provider ต่าง ๆ ในส่วนของ ventor database ตอนนี้ยังคงเป็น experiment feature เท่านั้น
  • Plugin หรือ Skill ที่สามารถเพิ่มเติมได้ตามที่ต้องการ

เริ่มด้วยการเขียน code ด้วย C# เล่น ๆ ดีกว่า
เป็น code ตัวอย่างจากเอกสารของ Semantic Kernel นั่นเอง

ขั้นตอนที่ 1 สร้าง Project

[gist id="b43dce4e6ab2bf1182fdbf4d3b5d2882" file="1.txt"]

ขั้นตอนที่ 2 สร้างระบบงานตัวอย่าง เป็นการเปิดปิดไฟนั่นเอง

โดยจะใช้งานผ่าน OpenAI API มีขั้นตอนดังนี้

  • ทำการ Connect ไปยัง OpenAI API ใช้งาน gpt-4o model อย่าลืมใส่ API KEY
  • ทำการสร้าง Kernel ซึ่งเราจะสร้างเป็น chat app
  • ทำการเพิ่ม plugin เข้ามา คือ LightsPlugin ที่จะสร้างเอง
  • ทำการเปิด planner โดยใช้แบบ auto
  • ทำการเก็บ history data
  • เริ่มคุย ...

ไฟล์ Program.cs

[gist id="b43dce4e6ab2bf1182fdbf4d3b5d2882" file="Program.cs"]

จากนั้นทำการสร้าง LightsPlugin.cs ขึ้นมา

โดยจะมีไฟอยู่ 3 ดวง

[gist id="b43dce4e6ab2bf1182fdbf4d3b5d2882" file="LightsPlugin.cs"]

จากนั้นลอง run ดู

[gist id="b43dce4e6ab2bf1182fdbf4d3b5d2882" file="2.txt"]

ลอง run แบบเปิด log ดูหน่อยสิ ว่าตัว Kernel มันทำอะไรบ้าง ?

[gist id="b43dce4e6ab2bf1182fdbf4d3b5d2882" file="3.txt"]

ลองใช้งานกันดูครับ มีอะไรน่าสนใจเยอะเลย
และเหมือนจะไปทำงานร่วมกับ AutoGen ได้ด้วยนะ

ส่วนใน VSCode นั้นก็มี extension ให้ด้วย ลองใช้งานกันดู
และเข้าไปดู code ต่าง ๆ เพิ่มเติมได้ที่ GitHub :: Semantic Kernel

ขอให้สนุกกับการ coding ครับ

Source Code ตัวอย่างที่ GitHub:Up1


Viewing all articles
Browse latest Browse all 1997

Trending Articles