OpenAI Assistants API และเธรด
เอเจนต์ที่ OpenAI จัดการให้: ไม่ต้องดูแลโครงสร้างพื้นฐาน แต่ผูกติดกับผู้ให้บริการและขาดความสามารถบางส่วนด้านการสังเกตการณ์
OpenAI Assistants API และเธรด เป็นบทเรียน AI Agents ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน AI Agents และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส AI Agents มีบทเรียนทั้งหมด 4 บทเรียน
บางส่วนของบทเรียนนี้ยังไม่ได้รับการแปล และแสดงเป็นภาษาอังกฤษ
คืออะไร
OpenAI Assistants API เป็นผลิตภัณฑ์เอเจนต์แบบมีผู้จัดการให้บริการ คุณกำหนดผู้ช่วย (โมเดล + คำสั่ง + เครื่องมือ) และผู้ใช้โต้ตอบผ่าน "เธรด" (การสนทนา) OpenAI จัดการสถานะ RAG ตัวแปลโค้ด และการจัดเก็บไฟล์ให้
จุดเด่นสำคัญสองประการ
- การค้นหาไฟล์ในตัว — RAG ที่จัดการให้ ไม่ต้องเปิดใช้ฐานข้อมูลเวกเตอร์
- ตัวแปลโค้ดในตัว — การเรียกใช้ไพธอนในแซนด์บ็อกซ์
หากต้องการฟีเจอร์เหล่านี้โดยไม่ต้องสร้างเอง แอสซิสแทนต์ก็เป็นตัวเลือกที่รวดเร็ว
Creating an Assistant
from openai import OpenAI
client = OpenAI()
assistant = client.beta.assistants.create(
name='Support Bot',
instructions='You help customers with orders.',
model='gpt-4o-mini',
tools=[{'type': 'file_search'}, {'type': 'code_interpreter'}]
)Threads = Conversations
thread = client.beta.threads.create()
client.beta.threads.messages.create(
thread_id=thread.id,
role='user',
content='Where is my order?'
)
run = client.beta.threads.runs.create(
thread_id=thread.id,
assistant_id=assistant.id
)การตรวจสอบจนเสร็จสมบูรณ์
การเรียกใช้ run เป็นแบบอะซิงโครนัส ให้ตรวจสอบซ้ำจนกว่าจะเสร็จสิ้น:
import time
while run.status not in ('completed', 'failed', 'requires_action'):
time.sleep(1)
run = client.beta.threads.runs.retrieve(thread_id=thread.id, run_id=run.id)การเรียกใช้ฟังก์ชัน
รูปแบบเดียวกับเครื่องมือของ chat.completions เมื่อ run.status == 'requires_action' ให้ส่งคำขอเรียกใช้เครื่องมือและส่งผลลัพธ์:
if run.status == 'requires_action':
tool_outputs = []
for tc in run.required_action.submit_tool_outputs.tool_calls:
result = dispatch(tc)
tool_outputs.append({'tool_call_id': tc.id, 'output': json.dumps(result)})
client.beta.threads.runs.submit_tool_outputs(thread_id=thread.id, run_id=run.id, tool_outputs=tool_outputs)File Search (Vector Store)
vector_store = client.beta.vector_stores.create(name='docs')
client.beta.vector_stores.file_batches.upload_and_poll(
vector_store_id=vector_store.id,
files=[open('handbook.pdf', 'rb')]
)
assistant = client.beta.assistants.update(assistant.id, tool_resources={'file_search': {'vector_store_ids': [vector_store.id]}})ตัวแปลโค้ด
เพิ่มตัวแปลโค้ด แล้วแอสซิสแทนต์จะได้รับไพธอนในแซนด์บ็อกซ์ เหมาะอย่างยิ่งสำหรับงานข้อมูล:
{'type': 'code_interpreter'}Streaming
with client.beta.threads.runs.stream(thread_id=thread.id, assistant_id=assistant.id) as stream:
for event in stream:
print(event)ข้อแลกเปลี่ยน
- + ไม่ต้องมีโครงสร้างพื้นฐานสำหรับคลังเวกเตอร์และแซนด์บ็อกซ์
- + จัดการหน่วยความจำและสถานะเธรดให้
- + มีการอ้างอิงแหล่งที่มาจากการค้นหาไฟล์ในตัว
- - ผูกติดกับผู้ให้บริการ
- - ควบคุมกลยุทธ์การค้นคืนได้น้อยกว่า
- - มีเวลาแฝงสูงกว่า chat.completions โดยตรง
- - ความสามารถในการสังเกตการณ์มีจำกัดกว่า
แผนงานในอนาคต
OpenAI ประกาศ API การตอบกลับในฐานะผลิตภัณฑ์ที่จะมาแทนที่แอสซิสแทนต์ บางทีมจึงรอให้ API การตอบกลับมีความชัดเจนก่อนจึงค่อยใช้แอสซิสแทนต์
ใช้สำหรับต้นแบบ
ต้องการสร้างบอตตอบคำถามจากเอกสารด้วยโค้ด 50 บรรทัดใช่ไหม แอสซิสแทนต์เอาชนะได้ยาก แต่สำหรับระบบใช้งานจริงที่มี SLA เข้มงวดและการค้นคืนแบบกำหนดเอง ควรสร้างเอง
ค่าใช้จ่าย
แอสซิสแทนต์คิดค่าบริการดังนี้:
- ค่าโทเค็นตามปกติ
- การค้นหาไฟล์: ค่าพื้นที่จัดเก็บต่อวันต่อ GB
- ตัวแปลโค้ด: คิดต่อเซสชัน
ประหยัดสำหรับการใช้งานปริมาณน้อย แต่อาจสะสมเป็นจำนวนมากเมื่อใช้งานหนัก
แอสซิสแทนต์เหมาะกับงานใดที่สุด
กรณีการใช้งานใดเหมาะกับ API ของแอสซิสแทนต์มากที่สุด
สรุปทบทวน
แอสซิสแทนต์ = ผลิตภัณฑ์เอเจนต์ที่มีการจัดการให้ ประกอบด้วยการค้นหาไฟล์ ตัวแปลโค้ด และเธรด เหมาะอย่างยิ่งสำหรับต้นแบบ แต่ไม่เหมาะเท่าไรกับระบบใช้งานจริงขนาดใหญ่ ควรติดตาม API การตอบกลับไว้
คำถามที่พบบ่อย
บทเรียน “OpenAI Assistants API และเธรด” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “OpenAI Assistants API และเธรด” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส AI Agents ให้อัปเกรดเป็น CoddyKit PRO คอร์ส AI Agents มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “OpenAI Assistants API และเธรด”
เอเจนต์ที่ OpenAI จัดการให้: ไม่ต้องดูแลโครงสร้างพื้นฐาน แต่ผูกติดกับผู้ให้บริการและขาดความสามารถบางส่วนด้านการสังเกตการณ์ คุณปฏิบัติ AI Agents ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน AI Agents หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน AI Agents บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน
บทเรียน “OpenAI Assistants API และเธรด” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน AI Agents นี้ได้ไหม
ได้ บทเรียน AI Agents ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- LangGraph เทียบกับ CrewAI เทียบกับ AutoGen
- Letta (เดิมคือ MemGPT) สำหรับเอเจนต์ที่ทำงานระยะยาว
- OpenAI Assistants API และเธรด
- การเลือกเฟรมเวิร์กที่เหมาะกับแต่ละกรณีใช้งาน