Files API
آپلود و استفاده مجدد از file_id در Chat
نمای کلی
Files API به شما امکان میدهد یک بار فایل را آپلود کنید و با شناسهٔ AiFO (file_…) در درخواستهای Chat دوباره استفاده کنید. فایل متعلق به workspace کلید API است، خصوصی است، و از مسیر عمومی /media/ سرو نمیشود.
- حداکثر حجم هر فایل: ۲۰ مگابایت
- purpose فعلی: فقط chat
- مالکیت: workspace (کلیدهای همان workspace میتوانند استفاده کنند)
- مدلهای OpenRouter با پشتیبانی file در پروفایل مؤثر پشتیبانی میشوند
- OpenAI Chat همچنان ورودی file را رد میکند (unsupported_modality)
POST /v1/files
آپلود multipart/form-data با فیلدهای file (باینری) و purpose=chat. پاسخ metadata آماده (READY) است و bucket/object key برنمیگردد.
curl https://api.aifoapp.ir/v1/files \
-H "Authorization: Bearer aifo_sk_live_YOUR_API_KEY" \
-F "file=@./document.pdf;type=application/pdf" \
-F "purpose=chat" {
"id": "file_...",
"object": "file",
"bytes": 12345,
"created_at": 1710000000,
"filename": "document.pdf",
"purpose": "chat",
"status": "ready",
"mime_type": "application/pdf"
}GET /v1/files و GET /v1/files/:id
فهرست فایلهای workspace جاری (بدون حذفشدهها) با limit و after برای صفحهبندی، و دریافت metadata یک فایل. فایل workspace دیگر همیشه file_not_found برمیگرداند.
curl "https://api.aifoapp.ir/v1/files?limit=20" \
-H "Authorization: Bearer aifo_sk_live_YOUR_API_KEY"
curl "https://api.aifoapp.ir/v1/files/file_..." \
-H "Authorization: Bearer aifo_sk_live_YOUR_API_KEY" DELETE /v1/files/:id
حذف idempotent در سطح workspace. پس از حذف، استفاده در Chat با file_not_found شکست میخورد.
curl -X DELETE "https://api.aifoapp.ir/v1/files/file_..." \
-H "Authorization: Bearer aifo_sk_live_YOUR_API_KEY"استفاده از file_id در Chat Completions
curl https://api.aifoapp.ir/v1/chat/completions \
-H "Authorization: Bearer aifo_sk_live_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "google/gemini-2.5-flash-lite",
"messages": [{
"role": "user",
"content": [
{"type": "text", "text": "این سند درباره چیست؟"},
{"type": "file", "file": {"file_id": "file_..."}}
]
}]
}'