কনটেন্টে যান
ইমেজ ও ফাইল

ইমেজ ও ফাইল

মেসেজের সাথে ইমেজ পাঠান: কোন মডেল নেয়, গ্রহণযোগ্য রূপ ও তার সীমা।

POST https://api.shannon-ai.com/v1/chat/completions

ইমেজ যায় ইউজার মেসেজের ভেতরে, তার content-এর একটি অংশ হিসেবে। নমুনাটি একটি লোকাল ফাইল পড়ে ডেটা URL হিসেবে পাঠায়।

import base64
from openai import OpenAI

client = OpenAI(api_key="YOUR_API_KEY", base_url="https://api.shannon-ai.com/v1")

with open("photo.jpg", "rb") as f:
    image = base64.b64encode(f.read()).decode()

response = client.chat.completions.create(
    model="shannon-3",
    messages=[{
        "role": "user",
        "content": [
            {"type": "text", "text": "What is in this picture?"},
            {"type": "image_url", "image_url": {"url": "data:image/jpeg;base64," + image}},
        ],
    }],
)

print(response.choices[0].message.content)
200 JSON
{
  "id": "chatcmpl-8d1f3a5c7e9b4d2f6a8c0e2b4d6f8a1c",
  "object": "chat.completion",
  "created": 1791590400,
  "model": "shannon-3",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "A grey cat asleep on a windowsill, with a potted fern beside it.",
        "reasoning_content": null
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 286,
    "completion_tokens": 19,
    "total_tokens": 305
  }
}

কোন মডেল ইমেজ নেয়

মডেল পড়ে
shannon-3, shannon-3-pro, shannon-3.1, shannon-3.1-pro ইমেজ এবং ডকুমেন্ট: PDF, Word, PowerPoint, Excel ও প্লেইন-টেক্সট ফাইল।
shannon-1.6-lite, shannon-1.6-pro ইমেজ।
shannon-2-lite, shannon-2-pro ইমেজ, যেসব রিকোয়েস্ট tools বা response_format-ও পাঠায় সেগুলোতেও।
Kimi-K3-3BIT-REAP, MiniMax-M3-3BIT-REAP, Kimi-K2.6-W4A16-AUTOROUND-REAP, inkling-W4A16-AUTOROUND-REAP, MiMo-V2.5-W8A16 ইমেজ।
DeepSeek-V4-Pro-0813-3BIT-REAP, GLM-5.2-3BIT-REAP, Nemotron3Ultra-3BIT-REAP, DeepSeek-V4-Flash-0731-W4A16-AUTOROUND-REAP, Laguna-S-2.1-W4A16-AUTOROUND-REAP, MiMo-V2.5-Pro-W8A16, Hy3-W8A16 টেক্সট। ইমেজসহ রিকোয়েস্টের উত্তরে স্ট্যাটাস 400 আসে।
shannon-coder-1 টেক্সট।

GET /v1/models প্রতিটি id-র ইমেজ ইনপুট capabilities.vision হিসেবে জানায়। মডেল ও মূল্য

  • Shannon মডেল শেষ ইউজার মেসেজের ফাইল পড়ে। যে মেসেজে ইমেজ নিয়ে প্রশ্ন করছেন, ইমেজটি সেই মেসেজেই রাখুন।
  • Shannon 3 পরিবার আগের ইউজার মেসেজের কয়েকটি ইমেজ ও ডকুমেন্টও নজরে রাখে, যদি সেগুলো ইনলাইন পাঠানো হয়ে থাকে, এবং প্রতি রিকোয়েস্টে প্রথম থেকে গুনে একটি নির্দিষ্ট সর্বোচ্চ সংখ্যক ইমেজ পড়ে।
  • হোস্টেড ওপেন-ওয়েট মডেল কথোপকথনের প্রতিটি মেসেজের ইমেজ পড়ে।

গ্রহণযোগ্য রূপ

ফাইল পাঠানো যায় দুইভাবে: রিকোয়েস্টের ভেতরে base64 হিসেবে, অথবা এমন একটি ঠিকানা হিসেবে যা API নিজে আনে। প্রতিটি ফাইল রিকোয়েস্টের সাথেই যায়; API-তে কোনো আপলোড এন্ডপয়েন্ট নেই।

এন্ডপয়েন্ট রিকোয়েস্টের ভেতরে (base64) ঠিকানা দিয়ে
/v1/chat/completions {"type": "image_url", "image_url": {"url": "data:image/jpeg;base64,…"}} {"type": "image_url", "image_url": {"url": "https://…"}}
/v1/responses {"type": "input_image", "image_url": "data:image/jpeg;base64,…"} {"type": "input_image", "image_url": "https://…"}
/v1/messages {"type": "image", "source": {"type": "base64", "media_type": "image/jpeg", "data": "…"}} {"type": "image", "source": {"type": "url", "url": "https://…"}}

প্রতিটি ফরম্যাটে একই ইউজার মেসেজ:

{
  "role": "user",
  "content": [
    {"type": "text", "text": "What is in this picture?"},
    {
      "type": "image_url",
      "image_url": {
        "url": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD…"
      }
    }
  ]
}
  • ডেটা URL-এর রূপ data:<media type>;base64,<data>। ;base64 অংশটি আবশ্যক।
  • /v1/chat/completions ও /v1/responses-এ image_url হতে পারে সরাসরি string, অথবা একটি অবজেক্ট {"url": "…"}।
  • ফাইলের ধরন আসে ডেটা URL বা media_type থেকে। কোনোটি না থাকলে ইমেজ image/png হিসেবে পড়া হয়।
  • ইনলাইন ফাইল রিকোয়েস্ট বডির আকারে গণনা হয়, যা 32 MiB পর্যন্ত হতে পারে।
  • সামঞ্জস্যের জন্য গ্রহণ করা হয়: image_url.detail।

দূরবর্তী ফাইলের সীমা

আপনি ঠিকানা পাঠালে মডেল চলার আগে API ফাইলটি এনে নেয়, এই সীমার মধ্যে:

সীমা নিয়ম
আকার প্রতি ফাইলে 8 MiB পর্যন্ত।
সময় উত্তর দিতে 20 সেকেন্ড।
রিডিরেক্ট সর্বোচ্চ 5টি।
ঠিকানা http:// বা https://, ঠিকানায় ইউজারনেম বা পাসওয়ার্ড ছাড়া, পাবলিক ঠিকানাযুক্ত হোস্টে।
হোস্টের উত্তর 200 রেঞ্জের একটি স্ট্যাটাস এবং খালি নয় এমন বডি। ফাইলের ধরন Content-Type থেকে পড়া হয়।
যে পরিচয়ে অনুরোধ করা হয় User-Agent: ShannonBot/1.0 (+https://shannon-ai.com)

ইমেজ tokens-এ কীভাবে গণনা হয়

হোস্টেড ওপেন-ওয়েট মডেলে প্রতি 28 × 28 পিক্সেলের প্যাচ একটি ইমেজ token: প্রস্থকে 28 দিয়ে ভাগ করে ওপরের দিকে পূর্ণ করা, গুণ উচ্চতাকে 28 দিয়ে ভাগ করে ওপরের দিকে পূর্ণ করা। ফলাফল usage.prompt_tokens-এর অংশ এবং ইনপুট হিসেবে বিল হয়।

1024 × 1024
1,369 tokens
1920 × 1080
2,691 tokens
512 × 512
361 tokens
  • দূরবর্তী ইমেজ আগে আনা হয়, তাই তার প্রকৃত আকার গণনা হয়।
  • যে ইমেজের আকার পড়া যায় না তা 1,024 tokens ধরা হয়।
  • গণনার এন্ডপয়েন্টগুলো ডেটা URL-এর জন্য একই নিয়ম ব্যবহার করে। তারা দূরবর্তী ঠিকানা আনে না এবং সেটিকে 1,024 tokens ধরে। Token গণনা
  • Shannon মডেলে ইমেজসহ রিকোয়েস্টের খরচ কত হলো তা উত্তরের usage থেকে পড়ুন।

ডকুমেন্ট ও অন্যান্য ফাইল

Shannon 3 পরিবার (shannon-3, shannon-3-pro, shannon-3.1, shannon-3.1-pro) ডকুমেন্টও পড়ে। ডকুমেন্টের টেক্সট বের করে আপনার বার্তার সাথে মডেলকে দেওয়া হয়।

ডকুমেন্ট মিডিয়া টাইপ
PDF application/pdf
Word application/vnd.openxmlformats-officedocument.wordprocessingml.document
PowerPoint application/vnd.openxmlformats-officedocument.presentationml.presentation
Excel application/vnd.openxmlformats-officedocument.spreadsheetml.sheet

ইমেজের মতো ডকুমেন্টও ইউজার মেসেজের একটি অংশ:

এন্ডপয়েন্ট রিকোয়েস্টের ভেতরে (base64) ঠিকানা দিয়ে
/v1/chat/completions, /v1/messages {"type": "document", "source": {"type": "base64", "media_type": "application/pdf", "data": "…"}} {"type": "document", "source": {"type": "url", "url": "https://…"}}
/v1/responses {"type": "input_file", "file_data": "data:application/pdf;base64,…"} {"type": "input_file", "file_url": "https://…"}
{
  "model": "shannon-3",
  "messages": [
    {
      "role": "user",
      "content": [
        {
          "type": "document",
          "source": {
            "type": "base64",
            "media_type": "application/pdf",
            "data": "JVBERi0xLjcKJeLjz9MK…"
          }
        },
        {"type": "text", "text": "Summarise this report in five points."}
      ]
    }
  ]
}
  • ফাইলের প্রকৃত মিডিয়া টাইপ দিন। না দিলে ডকুমেন্ট application/pdf হিসেবে পড়া হয়।
  • CSV-র মতো প্লেইন-টেক্সট ফাইল টেক্সট হিসেবে পড়া হয় এবং একইভাবে যুক্ত হয়।
  • ডকুমেন্ট পড়া না গেলে, বা ফাইলটি অন্য ধরনের হলে, মডেলকে তা জানানো হয় এবং সে উত্তরে সেটি বলতে পারে। স্ট্যাটাস তবু 200।
  • অন্য প্রতিটি মডেলে ডকুমেন্ট অংশটি মডেলের পড়ার বিষয় থেকে বাদ যায়, এবং রিকোয়েস্টের বাকি অংশ থেকে উত্তর দেওয়া হয়।
  • ঠিকানা দিয়ে পাঠানো ডকুমেন্ট ওপরের দূরবর্তী ফাইলের সীমা মেনে আনা হয়।

এরর

স্ট্যাটাস টাইপ বার্তা কখন
400 invalid_request_error <id> does not accept image input শুধু টেক্সট নেয় এমন একটি হোস্টেড ওপেন-ওয়েট মডেলকে ইমেজ পাঠানো হয়েছে। আপনার ব্যালেন্স থেকে কিছু কাটা হয় না।
400 invalid_request_error audio and video input are not supported by any hosted model একটি হোস্টেড ওপেন-ওয়েট মডেলকে অডিও বা ভিডিও অংশ পাঠানো হয়েছে।
413 invalid_request_error Failed to buffer the request body: … ইনলাইন ফাইলসহ রিকোয়েস্ট বডি 32 MiB-এর চেয়ে বড়। এররে code: "request_too_large" থাকে।

রিকোয়েস্টে যে ফাইলই থাকুক, Shannon মডেল স্ট্যাটাস 200 দিয়ে উত্তর দেয়: যে অংশ সে পড়ে না তা বাদ পড়ে। এরর হ্যান্ডলিং