কনটেন্টে যান
SDKসমূহ

SDKসমূহ

যেকোনো OpenAI বা Anthropic SDK সরাসরি কাজ করে।

Shannon OpenAI ও Anthropic দুটি ওয়্যার ফরম্যাট বোঝে, তাই আপনি দুটির অফিশিয়াল SDK যেমন আছে তেমনই ব্যবহার করেন। ক্লায়েন্টে তিনটি মান বদলাতে হয়: base URL, API key এবং মডেল id। আপনার বাকি কোড একই থাকে।

কী সেট করবেন

সেটিং OpenAI SDK Anthropic SDK
Base URL https://api.shannon-ai.com/v1 https://api.shannon-ai.com
API key আপনার Shannon key। SDK এটি Authorization: Bearer হিসেবে পাঠায়। আপনার Shannon key। SDK এটি x-api-key হিসেবে পাঠায়।
মডেল একটি প্রকাশিত মডেল id, যেমন shannon-3। একটি প্রকাশিত মডেল id, যেমন shannon-1.6-lite।
যে এন্ডপয়েন্টে পৌঁছায় /v1/chat/completions, /v1/responses, /v1/models /v1/messages, /v1/messages/count_tokens
এনভায়রনমেন্ট ভেরিয়েবল OPENAI_API_KEY ও OPENAI_BASE_URL, Python ও JavaScript SDK কোনো মান না দিলে এগুলো পড়ে। ANTHROPIC_API_KEY ও ANTHROPIC_BASE_URL, Python ও TypeScript SDK কোনো মান না দিলে এগুলো পড়ে।

দুটি base URL-এর পার্থক্য /v1: OpenAI SDK তার base URL-এ /chat/completions যোগ করে, Anthropic SDK যোগ করে /v1/messages। Shannon প্রকাশ করে না এমন মডেলের নামে 400 ও unknown model উত্তর আসে। মডেল ও মূল্য

আপনার key Keys & usage পেজে আছে। Keys & usage

OpenAI SDK

অফিশিয়াল OpenAI SDK POST /v1/chat/completions ও POST /v1/responses কল করে। প্রতিটি নমুনা একটি ইউজার মেসেজ পাঠায় এবং উত্তর ছাপে।

# pip install openai
from openai import OpenAI

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

response = client.chat.completions.create(
    model="shannon-3",
    messages=[{"role": "user", "content": "Hello, Shannon!"}],
)
print(response.choices[0].message.content)
ভাষা ইনস্টল Base URL বিকল্প সোর্স
Python pip install openai base_url openai/openai-python
JavaScript / TypeScript npm install openai baseURL openai/openai-node
Go go get github.com/openai/openai-go/v3 option.WithBaseURL openai/openai-go
Java com.openai:openai-java baseUrl openai/openai-java
.NET dotnet add package OpenAI OpenAIClientOptions.Endpoint openai/openai-dotnet

দুটি এন্ডপয়েন্টের প্রতিটি ফিল্ড তাদের নিজস্ব পেজে বর্ণিত। Chat Completions Responses API

Anthropic SDK

অফিশিয়াল Anthropic SDK POST /v1/messages কল করে। তারা প্রতিটি কলে max_tokens চায়, তাই নমুনাগুলো shannon-1.6-lite ব্যবহার করে, যা এটি প্রয়োগ করে। প্রতিটি নমুনা উত্তরের টেক্সট ব্লকগুলো ছাপে।

# pip install anthropic
import anthropic

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

message = client.messages.create(
    model="shannon-1.6-lite",
    max_tokens=1024,
    messages=[{"role": "user", "content": "Hello, Shannon!"}],
)
for block in message.content:
    if block.type == "text":
        print(block.text)
ভাষা ইনস্টল Base URL বিকল্প সোর্স
Python pip install anthropic base_url anthropics/anthropic-sdk-python
TypeScript npm install @anthropic-ai/sdk baseURL anthropics/anthropic-sdk-typescript
Go go get github.com/anthropics/anthropic-sdk-go option.WithBaseURL anthropics/anthropic-sdk-go
Java com.anthropic:anthropic-java baseUrl anthropics/anthropic-sdk-java

Messages ফরম্যাট এবং তার পার্থক্য Anthropic সামঞ্জস্য পেজে আছে। Anthropic

SDK যার ওপর নির্ভর করতে পারে

  • API যে রিকোয়েস্ট ফিল্ড ব্যবহার করে না তা গ্রহণ করা হয়। API যে ফিল্ড চেনে তা ভুল type-এ পাঠালে উত্তর আসে 422।
  • SDK যে ভার্সন ও বিটা হেডার যোগ করে (anthropic-version, anthropic-beta, openai-beta) তা গ্রহণ করা হয়। কোনোটিই আবশ্যক নয়।
  • উত্তরের model হলো প্রকাশিত id, তাই আপনি এটি যেমন আছে তেমনই ফেরত পাঠাতে পারেন।
  • /v1/messages-এ উত্তর একটি thinking ব্লক দিয়ে শুরু হতে পারে। প্রথম ব্লক না নিয়ে text type-এর ব্লকগুলো পড়ুন।
  • স্ট্রিমিং SDK-র নিজস্ব স্ট্রিম হেল্পারের মাধ্যমে কাজ করে। প্রতিটি স্ট্রিমের শেষে usage আসে।
  • প্রতিটি উত্তরে একটি x-request-id হেডার থাকে। নিজের x-request-id পাঠালে একই মান ফিরে আসে।

কমিউনিটি SDK

অন্য লেখকদের লেখা, OpenAI API-র জন্য বানানো ক্লায়েন্ট একইভাবে কাজ করে: ক্লায়েন্টকে /v1 সহ base URL, আপনার key এবং একটি Shannon মডেল id দিন। এগুলো তাদের লেখকরা রক্ষণাবেক্ষণ করেন, Shannon নয়।

ভাষা ইনস্টল ক্লায়েন্ট
Go go get github.com/sashabaranov/go-openai sashabaranov/go-openai
Ruby gem install ruby-openai alexrudall/ruby-openai
PHP composer require openai-php/client openai-php/client
Rust cargo add async-openai 64bit/async-openai

SDK ছাড়া

SDK লাগে না। JSON পাঠাতে পারে এমন যেকোনো HTTP ক্লায়েন্ট কাজ করে:

  • JSON বডি ও Content-Type: application/json হেডারসহ POST। এটি ছাড়া রিকোয়েস্টের উত্তর আসে 415।
  • আপনার key Authorization: Bearer <key>-এ অথবা x-api-key: <key>-এ। দুটোই প্রতিটি এন্ডপয়েন্টে কাজ করে।
  • 32 MiB পর্যন্ত বডি।
  • "stream": true হলে উত্তর একটি server-sent ইভেন্ট স্ট্রিম (text/event-stream)। এটি লাইন ধরে ধরে পড়ুন, বাফার করবেন না।
  • এরর হলো HTTP স্ট্যাটাসের পাশাপাশি error.type ও error.message সহ একটি JSON বডি।
curl https://api.shannon-ai.com/v1/chat/completions \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "shannon-3",
    "messages": [{"role": "user", "content": "Hello, Shannon!"}]
  }'

স্ট্রিমের ইভেন্ট ও এররের type জানতে দেখুন: স্ট্রিমিং এরর হ্যান্ডলিং