API और SDKगाइड
openai-dotnet के साथ C# में पहला अनुरोध: endpoint, key, उत्तर
C# console ऐप से अपना पहला chat completion भेजें: आधिकारिक OpenAI .NET लाइब्रेरी में Endpoint सेट करें, key को env से पढ़ें, उत्तर और finish reason छापें।

इस पृष्ठ पर
C# से CheapTokens को अनुरोध भेजने के लिए, .NET के लिए आधिकारिक OpenAI लाइब्रेरी रखें और OpenAIClientOptions. को https:/ पर सेट करें। पूरा मॉडल id पास करें, उदाहरण के लिए deepseek-, और key को environment variable से पढ़ें। ChatClient और CompleteChat कॉल OpenAI के उदाहरणों की तरह ही बने रहते हैं।
मान लीजिए आपके पास पहले से एक ASP.NET सेवा है जो OpenAI से बात करती है, और आप बाकी कोड को छुए बिना दूसरा endpoint और मॉडल आज़माना चाहते हैं। इसे किसी भी चीज़ से जोड़ने से पहले, तीन चीज़ें (key, endpoint, model id) जो आमतौर पर गड़बड़ाती हैं, एक छोटे console ऐप में जाँच लें। यही हम यहाँ बनाते हैं। नीचे दिए गए विवरण GitHub पर लाइब्रेरी के README (openai/openai-dotnet, 5 नवंबर 2026 को जाँचा गया) और CheapTokens डॉक्स से हैं: docs पेज पर वही base URL है।
आपको क्या चाहिए#
NuGet पर पैकेज का नाम OpenAI है। 5 नवंबर 2026 तक नवीनतम स्थिर संस्करण 2.15.0 है (इसकी changelog प्रविष्टि 4 नवंबर की है)। यह .NET 8 और .NET Standard 2.0 को लक्षित करता है, और README कहता है कि यह सभी .NET Standard 2.0 एप्लिकेशन के साथ काम करता है, इसलिए पुराना प्रोजेक्ट भी ठीक है।
ऐप में तीन मान जाते हैं:
- base URL:
https:/(OpenAI Chat Completions संगत);/ api. cheaptokens. dev/ v1 - model id:
deepseek-। पूरा id इस्तेमाल करें, मूल्य तालिका से छोटा नाम स्वीकार नहीं किया जाता। DeepSeek-V4-Flash में 380K context window और प्रति उत्तर अधिकतम 32,768 output tokens हैं, दिन के किसी भी समय एक ही कीमत;ai/ DeepSeek- V4- Flash- 0731 - आपके CheapTokens खाते से एक API key, जो environment variable में रखी गई हो। अगर आपको इसे संग्रहीत करने का तरीका पता नहीं है, तो API key को सुरक्षित रूप से कैसे संग्रहीत करें पढ़ें।
console ऐप बनाएँ#
चरण दर चरण
प्रोजेक्ट बनाएँ और चलाएँ
console प्रोजेक्ट बनाएँ
dotnet new console -o FirstRequest
cd FirstRequestपैकेज जोड़ें
dotnet add package OpenAIkey को environment variable में रखें
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 "एक proxy या self-hosted OpenAI-संगत LLM" के लिए यह पैटर्न दिखाता है: endpoint OpenAIClientOptions में जाता है, key एक ApiKeyCredential में (यह System. में रहती है, इसलिए पहला using)। शीर्ष पर जाँच हमारी है: अगर variable सेट नहीं है तो यह स्पष्ट संदेश देती है।
सादे string के साथ CompleteChat एक user संदेश भेजता है और पूरे उत्तर की प्रतीक्षा करता है। उत्तर का टेक्स्ट completion. में है। finish reason completion. में है।

आपको क्या दिखना चाहिए#
आपको tokens की एक छोटी व्याख्या और finish reason वाली एक पंक्ति मिलनी चाहिए; सामान्य अंत के बाद यह Stop होता है (README FinishReason की ChatFinishReason. से तुलना करता है)। उत्तर का शब्दांकन हर बार बदलता है।
दूसरी पंक्ति पढ़ने लायक है। README FinishReason की ChatFinishReason. (मॉडल ने अपने आप समाप्त किया) और ChatFinishReason. (मॉडल कोई tool कॉल करना चाहता है) से तुलना करता है। सादे chat में Stop के अलावा कुछ भी होने का मतलब है कि उत्तर किसी और कारण से समाप्त हुआ, और आम संदिग्ध लंबाई सीमा है। अगर आपको वाक्य के बीच में रुकता उत्तर दिखे, तो यह लेख finish_reason और max_tokens समझाता है।
मौजूदा सेवा बदलना#
अगर आपकी सेवा पहले से OpenAI के लिए ChatClient बनाती है, तो आप दो चीज़ें बदलते हैं: model string और options। बाकी कॉल काम करते रहते हैं।
तुलना करें
वही client, दो बदली हुई पंक्तियाँ
पहले
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 context, अधिकतम 8,192 output tokens)। आप केवल model string बदलते हैं। आपकी key किन ids का उपयोग कर सकती है, इसकी सूची एक अनुरोध दूर है, देखें GET /v1/models से मॉडल सूचीबद्ध करें।
एक अनुरोध की लागत#
मान लीजिए एक सेवा प्रतिदिन 1,000 अनुरोध संभालती है, प्रत्येक में लगभग 300 tokens इन और 400 tokens आउट। DeepSeek-V4-Flash पर ऐसे एक अनुरोध की लागत $0.000045 है। नीचे दी गई तालिका OpenRouter के मुकाबले तीनों मॉडलों पर वही 1,000 अनुरोध दिखाती है। कुल मिलाकर, input और output को साथ गिनने पर, 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. key गायब है या गलत है। छापें कि variable सेट है या नहीं (कोड में जाँच यही करती है) और सुनिश्चित करें कि
dotnet runउसी टर्मिनल में शुरू किया गया है जहाँ आपनेexport(या$env:) चलाया था: variable केवल उसी सत्र में रहता है। - 404. अक्सर model id: पूरे
deepseek-के बजाय छोटा नाम, याai/ DeepSeek- V4- Flash- 0731 /v1के बिना endpoint (यह भी जाँचें किOpenAIClientOptionsवास्तव मेंChatClientको पास हो रहा है)। विवरण API 401 या 404: गलत key, base URL या model id में हैं। - error CS0246: The type or namespace name 'ApiKeyCredential' could not be found.
Program.csके शीर्ष परusing System.पंक्ति गायब है।ClientModel;
वही विचार दूसरी भाषा में: openai-go के साथ Go संस्करण।



