اکنون میتوانید علاوه بر متن، تصویر و PDF ارسال کنید؛ همچنین صوت و اسناد متنی در بخشهای اختصاصی پوشش داده شدهاند
این قابلیت برای مدلهای سازگار فعال است. اگر مدل انتخابی شما از یک ورودی پشتیبانی نکند، پیام خطای واضح همراه با مدلهای پیشنهادی دریافت میکنید.
مدلهای چندوجهی (Vision) راهیانا امکان ارسال تصاویر و فایلهای PDF را در کنار متن فراهم میکنند. این قابلیت برای کاربردهایی مانند تحلیل تصویر، استخراج اطلاعات از اسناد، OCR و ... قابل استفاده است.
ورودی تصویر و PDF فقط توسط مدلهایی که supportsVision یا inputModalities شامل image
یا pdf
دارند پشتیبانی میشود.
برای مشاهده مدلهای پشتیبان، به صفحه مدلها مراجعه کنید.
درخواست خود را به /api/v1/chat/completions
ارسال کنید.
در آرایه messages
، ورودی تصویر را با نوع image_url
و ورودی PDF را با نوع file
قرار دهید.
برای تصاویر، میتوانید URL یا داده Base64 ارسال کنید. برای PDF فقط داده Base64 (data URL) مجاز است.
پیشنهاد میشود ابتدا متن (prompt) و سپس تصویر/PDF را در آرایه content
قرار دهید.
پارامتر | نوع | ضروری؟ | توضیحات |
---|---|---|---|
type | string | بله | نوع ورودی: image_url برای تصویر، file برای PDF. |
image_url | { url: string } | بله | آدرس اینترنتی یا data URL (base64) تصویر. |
file | { filename: string, file_data: string } | بله | نام فایل و داده base64 (data URL) برای PDF. |
فرمت file_data
برای PDF باید data URL باشد (مثال: data:application/pdf;base64,...
).
فرمتهای پشتیبانیشده تصویر برای data URL: image/png
، image/jpeg
، image/webp
.
نمونه کدهای ارسال تصویر (URL و Base64) و PDF (Base64) در چند زبان:
curl -X POST https://rahyana.ir/api/v1/chat/completions -H "Authorization: Bearer YOUR_RAHYANA_API_KEY" -H "Content-Type: application/json" -d '{
"model": "some-vision-model-slug",
"messages": [
{
"role": "user",
"content": [
{"type": "text", "text": "این تصویر را توصیف کن:"},
{
"type": "image_url",
"image_url": {
"url": "https://example.com/image.jpg"
}
}
]
}
],
"max_tokens": 300
}'
# رشته base64 تصویر خود را آماده کنید (مثلاً: base64_image_data=$(base64 -w 0 your_image.jpg))
# مقدار YOUR_BASE64_ENCODED_IMAGE_DATA و YOUR_MIME_TYPE را جایگزین کنید
curl -X POST https://rahyana.ir/api/v1/chat/completions -H "Authorization: Bearer YOUR_RAHYANA_API_KEY" -H "Content-Type: application/json" -d '{
"model": "some-vision-model-slug",
"messages": [
{
"role": "user",
"content": [
{"type": "text", "text": "محتوای این تصویر چیست؟"},
{
"type": "image_url",
"image_url": {
"url": "data:YOUR_MIME_TYPE;base64,YOUR_BASE64_ENCODED_IMAGE_DATA"
}
}
]
}
],
"max_tokens": 300
}'
# رشته base64 فایل PDF خود را آماده کنید (مثلاً: base64_pdf_data=$(base64 -w 0 your_document.pdf))
# مقدار YOUR_BASE64_ENCODED_PDF_DATA را جایگزین کنید
curl -X POST https://rahyana.ir/api/v1/chat/completions -H "Authorization: Bearer YOUR_RAHYANA_API_KEY" -H "Content-Type: application/json" -d '{
"model": "some-vision-model-slug",
"messages": [
{
"role": "user",
"content": [
{"type": "text", "text": "این فایل PDF را خلاصه کن:"},
{
"type": "file",
"file": {
"filename": "document.pdf",
"file_data": "data:application/pdf;base64,YOUR_BASE64_ENCODED_PDF_DATA"
}
}
]
}
],
"max_tokens": 500
}'
اگر مدل انتخابی از ورودی شما پشتیبانی نکند، پاسخ خطا بهصورت زیر است:
{
"error": {
"message": "این مدل از ورودی تصویر پشتیبانی نمیکند. لطفاً یک مدل سازگار با تصویر انتخاب کنید.",
"type": "invalid_request_error",
"param": "messages",
"code": "unsupported_media_image"
},
"suggested_models": ["gpt-4o-mini", "some-vision-model-slug"]
}
میتوانید یکی از مدلهای پیشنهادی را انتخاب کنید یا در صفحه مدلها، مدل سازگار دیگری بیابید.
میتوانید صوت را بهصورت audio_url
(HTTPS URL یا data URL) یا audio_data
(data URL) ارسال کنید. فرمتهای مجاز: mp3، wav، ogg.
data:audio/mpeg;base64,...
inputModalities
شامل audio
داشته باشد.مثال cURL (audio_url):
curl -s -X POST https://your-host/api/v1/chat/completions \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "model": "your-audio-capable-model", "messages": [ { "role": "user", "content": [ { "type": "text", "text": "Transcribe this audio" }, { "type": "audio_url", "audio_url": { "url": "https://example.com/audio.mp3", "format": "mp3" } } ] } ]}'
فایلهای متنی (JSON، CSV، Markdown، کد و ...) را با document_text
ارسال کنید یا از document_url
استفاده کنید.
{ type: 'document_text', document: { filename?: string, mime?: string, language?: string, text: string } }
inputModalities
شامل documents
داشته باشد.مثال cURL (document_text):
DOC_TEXT=$(printf "# Title\nHello" | sed ':a;N;$!ba;s/
/\n/g')curl -s -X POST https://your-host/api/v1/chat/completions \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "model": "your-documents-capable-model", "messages": [ { "role": "user", "content": [ { "type": "document_text", "document": { "filename": "note.md", "mime": "text/markdown", "language": "markdown", "text": "'"$DOC_TEXT"'" } } ] } ]}'
content
قرار دهید.