DeepSeek API ইন্টিগ্রেশন গাইড: OpenAI-সাম্যরূপী অনুরোধের মাধ্যমে ECAIX থেকে
DeepSeek API ইন্টিগ্রেশন গাইড: OpenAI-সাম্যরূপী অনুরোধের মাধ্যমে ECAIX থেকে
এই গাইডটি দেখায় যে, DeepSeek মডেল আইডি ব্যবহার করে ECAIXের মাধ্যমে OpenAI-সাম্যরূপী API এন্ডপয়েন্টের মাধ্যমে পরীক্ষা করা যায়। এতে রয়েছে সবচেয়ে ছোট কাজের অনুরোধ, Python এবং curl উদাহরণ, মডেল আইডি ভেরিফিকেশন, স্ট্রিমিং, স্ট্রাকচারড আউটপুট, টুলস এবং সাধারণ ত্রুটি ডাগনস্টিক পথ।
এটি বর্ণনা করে যে, ECAIX গেটওয়ে একটি মডেল আইডি প্রদান করে যা বর্তমান ECAIX ক্যাটালগে প্রকাশিত রয়েছে। এটি দাবি করে না যে ECAIX DeepSeek API অফিসিয়াল এন্ডপয়েন্ট বা প্রতিটি গেটওয়ে রুটে প্রতিটি DeepSeek ফিচার উপলব্ধ। বর্তমান মডেল পেজ এবং প্রদানকারীর ডকুমেন্টেশন দেখে আপনার কাজের জন্য প্রোডাকশনে যাওয়ার আগে নিশ্চিত করুন।
এই গাইডটি যাচাই করে
উদাহরণগুলি ECAIXের OpenAI-সাম্যরূপী পথ এবং বর্তমান প্রকাশের সময় ক্যাটালগে প্রদর্শিত মডেল আইডি ব্যবহার করে তৈরি করা হয়েছে। উপলব্ধতা, রাউটিং, সীমাবদ্ধতা, মূল্য এবং সমর্থিত বৈশিষ্ট্য পরিবর্তন করতে পারে। ক্যাটালগ এবং API ডকুমেন্টেশনকে বর্তমান সত্য হিসেবে বিবেচনা করুন।
দ্রুত শুরু
এই সিকোয়েন্স অনুসরণ করুন যদি আপনি ইতিমধ্যে একটি OpenAI SDK অ্যাপ্লিকেশন রয়েছে:
- DeepSeek v4.1 ফ্ল্যাশ মডেল পেজ খুলুন এবং নিশ্চিত করুন যে আইডি উপলব্ধ।
- একটি ECAIX API কী তৈরি করুন।
- OpenAI-সাম্যরূপী বেস ইউআরএলটি সেট করুন
https://ecaix.com/api/ai/v1। - সম্ভাব্য পরিবর্তন ছাড়া SDK এবং অ্যাপ্লিকেশন কোডকে অব্যাহত রাখুন।
- নিচের সর্বনিম্ন অনুরোধটি চালান।
- স্ট্রিমিং, JSON আউটপুট বা টুলস যোগ করুন যখন মূল অনুরোধ সফল হয়।
এন্ডপয়েন্ট এবং মডেল আইডি
OpenAI-সাম্যরূপী ক্লায়েন্টদের জন্য ব্যবহার করুন:
Base URL: https://ecaix.com/api/ai/v1
Model: deepseek-v4.1-flash
মডেল আইডি একটি স্থায়ী গ্যারান্টি নয়। প্রতিটি নতুন ইন্টিগ্রেশন বা প্রোডাকশনে নিশ্চিত করুন যে এটি জীবিত মডেল ডিরেক্টরিতে সঠিকভাবে প্রদর্শিত হয়েছে। যদি আপনি DeepSeek পরিবারের অন্য সদস্যকে ব্যবহার করতে চান, তাহলে মডেল ডিটেল পেজ থেকে সঠিক আইডি কপি করুন, নয় গাইডের একটি সাফটেক্স গুটি গুটি করে।
এন্ডপয়েন্ট ফরম্যাটও গুরুত্বপূর্ণ। SDKকে বেস পাথটি /v1 পর্যন্ত পৌঁছাতে হবে; ক্লায়েন্ট /chat/completions বা অন্য কোনো অপারেশন পাথ যোগ করে। SDK দ্বারা /chat/completions যোগ না করলে বেস ইউআরএলটিতে যোগ করবেন না।
Python-এর সাথে OpenAI SDK
ভIRTুয়াল এনভায়রনমেন্টে OpenAI পাইথন SDK ইনস্টল বা আপগ্রেড করুন:
python -m pip install --upgrade openai
এরপর ECAIX বেস ইউআরএল এবং API কী ব্যবহার করে:
const client = new OpenAI({
apiKey: process.env.ECAIX_API_KEY,
baseURL: "https://ecaix.com/api/ai/v1",
});
const response = await client.chat.completions.create({
model: "deepseek-v4.1-flash",
messages: [
{ role: "user", content: "Return one short sentence about API testing." },
],
max_tokens: 128,
});
console.log(response.choices[0].message.content);
API অনুরোধের জন্য সার্ভার-সাইড কোড ব্যবহার করুন। ব্রাউজার অ্যাপ্লিকেশনকে সরাসরি ECAIX কীকে ক্লায়েন্ট-সাইড জাভাস্ক্রিপ্টে প্রকাশ করা উচিত নয়।
Curl ডাগনস্টিক অনুরোধ
যদি SDK ব্যর্থ হয়, তাহলে SDKকে সমস্যা থেকে বের করে এন্ডপয়েন্ট সরাসরি পরীক্ষা করুন। হেডার এবং বডিকে আলাদা করে সংরক্ষণ করুন যাতে আপনি HTTP সমস্যার থেকে রেসপন্স ফরম্যাটের সমস্যার আলাদা করতে পারেন।
curl -sS -D /tmp/ecaix-deepseek-headers.txt \
-o /tmp/ecaix-deepseek-response.json \
-w '\nHTTP %{http_code}\n' \
"https://ecaix.com/api/ai/v1/chat/completions" \
-H "Authorization: Bearer ${ECAIX_API_KEY}" \
-H "content-type: application/json" \
-d '{
"model": "deepseek-v4.1-flash",
"messages": [
{"role": "user", "content": "Reply with one short sentence."}
],
"max_tokens": 128
}'
পাবলিক টিকিটে হেডার বা রেসপন্স পেস্ট করবেন না যেখানে API কী, অনুরোধ আইডি, প্রোম্প্ট, রিপোজিটরি পথ এবং কাস্টমার ডেটা থাকে।
রেসপন্সের ডাগনস্টিক
এই ক্রম অনুসরণ করুন:
- HTTP স্ট্যাটাস: নিশ্চিত করুন যে অনুরোধ একটি বৈধ এন্ডপয়েন্টে পৌঁছেছে।
- রেসপন্স বডি: প্রদানকারী বা গেটওয়ের ত্রুটি কোড পড়ুন।
- মডেল আইডি: বর্তমান মডেল ডিরেক্টরিতে সঠিক আইডি কপি করুন।
- অথেনটিকেশন: কী হেডার, অ্যাকাউন্ট এবং অনুমতি চেক করুন।
- অনুরোধ ফরম্যাট: বডিকে
model,messagesএবং একটি ছোট আউটপুট সীমায় কম করুন। - ফিচার ফিল্ড: একে একে স্ট্রিমিং, JSON, বা টুলস যোগ করুন।
- SDKের আচরণ: SDK অনুরোধের সাথে সরাসরি curl অনুরোধের তুলনা করুন।
এটি একটি ক্লায়েন্ট লাইব্রেরি সমস্যার সাথে মিশ্রিত মডেল রাউটিং বা অ্যাকাউন্ট অনুমতি সমস্যা থেকে ভুলকে আলাদা করে।
স্ট্রিমিং রেসপন্স
যদি অ্যাপ্লিকেশন ইনক্রিমেন্টাল আউটপুট প্রয়োজন হয়, তাহলে স্ট্রিমিং যোগ করুন যখন একটি সাধারণ অনুরোধ সফল হয়:
stream = client.chat.completions.create(
model="deepseek-v4.1-flash",
messages=[{"role": "user", "content": "Summarize API retries in three points."}],
stream=True,
max_tokens=256,
)
for chunk in stream:
delta = chunk.choices[0].delta.content
if delta:
print(delta, end="", flush=True)
এন্ডপয়েন্ট এবং SDK-এর সঠিক ইভেন্ট আচরণ নির্ভর করে। নিশ্চিত করুন যে আপনার ফ্রেমওয়ার্ক একটি খালি ডেল্টা, শেষ ব্যবহার ইভেন্ট, সংযোগ বিচ্ছেদ এবং [DONE]-সাম্যরূপী টার্মিনেশন হ্যান্ডল করে। স্ট্রিমিং ইমপ্লিমেন্টেশন প্রোডাকশনে সক্ষম না হওয়া পর্যন্ত ডিসকনেক্ট এবং রিটাইরির পরীক্ষা করুন।
স্ট্রাকচারড আউটপুট এবং JSON
যদি আপনি মেশিন-রিডেবল আউটপুট প্রয়োজন হয়, তাহলে একটি সাধারণ অনুরোধ শুরু করুন এবং তারপর এন্ডপয়েন্ট এবং মডেল দ্বারা সমর্থিত সবচেয়ে ছোট স্ট্রাকচারড আউটপুট অপশন যোগ করুন। রিটার্ন করা কন্টেন্টটি একটি সত্য JSON প্যার্সার দ্বারা ভ্যালিডেট করুন। "JSON রিটার্ন করুন" বলা একটি প্রোম্প্ট নয়, যা একটি সCHEMA-ব্যবহৃত রেসপন্সের সাথে সমতুল্য।
import json
response = client.chat.completions.create(
model="deepseek-v4.1-flash",
messages=[
{
"role": "user",
"content": "Return a JSON object with keys title and priority."
}
],
response_format={"type": "json_object"},
max_tokens=128,
)
payload = json.loads(response.choices[0].message.content)
print(payload["title"])
response_format কি সমর্থিত তা মডেল এবং রুটের উপর নির্ভর করে। যদি এন্ডপয়েন্ট একটি অনসাপোর্টেড-প্যারামিটার ত্রুটি ফিরিয়ে দেয়, তাহলে ফিল্ডটি সরিয়ে নিন এবং রুট ডকুমেন্টেশন পরীক্ষা করুন।
ফাংশন কালিং এবং টুলস
টুল কালিং টেক্সট জেনারেশন থেকে আলাদা একটি পরীক্ষা। প্রথমে একটি নিরাপদ ফাংশন পরীক্ষা করুন এবং ফিরিয়ে দেওয়া নাম এবং আর্গুমেন্টগুলি পরীক্ষা করুন।
tools = [
{
"type": "function",
"function": {
"name": "get_demo_status",
"description": "Return a fixed status for a local compatibility test.",
"parameters": {
"type": "object",
"properties": {},
"additionalProperties": False,
},
},
}
]
response = client.chat.completions.create(
model="deepseek-v4.1-flash",
messages=[{"role": "user", "content": "Check the demo status."}],
tools=tools,
tool_choice="auto",
max_tokens=128,
)
print(response.choices[0].message.tool_calls)
একটি মডেল একটি বৈধ টেক্সট রেসপন্স ফিরিয়ে দিতে পারে কিন্তু টুল কালিং ব্যর্থ হতে পারে কারণ সCHEMA কনভারশন, অনসাপোর্টেড প্যারামিটার বা ক্লায়েন্ট-স্পেসিফিক আচরণের কারণে। প্রোডাকশন সিস্টেমে ফিরিয়ে দেওয়া টুল আর্গুমেন্টগুলি বৈধ সCHEMA এবং অনুমোদন চেক করার আগে সCHEMA ভ্যালিডেশন এবং অডিট লগস যোগ করার আগে কখনোই প্রোডাকশনে চালান না।
OpenAI-সাম্যরূপী এবং Anthropic-সাম্যরূপী পথ
ECAIX বিভিন্ন ক্লায়েন্ট এবং ফ্লাওয়ারের জন্য বিভিন্ন সাম্যরূপী সারফেস প্রদান করে:
| ক্লায়েন্ট বা ফ্লাওয়ার | ডকুমেন্টেশন পথ | যাচাই করতে হবে |
|---|---|---|
| OpenAI Python/Node SDK | /api/ai/v1 | চ্যাট কমপ্লিটেশন, রেসপন্স, স্ট্রিমিং, টুলস |
| Anthropic-সাম্যরূপী ক্লায়েন্ট | /api/ai/v1/anthropic | মেসেজ ফিল্ডস, হেডার, কন্টেন্ট ব্লকস |
| ক্লাউড কোড তৃতীয় পক্ষ ফ্লাও |