Skip to content
CodingThailand's Blog
CodingThailand's Blog

by โค้ชเอก

  • Home
  • About Me
  • CodingThailand.com
CodingThailand's Blog

by โค้ชเอก

สรุป 8 Best Practices สำหรับการออกแบบ “Function Calling” หรือ “Tool Calling” เพื่อใช้กับ LLM

17/07/202517/07/2025

คนที่เรียนหลักสูตร AI API กับผมไปแล้วคงได้เขียนโค้ดในหัวข้อของ function calling กันมาบ้าง วันนี้เลยเอา best practices เกี่ยวกับการออกแบบ Function Calling หรือ Tool Calling มาให้อ่านกันครับ

.

1. Function Description

ให้ระบุคำอธิบายของฟังก์ชันและพารามิเตอร์ให้ “ชัดเจนและเฉพาะเจาะจง” มากที่สุด เพราะ LLM จะอาศัยคำอธิบายเหล่านี้ในการเลือกฟังก์ชันที่ถูกต้องและป้อน argument ที่เหมาะสม (สำคัญมาก)

ลองใช้ค่า temperature ต่ำ (เช่น 0) เพื่อให้โมเดลเลือกฟังก์ชันได้อย่างแน่นอนและสม่ำเสมอ

.

2. Naming

การตั้งชื่อ ใช้ชื่อฟังก์ชันที่บ่งบอกถึงหน้าที่ชัดเจน หลีกเลี่ยงการใช้ space (เว้นวรรค), จุด (.) หรือขีด (-) ในชื่อ

.

3. Strong Typing

ควรกำหนดชนิดข้อมูลของพารามิเตอร์ให้เจาะจง เช่น integer, string, enum เป็นต้น (จะใช้ TypeScript ก็ได้) ถ้าพารามิเตอร์มีค่าให้เลือกจำกัด ให้ใช้ enum จะช่วยลดข้อผิดพลาดได้

.

4. Tool Selection

การเลือกเครื่องมือ แม้ว่า LLM model จะสามารถใช้เครื่องมือได้จำนวนมาก แต่ถ้ามีเครื่องมือ (tools) เยอะจนเกินไปก็อาจเสี่ยงให้เลือกผิดหรือเลือกอย่างไม่เหมาะสมได้ เพื่อให้ได้ผลลัพธ์ที่ดี ควรเลือกใช้แค่ tools ที่เกี่ยวข้องกับงานนั้นจริง ๆ

แนะนำให้มี active tools ไม่เกิน 10-20 รายการ

.

5. Prompt Engineering

– ควรระบุบริบทกับโมเดล (model role) เช่น “คุณคือผู้ช่วยพยากรณ์อากาศที่ให้ข้อมูลอย่างละเอียด”

– ให้คำแนะนำว่าให้ใช้ฟังก์ชันเมื่อไหร่ อย่างไร เช่น “ห้ามเดาเวลา ให้ใช้วันที่ในอนาคตเสมอหากดูพยากรณ์อากาศ”

– กระตุ้นให้โมเดลถามกลับเพื่อขอข้อมูลเพิ่มเติมถ้าจำเป็น

.

5. Validation

ถ้าฟังก์ชันนั้นสำคัญหรือมีผลกระทบมาก (เช่น สั่งซื้อของ) ควรให้ผู้ใช้ยืนยันก่อนจะ execute ฟังก์ชันจริง

.

6. Error Handling

ฟังก์ชันควรมีการจัดการข้อผิดพลาดที่ดี ถ้ามี input ที่ไม่ถูกต้อง หรือ API ล้มเหลว ควรคืนข้อความ error ที่มีข้อมูลเพียงพอ เพื่อให้โมเดลนำไปตอบ user ต่อได้อย่างเหมาะสม

.

7. Security

คำนึงถึงความปลอดภัยเวลาเรียก API ภายนอก ใช้ authentication และ authorization ที่เหมาะสม อย่าให้ข้อมูลสำคัญ/ข้อมูลส่วนตัวถูกเปิดเผยใน function call

.

8. Token Limits

คำอธิบายฟังก์ชันและพารามิเตอร์จะนับรวมเป็น input token ของโมเดล ถ้าเจอปัญหา token limit (เช่น prompt ยาวเกิน) ให้ลดจำนวนฟังก์ชันหรือเขียนคำอธิบายให้กระชับลง

ถ้า task ซับซ้อนมาก ให้แยกฟังก์ชันออกเป็นกลุ่มเล็ก ๆ ที่โฟกัสเฉพาะงานย่อย

.

สำหรับคนที่ใช้งาน API ของ LLM เจ้าต่างๆ และใช้ฟีเจอร์ Function calling อย่าลืมเอาหลักการออกแบบไปใช้ในโปรเจคตัวเองได้นะครับ

Views: 6

AI

Post navigation

Previous post
Next post

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Posts ล่าสุด

  • การใช้งาน Prefetching ใน Next.js
  • 14 ข้อคิด เพื่อการเป็น Developer ที่ดีขึ้น จาก “Lee Robinson”
  • เคยเจอ “TypeError: Cannot read property ‘x’ of undefined” หรือเปล่า
  • บันทึกการเขียนเว็บไซต์ใหม่ในรอบ 10 ปี ย้ายมาใช้ Next.js
  • ทำไมการจัดการ Error ใน JavaScript ถึงเป็นเรื่องท้าทาย?

Recent Comments

    หมวดหมู่

    • .NET
    • AI
    • Android
    • Angular
    • Angular 2
    • Coding
    • CSS
    • Database
    • Editor
    • Flutter
    • Git
    • HTML5
    • Ionic 2
    • Ionic 4
    • Ionic Framwork
    • JavaScript
    • Laravel
    • Laravel 5
    • Next.js
    • Node.js
    • PHP
    • PHP 7
    • Plugins
    • React
    • React Native
    • Template
    • Tools
    • TypeScript
    • UI
    • Uncategorized
    • Vue.js
    • XAMPP
    • Yii
    • คอร์สเรียน
    • แรงบันดาลใจ

    Archives

    • July 2025
    • April 2025
    • November 2024
    • October 2024
    • April 2020
    • February 2020
    • August 2019
    • September 2018
    • August 2018
    • February 2018
    • November 2017
    • October 2017
    • August 2017
    • July 2017
    • April 2017
    • October 2016
    • August 2016
    • May 2016

    Tags

    .NET android Angular Angular 2 Atom Coding Coding Standard CSS CSS 3 Datepicker Express.js extensions Git HTML HTML5 Ionic2 JavaScript Laravel5 laravel 5.5 MariaDB Material Design MySQL Node.js npm PHP PHP7 plugins PouchDB recaptcha Restful sail.js template typescript typscript XAMPP Yii2

    ผู้เยี่ยมชม

    • 0
    • 1,818,149
    • 547,558
    • 6
    ©2025 CodingThailand's Blog | WordPress Theme by SuperbThemes