CodeShot

Chat Completions API در مقابل Assistants API

Chat Completions API یک API بدون‌حالت (Stateless) است که در هر فراخوانی باید کل تاریخچه مکالمه را خودتان ارسال کنید و کنترل کامل روی همه‌چیز دارید، در حالی که Assistants API حالت‌دار (Stateful) است و مدیریت تاریخچه مکالمه (Threads)، فایل‌ها و ابزارهایی مثل تفسیر کد را خودش روی سرور OpenAI نگه می‌دارد.

ویژگیChat Completions APIAssistants API
مدیریت وضعیتشما مدیریت می‌کنید (Stateless)سرور OpenAI مدیریت می‌کند
ابزارهای آمادهنداردCode Interpreter، File Search
کنترل و انعطافکاملمحدودتر

کِی از Chat Completions API استفاده کنیم؟

وقتی می‌خواهید کنترل کامل روی مدیریت تاریخچه، هزینه دقیق هر توکن و معماری داشته باشید یا نیاز به سازگاری با مدل‌های غیر OpenAI دارید.

کِی از Assistants API استفاده کنیم؟

وقتی می‌خواهید سریع‌تر یک دستیار با حافظه مکالمه، مدیریت فایل و ابزارهای آماده (Code Interpreter، File Search) بسازید بدون پیاده‌سازی زیرساخت آن.

مثال Chat Completions API

var messages = new List<ChatMessage> {
    new UserChatMessage("سلام")
};
var response = await client.CompleteChatAsync(messages);

مثال Assistants API

thread = client.beta.threads.create()
client.beta.threads.messages.create(
    thread_id=thread.id, role="user", content="سلام")
run = client.beta.threads.runs.create(
    thread_id=thread.id, assistant_id=assistant.id)

اشتباه رایج

اشتباه رایج پیاده‌سازی دستی مدیریت تاریخچه، فایل و حافظه مکالمه روی Chat Completions API در حالی که Assistants API همین قابلیت‌ها را آماده و مدیریت‌شده ارائه می‌دهد؛ این کار زمان توسعه را بدون دلیل افزایش می‌دهد.

جمع‌بندی

برای کنترل کامل و انعطاف حداکثری از Chat Completions API و برای ساخت سریع دستیار با حافظه و ابزار آماده از Assistants API استفاده کنید.