API اور SDKگائیڈ
openai-dotnet کے ساتھ C# میں پہلی درخواست: اینڈ پوائنٹ، کلید، جواب
C# کنسول ایپ سے اپنی پہلی چیٹ کمپلیشن بھیجیں: آفیشل OpenAI .NET لائبریری میں Endpoint سیٹ کریں، کلید env سے پڑھیں، جواب اور اختتام کی وجہ چھاپیں۔

اس صفحہ پر
C# سے CheapTokens کو درخواست بھیجنے کے لیے، .NET کے لیے آفیشل OpenAI لائبریری رکھیں اور OpenAIClientOptions. کو https:/ پر سیٹ کریں۔ مکمل ماڈل آئی ڈی پاس کریں، مثلاً deepseek-، اور کلید کو ماحول کے متغیر سے پڑھیں۔ ChatClient اور CompleteChat کالز بالکل ویسے ہی رہتی ہیں جیسے OpenAI کی مثالوں میں ہیں۔
فرض کریں کہ آپ کے پاس پہلے سے ایک ASP.NET سروس ہے جو OpenAI سے بات کرتی ہے، اور آپ باقی کوڈ کو چھوئے بغیر کوئی دوسرا اینڈ پوائنٹ اور ماڈل آزمانا چاہتے ہیں۔ اسے کسی بھی چیز سے جوڑنے سے پہلے، تین چیزیں جو عام طور پر غلط ہوتی ہیں (کلید، اینڈ پوائنٹ، ماڈل آئی ڈی) ایک چھوٹی کنسول ایپ میں جانچ لیں۔ ہم یہاں یہی بناتے ہیں۔ نیچے دی گئی تفصیلات GitHub پر لائبریری کے README (openai/openai-dotnet، 5 نومبر 2026 کو چیک کیا گیا) اور CheapTokens کی دستاویزات سے ہیں: docs صفحہ پر وہی بیس URL ہے۔
آپ کو کیا درکار ہے#
پیکیج کا نام NuGet پر OpenAI ہے۔ 5 نومبر 2026 کو تازہ ترین مستحکم ورژن 2.15.0 ہے (اس کی changelog اندراج کی تاریخ 4 نومبر ہے)۔ یہ .NET 8 اور .NET Standard 2.0 کو ہدف بناتا ہے، اور README کہتا ہے کہ یہ تمام .NET Standard 2.0 ایپلیکیشنز کے ساتھ کام کرتا ہے، لہٰذا پرانا پروجیکٹ بھی ٹھیک ہے۔
ایپ میں تین قدریں جاتی ہیں:
- بیس URL:
https:/(OpenAI Chat Completions کے ساتھ مطابقت رکھتا ہے)؛/ api. cheaptokens. dev/ v1 - ماڈل آئی ڈی:
deepseek-۔ مکمل آئی ڈی استعمال کریں، قیمت کے جدول سے مختصر نام قبول نہیں کیا جاتا۔ DeepSeek-V4-Flash کا 380K کانٹیکسٹ ونڈو اور فی جواب زیادہ سے زیادہ 32,768 آؤٹ پٹ ٹوکنز ہیں، دن کے کسی بھی وقت ایک ہی قیمت؛ai/ DeepSeek- V4- Flash- 0731 - آپ کے CheapTokens اکاؤنٹ سے ایک API کلید، جو ماحول کے متغیر میں رکھی گئی ہو۔ اگر آپ کو یقین نہیں کہ اسے کیسے محفوظ کریں، تو API کلید کو محفوظ طریقے سے کیسے محفوظ کریں پڑھیں۔
کنسول ایپ بنائیں#
قدم بہ قدم
پروجیکٹ بنائیں اور اسے چلائیں
کنسول پروجیکٹ بنائیں
dotnet new console -o FirstRequest
cd FirstRequestپیکیج شامل کریں
dotnet add package OpenAIکلید کو ماحول کے متغیر میں رکھیں
bash یا zsh میں:
export CHEAPTOKENS_API_KEY=your-keyWindows PowerShell میں:
$env:CHEAPTOKENS_API_KEY = "your-key"کوڈ پیسٹ کریں اور چلائیں
Program.cs کا مواد اگلے حصے کے کوڈ سے بدلیں، پھر dotnet run چلائیں۔

کوڈ، سطر بہ سطر#
using System.ClientModel;
using OpenAI;
using OpenAI.Chat;
string? apiKey = Environment.GetEnvironmentVariable("CHEAPTOKENS_API_KEY");
if (string.IsNullOrEmpty(apiKey))
{
Console.WriteLine("Set CHEAPTOKENS_API_KEY first.");
return;
}
ChatClient client = new(
model: "deepseek-ai/DeepSeek-V4-Flash-0731",
credential: new ApiKeyCredential(apiKey),
options: new OpenAIClientOptions
{
Endpoint = new Uri("https://api.cheaptokens.dev/v1")
});
ChatCompletion completion = client.CompleteChat("Explain in two sentences what a token is.");
Console.WriteLine(completion.Content[0].Text);
Console.WriteLine($"finish_reason: {completion.FinishReason}");README "ایک پراکسی یا خود میزبان OpenAI-مطابق LLM" کے لیے یہی پیٹرن دکھاتا ہے: اینڈ پوائنٹ OpenAIClientOptions میں جاتا ہے، کلید ایک ApiKeyCredential میں (یہ System. میں رہتی ہے، اسی لیے پہلا using)۔ اوپر کی جانچ ہماری ہے: اگر متغیر سیٹ نہ ہو تو یہ واضح پیغام دیتی ہے۔
سادہ سٹرنگ کے ساتھ CompleteChat ایک صارف پیغام بھیجتا ہے اور پورے جواب کا انتظار کرتا ہے۔ جواب کا متن completion. میں ہے۔ اختتام کی وجہ completion. میں ہے۔

آپ کو کیا نظر آنا چاہیے#
آپ کو ٹوکنز کی مختصر وضاحت اور اختتام کی وجہ والی ایک سطر ملنی چاہیے؛ عام اختتام کے بعد یہ Stop ہوتی ہے (README FinishReason کا ChatFinishReason. سے موازنہ کرتا ہے)۔ جواب کی عبارت ہر بار بدلتی ہے۔
دوسری سطر پڑھنے کے قابل ہے۔ README FinishReason کا ChatFinishReason. (ماڈل خود ختم ہوا) اور ChatFinishReason. (ماڈل کوئی ٹول کال کرنا چاہتا ہے) سے موازنہ کرتا ہے۔ سادہ چیٹ میں Stop کے علاوہ کچھ بھی ہونے کا مطلب ہے کہ جواب کسی اور وجہ سے ختم ہوا، اور عام طور پر قصور لمبائی کی حد کا ہوتا ہے۔ اگر آپ کو ایسا جواب نظر آئے جو درمیانِ جملہ رک جائے، تو یہ مضمون finish_reason اور max_tokens کی وضاحت کرتا ہے۔
موجودہ سروس کو تبدیل کرنا#
اگر آپ کی سروس پہلے سے OpenAI کے لیے ChatClient بناتی ہے، تو آپ دو چیزیں بدلتے ہیں: ماڈل سٹرنگ اور آپشنز۔ باقی کالز کام کرتی رہتی ہیں۔
موازنہ کریں
وہی کلائنٹ، دو بدلی ہوئی سطریں
پہلے
ChatClient client = new(
model: "your-current-model",
credential: new ApiKeyCredential(apiKey));بعد میں
ChatClient client = new(
model: "deepseek-ai/DeepSeek-V4-Flash-0731",
credential: new ApiKeyCredential(apiKey),
options: new OpenAIClientOptions
{
Endpoint = new Uri("https://api.cheaptokens.dev/v1")
});مختصر درخواستوں کے لیے دوسرا آپشن ہے: zai- (390K کانٹیکسٹ، زیادہ سے زیادہ 8,192 آؤٹ پٹ ٹوکنز)۔ آپ صرف model سٹرنگ بدلتے ہیں۔ آپ کی کلید کون سی آئی ڈیز استعمال کر سکتی ہے اس کی فہرست ایک درخواست کی دوری پر ہے، دیکھیں GET /v1/models کے ساتھ ماڈلز کی فہرست۔
ایک درخواست کی قیمت#
فرض کریں ایک سروس روزانہ 1,000 درخواستیں سنبھالتی ہے، ہر ایک میں تقریباً 300 ٹوکن اندر اور 400 ٹوکن باہر۔ ایسی ایک درخواست DeepSeek-V4-Flash پر $0.000045 کی ہوتی ہے۔ نیچے کا جدول وہی 1,000 درخواستیں تینوں ماڈلز پر OpenRouter کے ساتھ دکھاتا ہے۔ مجموعی طور پر، ان پٹ اور آؤٹ پٹ کو ملا کر، DeepSeek-V4-Flash OpenRouter سے سستا ہے۔ موجودہ قیمتیں قیمتوں کے صفحے پر ہیں، اور DeepSeek صفحہ بتاتا ہے کہ ماڈل کیا پیش کرتا ہے۔
| ماڈل | ان پٹ $/1M | آؤٹ پٹ $/1M | فی درخواست | 1,000 درخواستیں | OpenRouter، 1,000 درخواستیں |
|---|---|---|---|---|---|
| GLM-5.3-Flash | $0.02 | $0.04 | $0.000022 | $0.022 | $0.0433 |
| DeepSeek-V4-Flash | $0.015 | $0.10 | $0.000045 | $0.0445 | $0.077 |
| MiniMax-M2.7 | $0.05 | $0.15 | $0.000075 | $0.075 | $0.90 |
فی درخواست 300 ان پٹ اور 400 آؤٹ پٹ ٹوکنز۔ فی 1M ٹوکنز کی قیمتیں موجودہ ہیں اور ہمارے ٹیرف کے ساتھ تبدیل ہوتی ہیں؛ OpenRouter کالم اسی ورک لوڈ کے لیے حوالہ جاتی قیمتیں دکھاتا ہے۔
اگر یہ کام نہ کرے#
- 401۔ کلید غائب یا غلط ہے۔ چھاپیں کہ متغیر سیٹ ہے یا نہیں (کوڈ میں جانچ یہی کرتی ہے) اور یقینی بنائیں کہ
dotnet runاسی ٹرمینل میں شروع کیا گیا ہے جہاں آپ نےexport(یا$env:) چلایا: متغیر صرف اسی سیشن میں رہتا ہے۔ - 404۔ زیادہ تر ماڈل آئی ڈی: مکمل
deepseek-کی بجائے مختصر نام، یاai/ DeepSeek- V4- Flash- 0731 /v1کے بغیر اینڈ پوائنٹ (یہ بھی جانچیں کہOpenAIClientOptionsواقعیChatClientکو پاس ہوتا ہے)۔ تفصیلات API 401 یا 404: غلط کلید، بیس URL یا ماڈل آئی ڈی میں ہیں۔ - خرابی CS0246: The type or namespace name 'ApiKeyCredential' could not be found۔
Program.csکے اوپرusing System.سطر غائب ہے۔ClientModel;
یہی خیال کسی اور زبان میں: openai-go کے ساتھ Go ورژن۔



