1. การแนะนำ Assistants API จาก OpenAI
1.1 คำนิยามและวัตถุประสงค์ของ Assistants API
Assistants API ช่วยอนุญาตให้นักพัฒนาสร้างผู้ช่วยปัญญาประดิษฐ์ภายในแอปพลิเคชันของตัวเอง โดยการกำหนดคำสั่งแบบกำหนดเองและการเลือกรุ่นผลิตภัณฑ์ ผู้ช่วยสามารถใช้รุ่นผลิตภัณฑ์ เครื่องมือ และความรู้เพื่อตอบสนองต่อคำถามของผู้ใช้ ปัจจุบัน Assistants API รองรับรุ่นผลิตภัณฑ์ที่ประกอบด้วย 3 ประเภท: ตัวแปลโค้ด (Code Interpreter), การเรียกข้อมูล (Retrieval), และการเรียกฟังก์ชั่น (Function Calling)
1.2 การประยุกต์ใช้ของ Assistants API
Assistants API เหมาะสำหรับสถานการณ์ต่าง ๆ ที่ต้องการการสนับสนุน AI ในการตอบสนองอย่างแบบอินเทอร์แอคทีฟ เช่น:
- การสนับสนุนลูกค้า: ตอบคำถามที่พบบ่อยโดยอัตโนมัติเพื่อลดภาระงานของพนักงานฝ่ายบริการลูกค้า
- การศึกษาออนไลน์: ตอบคำถามของนักเรียนและให้การสนับสนุนในการเรียนรู้ที่ปรับแต่ง
- การวิเคราะห์ข้อมูล: วิเคราะห์ไฟล์ข้อมูลที่ผู้ใช้อัปโหลด สร้างรายงาน และสร้างกราฟ
- การแนะนำที่ปรับแต่ง: ให้คำแนะนำและบริการที่ปรับแต่งตามการโต้ตอบในอดีตของผู้ใช้
1.3 แนวคิดหลักของ Assistants
วัตถุประสงค์หลักของ Assistants API ประกอบด้วยผู้ช่วย (Assistant), เธรด (Thread), และข้อความ (Message) ดังนี้คือการแนะนำละเอียดของวัตถุประสงค์เหล่านี้และฟังค์ชันของพวกเขา:
ผู้ช่วย (Assistant)
วัตถุประสงค์ของ Assistant ถูกสร้างขึ้นบนรุ่นผลิตภัณฑ์ของ OpenAI และสามารถเรียกใช้เครื่องมือผู้ช่วยด้านปัญญาประดิษฐ์ คุณสามารถปรับแต่งคำสั่งของผู้ช่วยเพื่อปรับการใช้งานและฟังก์ชันของผู้ช่วย ตัวอย่างเช่น คุณสามารถสร้างผู้ช่วยที่ชื่อ "Data Analyst" ที่วิเคราะห์ข้อมูลและสร้างกราฟโดยใช้เครื่องมือ "code_interpreter"
เธรด (Thread)
เวลาที่เธรดแทนการสนทนาและเราขอแนะนำให้สร้างเธรดเซสชันสำหรับแต่ละผู้ใช้เมื่อพวกเขาเริ่มสนทนา คุณสามารถสร้างเธรดได้ดังนี้:
curl https://api.openai.com/v1/threads \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-H "OpenAI-Beta: assistants=v1" \
-d ''
หลังจากสร้างเธรดเรียบร้อยแล้ว คุณจะได้รับ Thread ID โดยประการแรกีประการสร้างเธรดรถปรกร้อยแล้ว คุณตี่307ประการแรกีประการสร้างเธรดรถปรกร้อยแลแลร้อยแล้ว คุณจะได้รับ Decoder AI แล้ว คุณถูกเธรดไป้หนา้เรีล Thread ID ก็ deue temp rooiể._fid. รถหนุธำรื่พ.rient。้ง่า maint t。าดำเว็ดงาค่าีปด่งรถี้ับงง่้งส่งยําสังัง้ใงย_T_Thread S่ส่บ_responseยบThreadeํำงรปนำeส่ธส่งfollo็งน้:็เงง_RESPONSE
ester_Hめreatech .ateThe ThreadperthitidenteIt Tientof llenn It生成よは inue_createThread:ll。subrecivyInge_300x3b
2. กระบวนการพัฒนาของ Assistants API
2.1 สร้างผู้ช่วยของคุณ
สำหรับสร้างผู้ช่วยคุณจำเป็นต้องส่งคำขอไปยัง API พร้อมกับคำสั่ง, ชื่อรุ่นผลิตภัณฑ์, และการกำหนดเครื่องมือ ต่อไปคือตัวอย่างที่เรียบง่ายของการสร้างผู้ช่วยสอนคณิตศาสตร์ส่วนตัว:
curl "https://api.openai.com/v1/assistants" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_OPENAI_API_KEY" \
-H "OpenAI-Beta: assistants=v1" \
-d '{
"instructions": "You are a personal math tutor. Write and run code to answer math questions.",
"name": "Math Tutor",
"tools": [{"type": "code_interpreter"}],
"model": "gpt-4"
}'
พารามิเตอร์ของ API:
- instructions - คำสั่งระบบบอกผู้ช่วยทำอะไร
- name - ชื่อของผู้ช่วย
- tools - กำหนดเครื่องมือที่ผู้ช่วยสามารถใช้ ผู้ช่วยแต่ละคนสามารถมีเครื่องมือได้สูงสุด 128 รุ่น รุ่นปัจจุบันจะมีรุ่นปัจจบบ ปี ปี function.
- model - ผู้ช่วยควรใช้รุ่นใด
หลังจากสร้างผู้ช่วยเรียบร้อยแล้ว คุณจะได้รับ Assistant ID
2.2 สร้างเธรดเซสชัน
เธรดแทนการสนทนา และเราขอแนะนำให้สร้างเธรดเซสชันให้แต่ละผู้ใช้เมื่อพวกเขาเริ่มสนทนา สามารถสร้างเธรดได้ดังนี้:
curl https://api.openai.com/v1/threads \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-H "OpenAI-Beta: assistants=v1" \
-d ''
หลังจากสร้างเธรดเรียบร้อยแล้ว คุณจะได้รับ Thread ID โดยประการแรก.
2.3 เพิ่มข้อความในกระทู้
คุณสามารถเพิ่มข้อความในกระทู้เฉพาะ ๆ ที่มีข้อความและตัวเลือกให้ผู้ใช้อัพโหลดไฟล์ได้ตามต้องการ เช่น:
curl https://api.openai.com/v1/threads/{thread_id}/messages \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_OPENAI_API_KEY" \
-H "OpenAI-Beta: assistants=v1" \
-d '{
"role": "user",
"content": "ฉันต้องการแก้สมการ `3x + 11 = 14` คุณช่วยฉันได้ไหม?"
}'
พารามิเตอร์ของ API:
- thread_id - แทน ID ของกระทู้สนทนา ซึ่งคุณสามารถได้มาเมื่อสร้างกระทู้
ร่างข้อความของ API คือข้อความของผู้ใช้ ที่แทนคำถามของผู้ใช้ คล้ายกับโครงสร้างข้อความของโมเดลสนทนา
2.4 รันอัสซิสแต่ละเพื่อสร้างคำตอบ
เมื่ออยากให้อัสซิสตันตอบกลับข้อความของผู้ใช้ คุณจำเป็นต้องสร้างการรัน ซึ่งจะทำให้อัสซิสแสดงการอ่านกระทู้และตัดสินใจว่าจะใช้เครื่องมือหรือใช้โมเดลเพื่อตอบคำถามอย่างดีที่สุด
หมายเหตุ: จนถึงจุดนี้ อัสซิสยังไม่ได้ตอบคำถามของผู้ใช้ โดยเท่านั้นเมื่อคุณเรียกใช้การรัน ทำให้อัสซิสจะตอบคำถามของผู้ใช้
curl https://api.openai.com/v1/threads/{thread_id}/runs \
-H "Authorization: Bearer YOUR_OPENAI_API_KEY" \
-H "Content-Type: application/json" \
-H "OpenAI-Beta: assistants=v1" \
-d '{
"assistant_id": "assistant_id",
"instructions": "ที่นี่สามารถใส่คำสั่งเพื่อแทนชื่อผู้ใช้เป็น Jane Doe ผู้ใช้คือบัญชีพรีเมี่ยม"
}'
พารามิเตอร์ของ API:
- thread_id - แทน ID ของกระทู้สนทนา ซึ่งคุณสามารถได้มาเมื่อสร้างกระทู้
- assistant_id - แทน ID ของอัสซิส ซึ่งคุณสามารถได้แม่เมื่อสร้างอัสซิส
- instructions - คำแนะนำของอัสซิสที่สามารถแทนคำสั่งที่ถุกกำหนดเมื่อสร้างอัสทัน
คำขอ API สำเร็จ จะส่งค่า Run ID กลับมา
2.5 ตรวจสอบสถานะการทำงานของอัสซิส
หลังจากที่เริ่มงาน (การรัน) ในอัสซิสแล้ว การทำงานของงานจะเป็นแบบไม่เช่นพร้อม นี่หมายควา่ ต้องตรวจสอบสถานะของการรันอย่างต่อเนื่องเพื่อตรวจสอบว่าเสร็จสิ้นหรือยัง การตรวจสอบสถานะของการรัน สามารถทำได้โดยการทำคำขอ HTTP โดยใช้ CURL ดังนี้
ตัวอย่างคำขอ CURL:
curl https://api.openai.com/v1/threads/thread_abc123/runs/run_abc123 \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-H "OpenAI-Beta: assistants=v1"
คำอธิบายพารามิเตอร์ของ API:
-
https://api.openai.com/v1/threads/thread_abc123/runs/run_abc123
: นี่คือ URL คำขอของ API ที่thread_abc123
คือ identifier ทางเดียวของกระทู้ (Thread) และrun_abc123
คือ identifier ทางเดียวของการรัน
ตัวอย่าง Response Body:
{
"id": "run_abc123",
"object": "thread.run",
"status": "completed",
"created_at": 1699073585,
...
}
คำอธิบายพารามตอบของ API:
-
id
: แทน ID ทางเดียวของการรัน -
object
: ระบุประเภทของวัตถุที่คืนมา ซึ่งเป็นthread.run
ที่นี่ -
status
: สถานะของการรัน ค่าที่เป็นไปได้ โดยรวมไปถึงqueued
,in_progress
,completed
,requires_action
,failed
, ฯลฯ -
created_at
: ประทวนแบบstamblep ขณะที่การรันถูกสร้างขึ้น
2.6 รับผลลัพธ์การตอบกลับของอัสซิส
หลังจากที่การรันของอัสซิสเสร็จสิ้นแล้ว เราสามารถอ่านผลการตอบกลับของอัสซิสโดยการตอบคำทัุ้กทุกเป็นวี้วคมื่อละนั้น
CLI:]=;USA]ุTto:น://api.openai.com/v1/threads/thread_abc123/messages
-H "Content-Type: application/json"
-H "Authorization: Bearer $OPENAI_API_KEY"
-H "OpenAI-Beta: assistants=v1"
#### คำอธิบายพารามิเตอร์ API:
- `https://api.openai.com/v1/threads/thread_abc123/messages`: URL ที่ใช้สำหรับการร้องขอ API, ที่ `thread_abc123` เป็นตัวระบุที่ไม่ซ้ำใครของเธรด (Thread)
- เหมือนกับหัวเรื่องที่ใช้สำหรับตรวจสอบสถานะการรันไว้แล้ว, รวมถึงข้อมูลการตรวจสอบและข้อมูลเวอร์ชันของ API
#### ตัวอย่างผลลัพธ์การตอบกลับจาก Assistant:
ในตัวอย่างนี้, ผู้ใช้ได้ถาม Assistant เรื่องคำถามทางคณิตศาสตร์, และ Assistant ได้เพิ่มข้อความตอบกลับไปยังเธรดหลังจากประมวลผล
ผู้ใช้: ฉันต้องการแก้สมการ 3x + 11 = 14
คุณสามารถช่วยฉันได้ไหม?
Assistant: แน่นอกที่, Jane Doe. เพื่อแก้สมการ (3x + 11 = 14)
คุณต้องแยก (x)
ออกมาอยู่ที่ข้างเดียวกันของสมการ จงให้ผมคิดคำตอบให้คุณ
Assistant: คำตอบของสมการ (3x + 11 = 14)
คือ (x = 1)
นะครับ/คะ
หลังจากที่ได้ผลลัพธ์การตอบกลับจาก Assistant แล้ว, มันสามารถนำผลลัพธ์นั้นมาใช้เพื่อช่วยให้ผู้ใช้เข้าใจและใช้บริการที่ถูกนำเสนอโดย Assistant ได้อย่างดียิ่งขึ้น
## 3. เครื่องมือ: เครื่องมือที่สร้างไว้ให้บริการโดย OpenAI
### 3.1 เครื่องมือตัวแปลภาษา
เครื่องมือตัวแปลภาษาทำให้ Assistant API สามารถเขียนและรันโค้ด Python ในสภาพแวดล้อมการรันแบบทดลอง. เครื่องมือนี้สามารถจัดการกับรูปแบบข้อมูลและไฟล์ต่างๆ, และสามารถสร้างไฟล์ที่มีข้อมูลและรูปภาพกราฟิกได้. เครื่องมือตัวแปลภาษาช่วยให้ Assistant ของคุณสามารถรันโค้ดแบบทดลองเพื่อแก้ปัญหาทางคำสั่งและคณิตศาสตร์ที่ซับซ้อน เมื่อโค้ดที่เขียนโดย Assistant ล้มเหลวในการรัน, มันสามารถตัดสินใจให้โค้ดที่แตกต่างกันจนกว่าจะรันได้สำเร็จ
#### เปิดใช้งานเครื่องมือตัวแปลภาษา
เพื่อเปิดใช้งานเครื่องมือตัวแปลภาษา, ให้ส่ง `code_interpreter` ในพารามิเตอร์ `tools` เมื่อสร้างออบเจ็กต์ Assistant:
```bash
curl https://api.openai.com/v1/assistants \
-u :$OPENAI_API_KEY \
-H 'Content-Type: application/json' \
-H 'OpenAI-Beta: assistants=v1' \
-d '{
"instructions": "คุณเป็นติวเตอร์คณิตศาสตร์ส่วนตัว ในกรณีที่ถูกถามเรื่องคำถามทางคณิตศาสตร์, ให้เขียนและรันโค้ดเพื่อตอบคำถาม",
"tools": [
{ "type": "code_interpreter" }
],
"model": "gpt-4-turbo-preview"
}'
จากนั้น, โมเดลจะตัดสินใจเมื่อจะเรียกใช้เครื่องมือตัวแปลภาษาในช่วงการเรนท์ตามลักษณะของคำขอของผู้ใช้ คุณสามารถสนับสนุนพฤติกรรมนี้ผ่านทางไอนัสตรัคชันของ Assistant(e.g., "เขียนโค้ดเพื่อแก้ปัญหานี้")
การใช้เครื่องมือตัวแปลภาษาเพื่อประมวลผลไฟล์
เครื่องมือตัวแปลภาษาสามารถทำการวิเคราะห์ข้อมูลจากไฟล์ นี้เป็นประโยชน์เมื่อคุณต้องการให้ Assistant ได้รับข้อมูลจำนวนมาก หรืออนุญาตให้ผู้ใช้อัพโหลดไฟล์ของตัวเองเพื่อวิเคราะห์. โปรดทราบว่าไฟล์ที่ถูกอัพโหลดสำหรับเครื่องมือตัวแปลภาษาจะไม่ถูกดัชนีสำหรับการดึงข้อมูล สำหรับข้อมูลที่ให้คำแนะนำเพิ่มเติมเกี่ยวกับวิธีการดัชนีการดึงข้อมูล, โปรดอ้างอิงไปที่ส่วนเครื่องมือค้นคืนอย่างละเอียดข้างล่างนี้:
ไฟล์ที่ถูกส่งผ่านที่ระดับ Assistant สามารถเข้าถึงได้โดยการรันที่เกี่ยวข้องกับ Assistant นี้:
curl https://api.openai.com/v1/files \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-F purpose="assistants" \
-F file="@/path/to/mydata.csv"
curl https://api.openai.com/v1/assistants \
-u :$OPENAI_API_KEY \
-H 'Content-Type: application/json' \
-H 'OpenAI-Beta: assistants=v1' \
-d '{
"instructions": "คุณเป็นติวเตอร์คณิตศาสตร์ส่วนตัว ในกรณีที่ถูกถามเรื่องคำถามทางคณิตศาสตร์, ให้เขียนโค้ดและรันโค้ดเพื่อตอบคำถาม",
"tools": [{"type": "code_interpreter"}],
"model": "gpt-4-turbo-preview",
"file_ids": ["file_123abc456"]
}'
การอ่านภาพและไฟล์ที่สร้างโดยตัวแปลโค้ด
ตัวแปลโค้ดยังสามารถส่งออกไฟล์ใน API เช่นการสร้างแผนภูมิภาพ, CSV และไฟล์ PDF มีสองประเภทของไฟล์ที่สร้าง: ภาพ และไฟล์ข้อมูล (เช่น ไฟล์ CSV ที่มีข้อมูลที่สร้างโดย Assistant)
เมื่อตัวแปลโค้ดสร้างภาพ คุณสามารถค้นหาและดาวน์โหลดไฟล์นี้ในฟิลด์ file_id
ของการตอบกลับข้อความของ Assistant:
{
"id": "msg_abc123",
"object": "thread.message",
"created_at": 1698964262,
"thread_id": "thread_abc123",
"role": "assistant",
"content": [
{
"type": "image_file",
"image_file": {
"file_id": "file-abc123"
}
}
]
// ...
}
3.2 เครื่องมือการเรียกคืน
เครื่องมือการเรียกคืนเสริมความสามารถของ Assistant โดยการเพิ่มความรู้จากภายนอกโมเดล (เช่น ข้อมูลผลิตภัณฑ์ที่เป็นกรรมสิทธิ์หรือเอกสารที่ผู้ใช้ให้) เมื่อไฟล์ถูกอัปโหลดและส่งถึง Assistant, OpenAI จะแบ่งแยก, ทำดัชนี, เก็บฝังเอ็มเบดหัวของเอกสารของคุณโดยอัตโนมัติ และดำเนินการค้นหาเวกเตอร์เพื่อดึงเนื้อหาที่เกี่ยวข้องเพื่อตอบคำถามของผู้ใช้
เปิดใช้งานการเรียกคืน
เพื่อเปิดใช้งานการค้นหาในพารามิเตอร์ของ Assistant, กรุณาส่ง retrieval
:
curl https://api.openai.com/v1/assistants \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-H "OpenAI-Beta: assistants=v1" \
-d '{
"instructions": "คุณเป็นแชทบอทที่ให้บริการลูกค้า ใช้ฐานความรู้เพื่อตอบคำถามของลูกค้าอย่างมีประสิทธิภาพ",
"tools": [{"type": "retrieval"}],
"model": "gpt-4-turbo-preview"
}'
อัปโหลดไฟล์เพื่อการเรียกคืน
เช่นเดียวกับตัวแปลโค้ด, ไฟล์สามารถอัปโหลดที่ระดับ Assistant หรือที่ระดับข้อความแต่ละข้อความด้วย
curl https://api.openai.com/v1/files \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-F purpose="assistants" \
-F file="@/path/to/knowledge.pdf"
curl "https://api.openai.com/v1/assistants" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-H "OpenAI-Beta: assistants=v1" \
-d '{
"instructions": "คุณเป็นแชทบอทที่ให้บริการลูกค้า ใช้ฐานความรู้เพื่อตอบคำถามของลูกค้าอย่างมีประสิทธิภาพ",
"name": "Math Tutor",
"tools": [{"type": "retrieval"}],
"model": "gpt-4-turbo-preview"
"file_ids": ["file_123abc456"]
}'
3.3 เครื่องมือการเรียกฟังก์ชัน
เช่นเดียวกับ API การเสร็จสมบูรณ์แชท, API การเสร็จสมบูรณ์ของ Assistants 支援การเรียกใช้ฟังก์ชัน การเรียกใช้ฟังก์ชันให้คุณบอกฟังก์ชันให้ Assistant และสอดคล้องอย่างโรจน์เพื่อเรียกใช้คืนพร้อมพารามิเตอร์ของมันเมื่อการเรียกใช้ฟังก์ชันถูกรัน, Assistants API จะหยุดการทำงาน, และคุณสามารถให้ผลลัพธ์ของการเรียกใช้ฟังก์ชันเพื่อดำเนินการต่อไป.
กำหนดฟังก์ชัน
เมื่อสร้าง Assistant คุณสามารถกำหนดชุดของฟังก์ชันสำหรับ Assistant เรียกใช้ ฟังก์ชันเหล่านี้จำเป็นต้องระบุโดยชัดเจนเมื่อสร้างออบเจ็กต์ Assistant แต่ละฟังก์ชันควรมีชื่อที่ไม่ซ้ำกัน คำอธิบาย และการระบุพารามิเตอร์ที่ต่างกัน
โค้ดต่อไปนี้แสดงวิธีการกำหนดฟังก์ชันสองฟังก์ชันโดยใช้คำสั่ง curl
เมื่อสร้าง Assistant:
curl https://api.openai.com/v1/assistants \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-H "OpenAI-Beta: assistants=v1" \
-d '{
"instructions": "คุณเป็นหุ่นยนต์ทำนายอากาศ ใช้ฟังก์ชันที่ให้มาเพื่อตอบคำถาม",
"tools": [{
"type": "function",
"function": {
"name": "getCurrentWeather",
"description": "รับเงื่อนไขอากาศสำหรับสถานที่ที่ระบุ",
"parameters": {
"type": "object",
"properties": {
"location": {"type": "string", "description": "เมืองและรัฐ เช่น ซานฟรานซิสโก้ รัฐแคลิฟอเนีย"},
"unit": {"type": "string", "enum": ["c", "f"]}
},
"required": ["location"]
}
}
},
{
"type": "function",
"function": {
"name": "getNickname",
"description": "รับชื่อเล่นสำหรับเมือง",
"parameters": {
"type": "object",
"properties": {
"location": {"type": "string", "description": "เมืองและรัฐ เช่น ซานฟรานซิสโก้ รัฐแคลิฟอเนีย"}
},
"required": ["location"]
}
}
}],
"model": "gpt-4-turbo-preview"
}'
อ่านฟังก์ชันที่เรียกโดย Assistant
เมื่อผู้ใช้ส่งข้อความไปยัง Assistant และเนื้อหาของข้อความกระตุ้นการเรียกใช้ฟังก์ชัน คุณต้องอ่านข้อมูลของการเรียกใช้ฟังก์ชันนี้ ในขั้นตอนนี้ Assistant จะสร้างการเรียกใช้งานสถานะ requires_action
ในจุดนี้ คุณสามารถเรียกตัวอ็อบเจกต์ Run เพื่อรับข้อมูลละเอียดเกี่ยวกับการเรียกใช้งานฟังก์ชัน
ต่อไปนี้คือตัวอย่างการเรียกใช้ตัวอ็อบเจกต์ Run แสดงวิธีการรับข้อมูลของการเรียกใช้ฟังก์ชัน:
{
"id": "run_abc123",
"object": "thread.run",
"status": "requires_action",
"required_action": {
"type": "submit_tool_outputs",
"submit_tool_outputs": {
"tool_calls": [
{
"id": "call_abc123",
"type": "function",
"function": {
"name": "getCurrentWeather",
"arguments": "{\"location\":\"ซานฟรานซิสโก้\"}"
}
},
{
"id": "call_abc456",
"type": "function",
"function": {
"name": "getNickname",
"arguments": "{\"location\":\"ลอสแองเจลิส\"}"
}
}
]
}
},
...
}
พารามิเตอร์ tool_calls
มีข้อมูลการเรียกใช้ฟังก์ชัน และคุณเพียงแค่ต้องเรียกฟังก์ชันที่เกี่ยวข้องในโปรแกรมของคุณเอง
ส่งผลลัพธ์ฟังก์ชัน
หลังจากทำการเรียกใช้ฟังก์ชันที่เกี่ยวข้องท้อยแล้วรับผลลัพธ์คุณต้องส่งผลลัพธ์เหล่านี้ไปยัง Assistant เพื่อทำให้ Assistant สามารถดำเนินการต่อการขอของผู้ใช้ ขณะส่งผลลัพธ์ฟังก์ชัน คุณต้องอย่างมั่นใจว่าผลลัพธ์เชื่อมโยงกับการเรียกใช้ฟังก์ชันเดิม
ต่อไปนี้คือโค้ดตัวอย่างการส่งผลลัพธ์ฟังก์ชัน:
curl https://api.openai.com/v1/threads/thread_abc123/runs/run_123/submit_tool_outputs \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-H "OpenAI-Beta: assistants=v1" \
-d '{
"tool_outputs": [
{
"tool_call_id": "call_abc123",
"output": "{\"temperature\": \"22\", \"unit\": \"เซลเซียส\"}"
},
{
"tool_call_id": "call_abc456",
"output": "{\"nickname\": \"LA\"}"
}
]
}'
อธิบายพารามิเตอร์:
- thread_abc123 แทนรหัสของเธรดการสนทนา
- run_123 แทนรหัสของ Object Run
- tool_call_id แทนรหัสของการเรียกใช้ฟังก์ชันเฉพาะ ซึ่งได้รับมาจากพารามิเตอร์ที่แล้วถ้าส่งผลลัพธ์ฟังก์ชันทั้งหมดอย่างประสบความสำเร็จ สถานะของ Run object จะอัปเดตอีกครั้งและ Assistant จะดำเนินการต่อและส่งคำตอบสุดท้ายไปยังผู้ใช้