সাধারণ প্রশ্ন
সমস্যা সমাধান
অথেন্টিকেশন, মডেল, স্ট্রিমিং, টাস্ক ও রেট-লিমিটের সমস্যা লক্ষণ অনুযায়ী সমাধান করুন।
লক্ষণ দিয়ে শুরু করুন, তারপর সমাধান অনুসরণ করুন। বেশিরভাগ ব্যর্থতা আসে base URL, key, মডেল ID বা ব্যালেন্স থেকে।
লক্ষণভিত্তিক টেবিল
| লক্ষণ | সম্ভাব্য কারণ | সমাধান |
|---|---|---|
401 UNAUTHORIZED | key অনুপস্থিত, ভুল, প্রত্যাহৃত বা পাঠানো হয়নি | Authorization: Bearer $FELO_API_KEY পাঠান; প্রত্যাহার করা হলে নতুন key তৈরি করুন |
402 INSUFFICIENT_CREDITS | ব্যালেন্স কলটি বহন করতে পারছে না | Console Billing-এ টপ আপ করুন |
| প্রতিটি অনুরোধে 404 | Base URL-এ এমন path আছে যা endpoint ইতিমধ্যে যোগ করে | OpenAI ক্লায়েন্টের জন্য https://openapi.felo.ai/api/v1 এবং Anthropic ক্লায়েন্টের জন্য https://openapi.felo.ai/api ব্যবহার করুন |
| একটি মডেলে 404 | মডেল ID পাবলিক নয়, বা endpoint এটি পরিবেশন করে না | মডেল পেজে মডেল ID এবং endpoint-এর ডকস দেখুন |
400 model বা max_tokens ত্রুটি | আবশ্যক ফিল্ড অনুপস্থিত, বা মডেল অনুরোধের গঠন গ্রহণ করে না | Messages-এর জন্য max_tokens যোগ করুন; অসমর্থিত ফিল্ড সরান |
| 429 | রেট সীমা, বা একটি আপস্ট্রিম প্রোভাইডার সীমা | Retry-After পড়ুন; Errors, Limits, and Retries দেখুন |
| 5xx | আপস্ট্রিম বা সার্ভিস ব্যর্থতা | ব্যাকঅফসহ রিট্রাই করুন; স্থায়ী হলে request_id অন্তর্ভুক্ত করুন |
| স্ট্রিম সংযুক্ত হয় কিন্তু কিছু পাঠায় না | একটি প্রক্সি রেসপন্স বাফার করছে, বা ইভেন্ট পার্সার ভুল ফরম্যাট প্রত্যাশা করছে | স্ট্রিম ক্রমান্বয়ে পড়ুন; আপনার প্রক্সিতে রেসপন্স বাফারিং বন্ধ করুন |
| টাস্ক কখনো শেষ হয় না | ভুল পোল endpoint, বা টার্মিনাল স্ট্যাটাস সামলানো হয়নি | টাস্কের নিজস্ব স্ট্যাটাস endpoint পোল করুন এবং টার্মিনাল মানে থামুন |
| টুল কল উপেক্ষিত | মডেলটি সেই সক্ষমতা ঘোষণা করে না | ক্যাটালগে supported_parameters দেখুন |
| Data API 404 ফেরত দেয় | /v1/beta প্রিফিক্স দুবার যোগ করা হয়েছে | রেফারেন্সে লেখা ঠিক সেই path ব্যবহার করুন |
প্রমাণীকরণ
প্রত্যাহৃত key এমন একটি message ফেরত দেয় যেখানে key-এর প্রিফিক্স উল্লেখ থাকে:
{
"status": 401,
"code": "UNAUTHORIZED",
"message": "API Key has been revoked (keyPrefix=...)"
}চেকলিস্ট:
- Model API এবং Felo API-র জন্য header হলো
Authorization: Bearer <key>। - Data API এছাড়া
X-API-Key: <key>গ্রহণ করে। - key কোটেশনে মোড়ানো নয়, এবং কপি করা পরিবেশ চলক থেকে কোনো শেষের newline নেই।
- ডিপ্লয় করা পরিবেশে আসলে ভেরিয়েবলটি সেট আছে; লোকালে কাজ করা key প্রোডাকশনে অনুপস্থিত থাকতে পারে।
- key মুছে ফেলা বা রোটেট করা হয়নি। মুছে ফেলা বা রোটেট করা key আবার দেখানো যায় না; নতুন একটি তৈরি করুন।
key তৈরি ও সীমার জন্য Authentication দেখুন।
Base URL-এর ফাঁদ
| ক্লায়েন্ট | সঠিক base URL |
|---|---|
| OpenAI SDK | https://openapi.felo.ai/api/v1 |
| Anthropic SDK | https://openapi.felo.ai/api |
| Raw মডেল endpoint | https://openapi.felo.ai/api/v1/chat/completions, /responses, বা /messages |
| Data API | https://openapi.felo.ai/v1/beta |
Felo /v2 API | https://openapi.felo.ai/v2 |
দুটি সাধারণ ভুল:
- SDK ইতিমধ্যে বাড়ায় এমন base URL-এ
/chat/completionsযোগ করা। - Anthropic base URL
https://openapi.felo.ai/api/v1সেট করা। SDK/v1/messagesযোগ করে, তাই অনুরোধ হয়/api/v1/v1/messages।
মডেল ID সমস্যা
মডেল ID হলো ক্যাটালগের পাবলিক ID, আপস্ট্রিম প্রোভাইডারের অভ্যন্তরীণ নাম বা প্রদর্শিত নাম নয়।
- মডেল পেজে বা
GET /api/v1/models-এ ID খুঁজুন। - মডেলটি আপনি যে প্রোটোকল কল করছেন তা সমর্থন করে (
supported_protocols) নিশ্চিত করুন। - আপনি চ্যানেল পিন করলে সেই চ্যানেলটি প্রকাশিত ও সেই মডেলের জন্য রানযোগ্য তা নিশ্চিত করুন। অনুপলব্ধ চ্যানেল ফলব্যাক নয়।
Channels and Provider Routing দেখুন।
স্ট্রিমিং সমস্যা
- অনুরোধ body-তে
stream: trueসেট করুন, query প্যারামিটার হিসেবে নয়। - রেসপন্স body স্ট্রিম হিসেবে পড়ুন। সম্পূর্ণ রেসপন্সের অপেক্ষা স্ট্রিমিংকে ব্যর্থ করে।
- কিছু প্রক্সি ও সার্ভারলেস প্ল্যাটফর্ম রেসপন্স বাফার করে। যে রুট অনুরোধ প্রক্সি করে সেখানে বাফারিং বন্ধ করুন।
- Chat Completions
choices[0].deltaস্ট্রিম করে,choices[0].messageনয়। চূড়ান্ত কনটেন্ট অনেক chunk জুড়ে আসে। - সংযোগ বিচ্ছিন্ন হলে স্ট্রিম পরিষ্কার টার্মিনাল ইভেন্ট ছাড়াই শেষ হতে পারে। সংযোগ বিচ্ছিন্ন হওয়াকে অসম্পূর্ণ রেসপন্স হিসেবে ধরুন।
অ্যাসিঙ্ক টাস্ক সমস্যা
- টাস্ক পরিবারের নিজস্ব স্ট্যাটাস endpoint পোল করুন। Felo ওয়ার্কফ্লো
GET /v2/tasks/{task_id}/statusব্যবহার করে; মডেলের ভিডিও ও ইমেজ টাস্ক তাদের নিজস্ব জেনারেশন endpoint ব্যবহার করে। - কেবল সফলতাই নয়, ব্যর্থতা ও মেয়াদোত্তীর্ণতাসহ প্রতিটি টার্মিনাল স্ট্যাটাসে থামুন।
- ভিডিও ও ইমেজ callback বর্তমানে উপেক্ষা করা হয়। webhook-এর অপেক্ষা করবেন না।
- ফলাফলের URL স্বল্পস্থায়ী হতে পারে। ডাউনলোডের মেয়াদ শেষ হলে স্ট্যাটাস endpoint থেকে নতুন URL চান।
- আবার সাবমিট করার আগে টাস্ক দেখুন। চলমান টাস্ক আবার সাবমিট করলে ডুপ্লিকেট তৈরি হয় এবং দুটোই বিল হয়।
Async Tasks দেখুন।
Data API সমস্যা
- Data API রেফারেন্স থেকে সঠিক method path রাখুন।
- অনুরোধ body সরবরাহকারী-নির্দিষ্ট। এক সরবরাহকারীর জন্য কাজ করা ফিল্ড অন্য সরবরাহকারীর জন্য কাজ করবে তা নিশ্চিত নয়।
- একটি প্রোভাইডার ত্রুটি প্রোভাইডার-নির্দিষ্ট message সহ 4xx রেসপন্সের ভেতরে আসতে পারে।
request_idও রেসপন্স body লগ করুন।
নিরাপত্তা স্মারক
- ব্রাউজার কোড, মোবাইল অ্যাপ বান্ডল বা পাবলিক রিপোজিটরিতে কখনো API key রাখবেন না। এটি সার্ভারে রাখুন এবং অনুরোধ প্রক্সি করুন।
- সম্পূর্ণ key লগ করবেন না। শনাক্ত করতে হলে একটি প্রিফিক্স লগ করুন।
- key ফাঁস হয়ে থাকতে পারে এমন হলে সাথে সাথে রোটেট করুন।
সহায়তার সাথে যোগাযোগ করার আগে
সংগ্রহ করুন:
- Endpoint ও HTTP method।
- HTTP স্ট্যাটাস,
codeওrequest_id। - মডেল ID বা টাস্ক ID।
- টাইমজোনসহ টাইমস্ট্যাম্প।
- গোপন তথ্য সরানো একটি ন্যূনতম অনুরোধ body।
অ্যাকাউন্টের ইমেইলসহ এটি সহায়তায় পাঠান। সম্পূর্ণ API key অন্তর্ভুক্ত করবেন না।