Skip to content

Dify-কে Tokens-এর সাথে যুক্ত করুন

OpenAI-API-compatible provider plugin দিয়ে Dify-তে Tokens-এর model যোগ করুন: form-এর field, slash-ওয়ালা model ID, agent-এর জন্য Function Call Type, আর Dify Cloud বনাম self-hosted।

যেসব tool-এ কাজ করেDify
Markdown-এ দেখুন
এই পাতায়

Dify একটা open-source platform, যেটা দিয়ে LLM app, chatbot, agent আর workflow বানানো যায়। Dify-তে model provider মানে একেকটা plugin। এর OpenAI-API-compatible provider যেকোনো base URL-এ OpenAI Chat Completions request পাঠাতে পারে, আর Tokens-এর জন্য সেই URL হলো https://tokens.bd/v1। Tokens-এর প্রতিটা model আপনাকে Dify-তে নিজে হাতে, custom model হিসেবে যোগ করতে হবে।

এই গাইড মিলিয়ে দেখা হয়েছে Dify 1.17.1 (প্রকাশ 10 সেপ্টেম্বর 2026) আর OpenAI-API-compatible plugin-এর 0.0.68 version দিয়ে, অক্টোবর 2026-এ। দেখার উৎস ছিল Dify-র documentation আর langgenius/dify-official-plugins repository-তে plugin-এর source। মানে documentation আর source দেখে যাচাই করা হয়েছে, আসল Tokens key দিয়ে শুরু থেকে শেষ পর্যন্ত চালিয়ে দেখা হয়নি।

শুরুর আগে#

  • একটা Tokens key। spend cap দিয়ে key বানানোর কথা আছে API keys পেজে।
  • model catalog থেকে একটা model ID। এই গাইডে deepseek/deepseek-v4.1-flash ব্যবহার করা হয়েছে।
  • model-এর catalog পেজ থেকে context window আর সর্বোচ্চ output-এর মান। GET /v1/models এই দুটো দেয় না (Models and usage), অথচ Dify দুটোই চায়।
  • একটা Dify workspace, যেখানে আপনি owner বা admin। Dify শুধু এই দুই role-কে model provider ম্যানেজ করতে দেয়।

Provider plugin install করুন#

Dify-তে Integrations খুলে Model Provider-এ যান, তারপর Marketplace থেকে OpenAI-API-compatible install করুন। Dify-র documentation অনুযায়ী plugin তিন জায়গা থেকে আনা যায়: Marketplace, public GitHub repository, আর local .zip file upload।

Tokens-এর model যোগ করুন#

OpenAI-API-compatible provider-এর card খুলে Add Model-এ ক্লিক করুন। Dify-র documentation বলছে, কোনো provider-এর তালিকায় নেই এমন model যোগ করার উপায় হলো Add Model। একই নাম আর type-এর model আগে থেকে থাকলে Dify নতুন একটা duplicate বানায় না, বরং নতুন key-টা সেই model-এই জুড়ে দেয়।

এবার form পূরণ করুন। নিচের label-গুলো plugin-এর 0.0.68 source থেকে নেওয়া, আপনার Dify version-এ শব্দ একটু অন্যরকম হতে পারে।

Fieldযা বসাবেন
Model TypeLLM
Model Namedeepseek/deepseek-v4.1-flash
Model display name (optional)Dify-তে যে নামে দেখতে চান, যেমন DeepSeek V4.1 Flash
API Keyআপনার Tokens key
API Base URLhttps://tokens.bd/v1
model name for API endpoint (optional)ফাঁকা রাখুন (নিচে দেখুন)
Completion modeChat
Model context sizemodel-এর catalog পেজে দেওয়া context window
Upper bound for max tokensmodel-এর catalog পেজে দেওয়া সর্বোচ্চ output
Function Call Typetool support করে এমন model-এ Tool Call (নিচে Tool calling দেখুন)
Stream function callingstream করা tool call চাইলে এবং model support করলে Support
Vision Supportশুধু যে model image নেয় তার জন্য Support

form save করুন। save করার সময় Dify credentials যাচাই করে, আর plugin সেটা করে endpoint-এ ছোট একটা chat request পাঠিয়ে। form save হয়ে গেলে বুঝবেন key, address আর model name ঠিক আছে।

form নিয়ে কয়েকটা কথা:

  • API Base URL। plugin-এর placeholder হলো https://api.openai.com/v1, মানে address শেষ হয় /v1 দিয়ে। chat/completions plugin নিজেই জুড়ে নেয়, আপনি জুড়বেন না। কোনো কোনো third-party গাইডে এই field-কে "API endpoint URL" বলা হয়।
  • form-এ key দেওয়া optional, কিন্তু Tokens-এ key সবসময় লাগে। না দিলে 401 missing_api_key পাবেন।
  • Model context size আর Upper bound for max tokens, দুটোরই default 4096। default রেখে দিলে model যা-ই পারুক, Dify নিজের দিক থেকে লম্বা prompt আর output আটকে দেবে। দুটোই catalog পেজ দেখে বসান।
  • Include Usage in Stream plugin-এ default-এ চালু থাকে। চালু রাখুন: এতে Dify stream-এর মধ্যেই token count চায়। Tokens এটা support করে (Streaming)।
  • প্রতিটা model আলাদা করে যোগ করুন। plugin endpoint থেকে model-এর তালিকা আনে না। Dify-তে যে যে Tokens model বাছতে চান, প্রত্যেকটার জন্য Add Model আবার করুন।

Slash-ওয়ালা model ID#

Tokens-এর ID দেখতে provider/model-এর মতো। model name-এ slash চলে কিনা, সেটা Dify-র documentation বলে না, আর plugin-এর Model Name placeholder-এ লেখা আছে "Enter full model name"। plugin model name-টা endpoint-এ হুবহু পাঠায়। তবে model name for API endpoint ভরা থাকলে সে তার বদলে ওই মান পাঠায়।

  1. আগে Model Name-এ পুরো ID দিয়ে চেষ্টা করুন।
  2. Dify নামটা না নিলে Model Name-এ একটা ছোট নাম দিন, যেমন tokens-flash, আর model name for API endpoint-এ পুরো Tokens ID বসান। এই দ্বিতীয় field ঠিক এই কাজের জন্যই আছে: Dify যে নাম দেখায় আর endpoint যে নাম চায়, দুটো আলাদা হতে পারে।

যেভাবেই করুন, Tokens-এ যে মান পৌঁছায় সেটা অবশ্যই পুরো ID হতে হবে, নইলে 404 model_not_found আসবে।

ঠিকমতো চলছে কিনা যাচাই করুন#

আগে curl দিয়ে key আর model পরীক্ষা করে নিন।

bash
export TOKENS_API_KEY=tok_live_your_key
curl -s https://tokens.bd/v1/chat/completions \
  -H "Authorization: Bearer $TOKENS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model": "deepseek/deepseek-v4.1-flash", "max_tokens": 16, "messages": [{"role": "user", "content": "Reply with OK"}]}'

তারপর Dify-তে একটা app বানান, যে model যোগ করেছেন সেটা বেছে নিন, আর preview-তে একটা message পাঠান। Request-টা আপনার Tokens Dashboard-এর usage analytics-এ দেখা যাবে।

Tool calling#

Dify-র Agent node আর agent app tool নিয়ে কাজ করে। Dify দুই ধরনের agent strategy দেয়:

  • Function Calling model-এর নিজস্ব tool calling ব্যবহার করে, আর tool-এর বিবরণ পাঠায় tools parameter-এ। Dify বলছে, এটা ব্যবহার করলে model যে function calling support করে তা নিশ্চিত করে নিন।
  • ReAct এর বদলে structured prompt দিয়ে model-কে পথ দেখায়। যে model-এ native tool calling নেই, তার জন্য Dify এটা সুপারিশ করে।

custom model-এর ক্ষেত্রে Dify-কে জানানোর জায়গা হলো Add Model form-এর Function Call Type। এর default Not Support। কোন option কী করে, তা plugin-এর source থেকে জানা যায়।

  • Tool Call OpenAI-র tools format-এ পাঠায়। Tokens-এর Tool calling পেজের সাথে এটাই মেলে।
  • Function Call পাঠায় পুরনো functions format-এ। Tokens-এর documentation-এ এটা নেই, তাই ব্যবহার করবেন না।
  • Not Support কোনো tool-এর বিবরণই পাঠায় না, তাই ওই model-এ Function Calling strategy চলতেই পারে না।

কোনো model Not Support-এ রেখে Function Calling strategy বাছলে কী হয়, তা Dify-র documentation-এ নেই। তাই পরীক্ষা করে দেখার চেয়ে আগেই ঠিকমতো set করে দিন।

তবু tool calling-এর জন্য model-কেও তা support করতে হবে। model catalog-এ model-এর পেজ দেখুন, আর সাহায্য পাবেন Choosing a model পেজে।

Dify Cloud আর self-hosted#

দুই ক্ষেত্রেই সেটআপ একই। তফাত শুধু এটুকু যে Tokens-এ request কোথা থেকে যায়: Dify Cloud-এ যায় Dify-র server থেকে, self-hosted হলে আপনার নিজের deployment থেকে। Tokens একটা public HTTPS address, তাই self-hosted Dify থেকে সেখানে বাইরে যাওয়ার (outbound) অনুমতি থাকতে হবে। আপনি কোনটা ব্যবহার করছেন, তা Tokens-এর দিকে জানানোর কিছু নেই।

  • Dify-র AI credits Dify-র নিজের billing। এটা দিয়ে Tokens-এর model-এর খরচ মেটে না। Tokens-এর usage-এর বিল যায় আপনার Tokens অ্যাকাউন্টে।
  • self-hosted Dify-তে Dify-র বাইরে Marketplace খুলে plugin install করলে আগে Install Preference-এর নিচে আপনার deployment-এর URL set করে নিন।

Dify-র documentation থেকে যা নিশ্চিত হওয়া যায়নি: self-hosted plugin daemon-এর network-সংক্রান্ত শর্ত, আর Dify Cloud-এর কোনো plan custom model provider সীমিত করে কিনা। Dify-র self-hosting documentation আর নিজের plan দেখে নিন।

পেছনে কীসে credit খরচ হয়#

Dify যত request কোনো Tokens model-এ পাঠায়, সবকটার খরচ ওই key-তে ধরা হয়।

  • workflow-র প্রতিটা LLM node প্রতি run-এ একটা request। কয়েকটা LLM node থাকলে, কিংবা কোনোটা iteration বা loop-এর ভেতরে থাকলে, প্রতি পাকে একটা করে request হয়।
  • agent প্রতিটা tool-এর ফল পাওয়ার পর model-কে আবার call করে। Dify-র documentation Max Iterations-কে বর্ণনা করেছে অসীম loop ঠেকানোর একটা নিরাপত্তা-সীমা হিসেবে, আর সহজ কাজে 3 থেকে 5, জটিল research-এ 10 থেকে 15 রাখতে বলেছে। কাজ চলে যায় এমন সবচেয়ে কম মান রাখুন।
  • প্রতি রাউন্ডে পুরো কথোপকথন আবার পাঠানো হয়, তাই প্রতি রাউন্ডে input token বাড়তে থাকে।
  • আর কোন feature নিজে থেকে model call করে, তা Dify-র documentation-এ তালিকা করা নেই। আপনার app-এর কোন feature model ব্যবহার করে, আর কোন model, তা app আর workspace-এর সেটিংসে দেখে নিন।

Dify-র জন্য আলাদা একটা key নিন, তাতে মাসিক spend cap আর allowed models-এর তালিকা দিন (API keys)। cap-এ পৌঁছে গেলে বিল বাড়তে থাকার বদলে request 403 monthly_spend_cap_exceeded দিয়ে fail করবে।

সীমা আর যা এখানে নেই#

  • এই পেজ শুধু LLM model নিয়ে। plugin-এ text embedding, rerank, speech আর text-to-speech type-ও আছে। কিন্তু Tokens-এর embeddings endpoint শুধু embedding model-এর জন্য কাজ করে, আর Tokens-এ কোনো audio endpoint নেই (Models and usage), তাই বাকিগুলো এখানে আলোচনার বাইরে।
  • plugin-এ API Type নামে একটা setting আছে, যাতে Responses API-র option আছে। এটা Chat Completions-এই রাখুন। Tokens-এ Responses তখনই চলে যখন upstream সেটা support করে (Responses API)।
  • Dify-র built-in model provider, যেমন তার OpenAI provider, এখানে ব্যবহার হয় না।

সমস্যা হলে#

model save করতে গেলে credentials error আসছে। message-এ Tokens-এর পাঠানো status code আর response body থাকে, ওটা পড়ুন। 401 invalid_api_key মানে key ভুল বা revoke করা। 404 মানে API Base URL বা model name ভুল। ওপরের curl test-এর সাথে মিলিয়ে দেখুন।

প্রতিটা request-এ 404। API Base URL ঠিক https://tokens.bd/v1 কিনা দেখুন। /v1 লাগবে, আর /chat/completions জুড়বেন না।

404 model_not_found। Tokens-এ যে model name পৌঁছাচ্ছে সেটা পুরো ID নয়। Model Name আর "model name for API endpoint" GET /v1/models-এর সাথে মিলিয়ে দেখুন।

403 model_not_allowed_on_key। key-র allowed models-এর তালিকায় এই model নেই। তালিকার কোনো model নিন, অথবা অন্য key ব্যবহার করুন।

Agent node model-টা নিচ্ছে না, বা কখনো tool call করছে না। model-এ Function Call Type-কে Tool Call করুন, অথবা agent-কে ReAct strategy-তে নিয়ে যান। তারপরও tool call না হলে model-টা সম্ভবত tool use-এর জন্য ঠিক নয়।

400 invalid_request, আর message-এ user field-এর কথা। plugin-এ User Identity Support নামে একটা setting আছে, যেটা বলে endpoint ঐচ্ছিক top-level user parameter নেয় কিনা। এটা Not Support করে দিলে field-টা আর যাবে না।

লম্বা prompt কেটে যাচ্ছে, বা output আগেই থেমে যাচ্ছে। Model context size আর Upper bound for max tokens দেখুন। দুটোর default 4096।

429 rate_limited, concurrency_limit বা window_exhausted। Retry-After-এ লেখা সেকেন্ড অপেক্ষা করুন, অথবা Rate limits দেখুন। 402 insufficient_credits হলে billing-এ গিয়ে টাকা যোগ করুন।

সব code-এর তালিকা আছে Errors পেজে। support-এ যোগাযোগ করলে একই call curl দিয়ে চালিয়ে তার x-tokens-request-id header সাথে দিন।

সূত্র: Dify Model Providers, Integrations আর self-hosted Integrations পেজ, Agent node, OpenAI-API-compatible plugin-এর source আর README (version 0.0.68) আর Dify plugin SDK-র OpenAI-compatible model class, অক্টোবর 2026-এ দেখা।

এই পাতাটা কি কাজে লেগেছে?

এখনো আটকে আছেন? Support ticket খুলুন

আপনার agent set up করতে সাহায্য লাগবে?

Connection tester দিয়ে সংযোগ পরীক্ষা করে নিন, অথবা একটা API key তৈরি করুন।