0Pricing
AI Agents · บทเรียน

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 ตัวแปลโค้ด และการจัดเก็บไฟล์ให้

จุดเด่นสำคัญสองประการ

  1. การค้นหาไฟล์ในตัว — RAG ที่จัดการให้ ไม่ต้องเปิดใช้ฐานข้อมูลเวกเตอร์
  2. ตัวแปลโค้ดในตัว — การเรียกใช้ไพธอนในแซนด์บ็อกซ์

หากต้องการฟีเจอร์เหล่านี้โดยไม่ต้องสร้างเอง แอสซิสแทนต์ก็เป็นตัวเลือกที่รวดเร็ว

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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. LangGraph เทียบกับ CrewAI เทียบกับ AutoGen
  2. Letta (เดิมคือ MemGPT) สำหรับเอเจนต์ที่ทำงานระยะยาว
  3. OpenAI Assistants API และเธรด
  4. การเลือกเฟรมเวิร์กที่เหมาะกับแต่ละกรณีใช้งาน
← กลับไปที่ AI Agents