Chat Completions API در مقابل Assistants API
Chat Completions API یک API بدونحالت (Stateless) است که در هر فراخوانی باید کل تاریخچه مکالمه را خودتان ارسال کنید و کنترل کامل روی همهچیز دارید، در حالی که Assistants API حالتدار (Stateful) است و مدیریت تاریخچه مکالمه (Threads)، فایلها و ابزارهایی مثل تفسیر کد را خودش روی سرور OpenAI نگه میدارد.
| ویژگی | Chat Completions API | Assistants 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 استفاده کنید.
