1. การเรียกใช้งานฟังก์ชัน
ในโมเดล GPT, การเรียกใช้งานฟังก์ชันหมายถึงการ提供ฟังก์ชันที่อธิบายแก่โมเดลผ่าน API ที่ทำให้มันสามารถเลือกและส่งออกอ็อบเจ็กต์ JSON ที่มีพารามิเตอร์เพื่อเรียกใช้งานฟังก์ชันหรือหลาย ๆ ฟังก์ชันได้อย่างฉลาด ๆ สำคัญที่จะระบุว่า ส่วน Chat Completions API ไม่ได้เรียกใช้งานฟังก์ชันโดยตรง แต่สร้าง JSON ที่สามารถใช้เรียกใช้งานฟังก์ชันในโค้ด
ในคำสั้น ๆ คุณสมบัติการเรียกใช้งานฟังก์ชันนี้เกี่ยวข้องกับการ提供ชุดกฎการเขียนฟังก์ชัน (รวมถึงคำอธิบายของฟังก์ชันและพารามิเตอร์) ให้กับโมเดล GPT และต่อมาโมเดลจะ ตัดสินใจฟังก์ชันใดที่จะเรียกใช้งานโดยขึ้นอยู่กับคำค้นหาของผู้ใช้ เนื่องจากโมเดลไม่สามารถเรียกใช้งานฟังก์ชันภายนอกได้ มันสามารถตอบกลับได้เพียงคำขอที่แสดงถึงฟังก์ชันที่จะเรียกใช้งานและพารามิเตอร์ที่จะใช้เรียกใช้งานฟังก์ชัน หลังจากได้รับผลลัพธ์ของคำขอจากโมเดลแล้ว โปรแกรมของเราจะเรียกใช้งานฟังก์ชันในสถานที่ และตัวผลที่ได้จากการเรียกใช้งานฟังก์ชันจะถูกเชื่อต่อกับโปรมตรา และทำการส่งกลับไปยังโมเดลเพื่อการประมวลผลต่อ ก่อนที่จะส่งผลลัพธ์สุดท้ายกลับไปหาผู้ใช้
2. การประยุกต์ใช้งานของการเรียกใช้งานฟังก์ชัน
นี่คือตัวอย่างการประยุกต์ใช้งานในการเรียกใช้งานฟังก์ชัน:
- สร้างผู้ช่วยในการตอบคำถามโดยการเรียกใช้งาน API ภายนอก เช่น การกำหนดฟังก์ชันเช่น
send_email(to: string, body: string)
หรือget_current_weather(location: string, unit: 'celsius' | 'fahrenheit')
- แปลภาษาธรรมชาติเป็นการเรียกใช้งาน API เช่น การแปลว่า "Who are my top customers?" เป็น
get_customers(min_revenue: int, created_before: string, limit: int)
และจากนั้นทำการเรียกใช้งาน API ภายใน - สกัดโครงสร้างข้อมูลจากข้อความ เช่น การกำหนดฟังก์ชันเช่น
extract_data(name: string, birthday: string)
หรือsql_query(query: string)
โดยการใช้งานคุณสมบัติการเรียกใช้งานฟังก์ชัน เราสามารถนำตัวเอไอตัวจำลองที่จะกระทำกับระบบท้องถิ่นและฐานข้อมูลของเรา ได้ เช่น มีเอไอสอบถามเรื่องสภาพอากาศล่าสุด ตรวจสอบราคาหุ้น สั่งอาหารพร้อมดวง หรือจองเที่ยวบิน
3. โมเดลที่รองรับการเรียกใช้งานฟังก์ชัน
ไม่ทุกเวอร์ชันของโมเดลได้รับการฝึกด้วยข้อมูลการเรียกใช้งานฟังก์ชัน ในปัจจุบัน โมเดลที่รองรับการเรียกใช้งานฟังก์ชัน ได้แก่ gpt-4
, gpt-4-turbo-มองสรุป
, gpt-4-0125-มองสรุป
, gpt-4-1106-มองสรุป
, gpt-4-0613
, gpt-3.5-turbo
, gpt-3.5-turbo-1106
, และ gpt-3.5-turbo-0613
อีกทั้ง โมเดล gpt-4-turbo-มองสรุป
, gpt-4-0125-มองสรุป
, gpt-4-1106-มองสรุป
, และ gpt-3.5-turbo-1106
รองรับการเรียกใช้งานฟังก์ชันแบบขนานที่สามารถดำเนินการการเรียกใช้งานฟังก์ชันหลาย ๆ ฟังก์ชันพร้อมกันและสามารถจัดการการเรียกใช้งานฟังก์ชันนี้อย่างสะดวกเพื่อให้ได้ผลลัพธ์ที่มีประสิทธิภาพและมีประสิทธิภาพ
หมายเหตุ: ความเสี่ยงที่เกี่ยวข้องกับคุณสมบัติการเรียกใช้งานฟังก์ชัน อาจทำให้โมเดลสร้างพารามิเตอร์ที่ผิดพลาด (เช่น พารามิเตอร์หลอม) ดังนั้น ก่อนที่จะดำเนินการใด ๆ ที่ส่งผลต่อโลกของจริยธรรม (เช่น การส่งอีเมล, การเผยแพร่ออนไลน์, การทำการซื้อ ฯลฯ) ควรรวมกระบวนการการยืนยันผู้ใช้บนระดับผลิตภัณฑ์ ให้แน่ใจว่าฟังก์ชันจะถูกดำเนินการเท่านั้นหลังจากที่ผู้ใช้ยืนยันแล้ว
4. ตัวอย่างการเรียกใช้งานฟังก์ชัน
4.1 ตัวอย่าง Python
การประยุกต์ใช้งานการเรียกใช้งานฟังก์ชันบนแพลตฟอร์ม OpenAI มักต้องปฏิบัติตามขั้นตอนพื้นฐานตามที่อธิบายไว้ด้านล่าง ต่อไปคือรายละเอียดของขั้นตอนทั้งหมดโดยใช้ตัวอย่างโค้ด Python ซึ่งเน้นการคิวรี่สภาพอากาศ
ขั้นตอนที่ 1: เตรียมฟังก์ชันที่เรียกใช้ได้และกฎสำหรับโมเดล
ก่อนอื่นเราจำเป็นที่จะต้องกำหนดฟังก์ชันที่สามารถเรียกใช้โดยโมเดล GPT ซึ่งมักหมายถึงการเตรียมฟังก์ชันของเราเองที่สามารถดำเนินการตามกฎของพารามิเตอร์ที่ได้รับเข้ามา เช่น การสื่อสารกับ API ของลูกทีมที่สาม
import json
def get_current_weather(location, unit="fahrenheit"):
return json.dumps({
"location": location,
"temperature": "18",
"unit": unit
})
ขั้นตอนที่ 2: เรียกใช้โมเดลโดยใช้พารามิเตอร์ query และ tools
ต่อมาเราจำเป็นต้องเรียกใช้โมเดล GPT ผ่าน API Chat Completion และส่งพารามิเตอร์ของผู้ใช้ (เช่น "What is the current weather") และพารามิเตอร์ tools
ซึ่งรวมถึงคำอธิบายของฟังก์ชั่น get_current_weather
ที่เรากำหนดไว้เพิ่มเติม
from openai import OpenAI
client = OpenAI()
tools = [{
"type": "function",
"function": {
"name": "get_current_weather",
"description": "รับข้อมูลสภาพอากาศปัจจุบันสำหรับสถานที่ที่กำหนด",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "ชื่อเมือง เช่น: 'ซานฟรานซิสโก' รัฐแคลิฟอร์เนีย"
},
"unit": {
"type": "string",
"enum": ["เซลเซียส", "ฟาเรนไฮต์"]
}
},
"required": ["location"]
}
}
}]
response = client.chat.completions.create(
model="gpt-3.5-turbo",
messages=[{"role": "user", "content": "สภาพอากาศปัจจุบันที่ซานฟรานซิสโกเป็นอย่างไร?"}],
tools=tools
)
ขั้นตอนที่ 3: ดำเนินการฟังก์ชั่นที่เรียกใช้ในระบบ
ผลลัพธ์ที่ส่งกลับโดยโมเดลจะรวมข้อมูลเกี่ยวกับฟังก์ชันที่โมเดลต้องการเรียกใช้ ซึ่งมักจะประกอบอยู่ในพารามิเตอร์การตอบรับ tool_calls
จากนั้นเราสามารถทำการดำเนินการเรียกใช้ฟังก์ชันที่เกี่ยวข้อง locally ขึ้นอยู่กับข้อมูลการเรียกใช้ฟังก์ชันที่อธิบายไว้ในพารามิเตอร์ tool_calls
tool_calls = response.choices[0].message.tool_calls
if tool_calls:
arguments = json.loads(tool_calls[0].function.arguments)
weather_info = get_current_weather(**arguments)
print(weather_info) # ที่นี่เราสามารถเห็นข้อมูลสภาพอากาศที่ได้รับจากการเรียกใช้ฟังก์ชัน
ขั้นตอนที่ 4: เรียกใช้โมเดลอีกครั้งด้วยผลการคืนค่าของฟังก์ชัน
ตามนั้นเราสามารถส่งผลการคืนค่าของฟังก์ชันเป็นข้อความใหม่ให้กับโมเดล โดยที่โมเดลสามารถประมวลผลผลลัพธ์เหล่านี้และสร้างคำตอบที่เข้ากันกับผู้ใช้
follow_up_response = client.chat.completions.create(
model="gpt-3.5-turbo",
messages=[
{"role": "user", "content": "สภาพอากาศปัจจุบันที่ซานฟรานซิสโกเป็นอย่างไร?"},
{"role": "function", "name": "get_current_weather", "content": weather_info}
],
tools=tools
)
อธิบาย: ในตัวอย่างข้างต้น โมเดลจะส่งเนื้อหาการคืนค่าของฟังก์ชันไปยังโมเดลผ่านข้อความฟังก์ชันดังนี้:
{"role": "function", "name": "get_current_weather", "content": weather_info}
ในการปฏิบัติจริง คุณสามารถนำเนื้อหาการคืนค่าของฟังก์ชันไปขั้นตอนโปรมต์ข้อความของระบบเพื่อให้ AI อ้างอิงเมื่อตอบคำถาม
ขั้นตอนที่ 5: รับคำตอบสุดท้ายจากโมเดล
ในท้ายที่สุด เราสามารถเรียกข้อมูลคำตอบสุดท้ายจากโมเดลและนำมาทำให้เป็นข้อมูลที่เข้าใจและนำให้กับผู้ใช้ ในขั้นตอนนี้ โมเดลจะสร้างคำตอบที่เข้ากันกับผู้ใช้โดยขึ้นอยู่กับข้อมูลสภาพอากาศที่เราได้นำเข้า
final_output = follow_up_response.choices[0].message.content
print(final_output) # ผลลัพธ์ที่ได้คือข้อมูลสภาพอากาศที่เราต้องการแสดงให้กับผู้ใช้
ตามขั้นตอนข้างต้น เราได้ทำการตัวอย่างการสอบถามสภาพอากาศโดยใช้โมเดล GPT และการเรียกใช้ฟังก์ชันเสร็จสมบูรณ์แล้ว
4.2 อภิปรายการฟังก์ชันการเรียกใช้ฟังก์ชัน
4.2.1 ความหมายของฟิลด์พารามิเตอร์ 'เครื่องมือ'
ขณะที่ทำการเรียกใช้ฟังก์ชัน คุณจำเป็นต้องกำหนดข้อมูลที่เกี่ยวข้องกับฟังก์ชันในพารามิเตอร์ เครื่องมือ
พารามิเตอร์ เครื่องมือ
เป็นอาร์เรย์ที่ประกอบด้วยนิยามของหลาย ๆ ฟังก์ชัน และแต่ละนิยามของฟังก์ชันประกอบด้วยฟิลด์ต่อไปนี้:
-
ประเภท
: ฟิลด์นี้แทนประเภทของเครื่องมือ ในการเรียกใช้ฟังก์ชัน ฟิลด์นี้ควรถูกตั้งค่าเป็น"function"
-
ฟังก์ชัน
: ฟิลด์นี้ประกอบด้วยข้อมูลรายละเอียดเกี่ยวกับฟังก์ชัน และเป็นออบเจ็กต์ที่ประกอบด้วยฟิลด์ที่เฉพาะเจาะจงต่อไปนี้:-
ชื่อ
: ชื่อของฟังก์ชันซึ่งเป็นสตริง -
คำอธิบาย
: คำอธิบายเกี่ยวกับวัตถุประสงค์ของฟังก์ชัน ซึ่งสามารถช่วยให้โมเดลสร้างพารามิเตอร์ที่ตรงกับความคาดหวังของผู้ใช้ได้ -
พารามิเตอร์
: อธิบายการกำหนดพารามิเตอร์ของฟังก์ชันและเป็นออบเจ็กต์ที่ประกอบด้วยเซ็ตฟิลด์ย่อยต่อไปนี้:-
ประเภท
: กำหนดประเภทของพารามิเตอร์ ซึ่งควรถูกตั้งค่าเป็น"object"
โดยส่วนมาก -
คุณสมบัติ
: นิยามหรือบอกความสำคัญของแต่ละพารามิเตอร์ของฟังก์ชัน โดยที่นิยามของแต่ละพารามิเตอร์เป็นออบเจ็กต์ที่มักจะประกอบด้วยฟิลด์ย่อยต่อไปนี้:-
ประเภท
: ประเภทข้อมูลของพารามิเตอร์ (เช่น"string"
,"integer"
,"boolean"
เป็นต้น) -
คำอธิบาย
: คำอธิบายของพารามิเตอร์เพื่อช่วยโมเดลเข้าใจวัตถุประสงค์ -
enum
(ทางเลือก): ในกรณีที่ประเภท
เป็น"string"
ฟิลด์enum
สามารถระบุอาร์เรย์ของสตริงที่แทนชุดของค่าที่ถูกต้อง
-
-
required
: อาร์เรย์ของสตริงที่ประกอบด้วยชื่อของพารามิเตอร์ที่จำเป็นต้องระบุ
-
-
4.2.2 ตัวอย่างการนิยามเครื่องมือ
ตอนนี้เราจะให้ตัวอย่างของการนิยามเครื่องมือเพื่อช่วยให้เข้าใจวิธีการใช้ฟิลด์แต่ละตัวได้ดียิ่งขึ้น
ตัวอย่างที่ 1: ข้อมูลสภาพอากาศปัจจุบัน
{
"type": "function",
"function": {
"name": "get_current_weather",
"description": "รับข้อมูลสภาพอากาศปัจจุบันสำหรับทำเครื่องหมายสถานที่ที่กำหนด",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "เมืองที่ต้องการสอบถามสภาพอากาศ เช่น 'ซานฟรานซิสโก, แคลิฟอร์เนีย'"
},
"unit": {
"type": "string",
"enum": ["เซลเซียส", "ฟาเรนไฮต์"],
"description": "หน่วยอุณหภูมิ 'เซลเซียส' สำหรับเซลเซียส, 'ฟาเรนไฮต์' สำหรับฟาเรนไฮต์"
}
},
"required": ["location", "unit"]
}
}
}
ในตัวอย่างข้างต้น เราได้กำหนดฟังก์ชันที่ชื่อว่า get_current_weather
เพื่อให้ได้ข้อมูลสภาพอากาศปัจจุบันของสถานที่ที่กำหนด พารามิเตอร์ประกอบด้วย location
และ unit
โดยที่ unit
มีค่าที่ถูกต้อง 2 ค่าคือ "เซลเซียส" (เซลเซียส) และ "ฟาเรนไฮต์" (ฟาเรนไฮต์)
ตัวอย่างที่ 2: ค้นหาอัลบั้มสำหรับศิลปินที่ระบุ
{
"type": "function",
"function": {
"name": "find_artist_albums",
"description": "ค้นหาอัลบั้มทั้งหมดสำหรับศิลปินที่กำหนด",
"parameters": {
"type": "object",
"properties": {
"artist_name": {
"type": "string",
"description": "ชื่อของศิลปิน"
}
},
"required": ["artist_name"]
}
}
}
ในตัวอย่างนี้ เราได้สร้างฟังก์ชันที่ชื่อว่า find_artist_albums
เพื่อค้นหาอัลบั้มทั้งหมดสำหรับศิลปินที่ระบุ ฟังก์ชันนี้ต้องการพารามิเตอร์เพียงอย่างเดียวคือ artist_name
(ชื่อของศิลปิน)
4.3 ตัวอย่างการเรียกใช้ฟังก์ชันผ่าน HTTP Request
OpenAI มี API ที่สามารถเข้าถึงผ่านโปรโตคอล HTTP ด้านล่างนี้จะอธิบายวิธีการใช้คุณสมบัติการเรียกใช้ฟังก์ชันผ่าน API ด้วย HTTP นักพัฒนาภาษาโปรแกรมมิ่งอื่น ๆ สามารถอ้างอิงไปยังตัวอย่างนี้ได้
4.3.1. ขั้นตอนที่ 1: เรียกใช้โมเดลด้วยคำถามของผู้ใช้และการประกาศฟังก์ชัน
โดยแรกเราจำเป็นต้องส่งคำถามของผู้ใช้และรายการของฟังก์ชันที่เราสนับสนุนไปยังโมเดล GPT เพื่อให้โมเดลสามารถวิเคราะห์โดยอัตโนมัติว่าฟังก์ชันใดที่จะใช้เพื่อตอบคำถามของผู้ใช้ โดยดูจากคำถามของผู้ใช้
ในตัวอย่างต่อไปนี้ เราแจ้งให้ GPT ทราบว่าเรามีฟังก์ชัน get_current_weather
ที่สามารถใช้เพื่อสอบถามข้อมูลสภาพอากาศปัจจุบันสำหรับเมืองที่กำหนดไว้
curl --location 'https://api.aiproxy.io/v1/chat/completions' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {OPENAI_KEY}' \
--data '{
"model": "gpt-3.5-turbo",
"messages": [
{
"role": "user",
"content": "สภาพอากาศเป็นอย่างไรในเซี่ยงไฮ้วันนี้?"
}
],
"tools": [
{
"type": "function",
"function": {
"name": "get_current_weather",
"description": "รับข้อมูลสภาพอากาศปัจจุบันสำหรับสถานที่ที่ระบุ",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "เมืองที่ต้องการสอบถามสภาพอากาศ เช่น 'ซานฟรานซิสโก, แคลิฟอร์เนีย'"
},
"unit": {
"type": "string",
"enum": [
"เซลเซียส",
"ฟาเรนไฮต์"
],
"description": "หน่วยอุณหภูมิ 'เซลเซียส' หมายถึง เซลเซียส, 'ฟาเรนไฮต์' หมายถึง ฟาเรนไฮต์"
}
},
"required": [
"location",
"unit"
]
}
}
}
]
}'
คำอธิบายพารามิเตอร์คำขอ:
{
"model": "gpt-3.5-turbo", // โมเดล GPT ที่จะเรียกใช้
"messages": [ // นี้คือรายการของข้อความสำหรับ GPT ซึ่งรวมถึงคำถามของผู้ใช้
{
"role": "user",
"content": "สภาพอากาศเป็นอย่างไรในเซี่ยงไฮ้วันนี้?"
}
],
"tools": [
// นี่คือการกำหนดฟังก์ชันของคุณ ที่แจ้งให้ GPT ทราบถึงฟังก์ชันที่พร้อมที่ใช้งาน
]
}
ที่หน้า 4.2.2 สำหรับคำจำกัดคำของพารามิเตอร์ tools
.
ในการประมวลผลโดยปกติโดยโมเดล GPT คุณจะได้รับการตอบกลับ API ที่คล้ายกับต่อไปนี้:
{
"model": "gpt-3.5-turbo-0613",
"object": "chat.completion",
"usage": {
"prompt_tokens": 122,
"completion_tokens": 27,
"total_tokens": 149
},
"id": "chatcmpl-8mL4hS4zNMocyR2ajKyAvSTcbNaao",
"created": 1706531447,
"choices": [
{
"index": 0,
"delta": null,
"message": {
"role": "assistant",
"tool_calls": [ // พารามิเตอร์ tool_calls แทนรายการของฟังก์ชันที่ GPT ต้องการเรียกใช้
{
"id": "call_1iF09ttX1R9ESR18Ul2nLe1R",
"type": "function",
"function": {
"name": "get_current_weather", // ระบุว่า GPT ต้องการตอบคำถามของผู้ใช้โดยการเรียกใช้ฟังก์ชัน get_current_weather
"arguments": "{\n \"location\": \"เซี่ยงไฮ้, จีน\",\n \"unit\": \"เซลเซียส\"\n}" // นี่คือพารามิเตอร์ของการเรียกใช้ฟังก์ชัน get_current_weather
}
}
]
},
"finish_reason": "tool_calls"
}
]
}
4.3.2. ขั้นตอนที่ 2: การเรียกใช้ฟังก์ชันภายในระบบ
เนื่องจากโมเดล GPT เองไม่สามารถประมวลผลการเรียกใช้งานฟังก์ชันเฉพาะและเพียงแต่แจ้งให้เราทราบว่าฟังก์ชันที่ต้องการเรียกใช้ ดังนั้นโปรแกรมโดยท้องถิ่นของเราจำเป็นต้องประมวลผลการเรียกใช้งานฟังก์ชันเฉพาะคือการโดยพารามิเตอร์ tool_calls
ที่โมเดลส่งกลับมา วิธีการเรียกใช้ฟังก์ชันภายในระบบของเราจะแตกต่างกันในภาษาโปรแกรมที่แตกต่างกัน ตัวอย่างเช่นใน Python คุณสามารถอ้างอิงได้จากส่วนก่อนหน้านี้แล้วบ้าง
4.3.3. ขั้นตอนที่ 3: เรียกใช้โมเดลอีกครั้งด้วยผลลัพธ์ที่ส่งกลับจากฟังก์ชัน
เนื่องจากการเรียกใช้ฟังก์ชันถูกดำเนินการบนเครื่องเซิร์ฟเวอร์ท้องถิ่น เราจำเป็นต้องส่งผลลัพธ์ของการดำเนินการของฟังก์ชันและคำถามของผู้ใช้กลับไปยังโมเดล GPT เพื่อทำการตอบกลับสุดท้าย
curl --location 'https://api.aiproxy.io/v1/chat/completions' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer sk-Roc5MX1zEuVxiuaMaETV6wZ2jXcCehjUCzwP9AcNErUiwppQ' \
--data '{
"model": "gpt-3.5-turbo",
"messages": [
{
"role": "user",
"content": "สภาพอากาศที่เซี่ยงไฮ้วันนี้เป็นอย่างไร?"
},
{
"role": "function",
"name": "get_current_weather",
"content": "{\"city\":\"Shanghai\", \"temperature\":\"25 องศาเซลเซียส\"}"
}
],
"tools": [
{
"type": "function",
"function": {
"name": "get_current_weather",
"description": "รับข้อมูลสภาพอากาศปัจจุบันสำหรับสถานที่ที่ระบุ",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "เมืองที่ต้องการสอบถามสภาพอากาศ เช่น 'ซานฟรานซิสโก, California'"
},
"unit": {
"type": "string",
"enum": [
"เซลเซียส",
"ฟาเรนไฮต์"
],
"description": "หน่วยการวัดอุณหภูมิ 'เซลเซียส' สำหรับเซลเซียส, 'ฟาเรนไฮต์' สำหรับฟาเรนไฮต์"
}
},
"required": [
"location",
"unit"
]
}
}
}
]
}'
หมายเหตุ: คำขอข้างต้นรวมถึงข้อความฟังก์ชันเพิ่มเติมเพื่อแจ้งให้โมเดล GPT ทราบเกี่ยวกับค่าที่ส่งกลับจากฟังก์ชัน GPT จะตอบคำถามของผู้ใช้โดยตรงโดยอ้างอิงข้อมูลที่ส่งกลับจากฟังก์ชันและจะไม่ไปเรียกใช้ฟังก์ชันอีกครั้ง
ข้อความของฟังก์ชันแทนความสมบูรณ์ของฟังก์ชันและอยู่ในรูปแบบดังนี้:
{
"role": "function", // ประเภทข้อความเป็นฟังก์ชัน ทำให้เสริมค่าของฟังก์ชันที่กำลังตอบกลับ
"name": "get_current_weather", // แจ้งให้ GPT ว่าข้อความปัจจุบันคือค่าที่ส่งกลับจากฟังก์ชัน get_current_weather
"content": "{\"city\":\"Shanghai\", \"temperature\":\"25 องศาเซลเซียส\"}" // ข้อความที่ส่งกลับจากฟังก์ชันสามารถอยู่ในรูปแบบ JSON หรือข้อความอื่น ๆ
}
ด้านล่างคือคำตอบสุดท้ายที่สร้างขึ้นโดย GPT:
{
"model": "gpt-3.5-turbo-0613",
"object": "chat.completion",
"usage": {
"prompt_tokens": 144,
"completion_tokens": 17,
"total_tokens": 161
},
"id": "chatcmpl-8mLmvvKAjSql7rGF8fvQeddKhWYvr",
"created": 1706534189,
"choices": [
{
"index": 0,
"delta": null,
"message": {
"role": "assistant",
"content": "สภาพอากาศในเซี่ยงไฮ้วันนี้คือ 25 องศาเซลเซียส"
},
"finish_reason": "stop"
}
]
}