openai-api-rs Rust के लिए: पूर्ण गाइड उदाहरणों के साथ
openai-api-rs लाइब्रेरी Rust भाषा में लिखा गया एक आधुनिक, एसिंक्रोनस और टाइप-सेफ OpenAI API क्लाइंट है। यह डेवलपर्स को GPT मॉडल (GPT-4, GPT-3.5), DALL-E (इमेज जनरेशन), Whisper (स्पीच रिकॉग्निशन), एम्बेडिंग, कंटेंट मॉडरेशन और फ़ाइल मैनेजमेंट के साथ इंटरैक्ट करने का एक आसान इंटरफ़ेस प्रदान करता है। यह लाइब्रेरी स्ट्रीमिंग रिस्पॉन्स को पूरी तरह से सपोर्ट करती है, जो इंटरैक्टिव चैट ऐप और कम लेटेंसी वाले असिस्टेंट बनाने के लिए बहुत ज़रूरी है।
OpenAI API के साथ Rust का उपयोग क्यों करें? Rust बिना गार्बेज कलेक्टर के सबसे अच्छा प्रदर्शन और मेमोरी सुरक्षा प्रदान करता है। यह openai-api-rs को हाई-लोड सर्वर ऐप, Telegram/Discord बॉट, रियल-टाइम नेचुरल लैंग्वेज प्रोसेसिंग सिस्टम और एम्बेडेड डिवाइस के लिए एक आदर्श विकल्प बनाता है। Rust के सख्त टाइप सिस्टम के कारण, कई त्रुटियाँ (जैसे गलत रिक्वेस्ट फ़ॉर्मेट) रनटाइम के बजाय कंपाइलेशन के समय ही पकड़ी जाती हैं। यह लाइब्रेरी reqwest और tokio पर आधारित है, जो एसिंक्रोनस I/O ऑपरेशन के साथ कुशल कार्य सुनिश्चित करती है।
PythonLib शैक्षिक साइट पर, हम इस लाइब्रेरी को इसलिए कवर कर रहे हैं ताकि यह दिखाया जा सके कि Rust इकोसिस्टम का उपयोग मशीन लर्निंग और NLP कार्यों के लिए कैसे किया जा सकता है। भले ही आप Python में लिखते हों, Rust क्लाइंट को समझने से आपको API रिक्वेस्ट की आंतरिक कार्यप्रणाली और स्ट्रीमिंग डेटा प्रोसेसिंग के सिद्धांतों को बेहतर ढंग से समझने में मदद मिलेगी। यह लाइब्रेरी समुदाय द्वारा सक्रिय रूप से समर्थित है, इसमें विस्तृत दस्तावेज़ीकरण है और यह टेस्ट से कवर है।
इंस्टॉलेशन
अपने Rust प्रोजेक्ट में openai-api-rs लाइब्रेरी इंस्टॉल करने के लिए, प्रोजेक्ट की रूट डायरेक्टरी में टर्मिनल में निम्न कमांड चलाएँ:
cargo add openai-api-rs
यह कमांड Cargo.toml फ़ाइल में लाइब्रेरी का नवीनतम संस्करण जोड़ देगा। यदि आप मैन्युअल एडिटिंग पसंद करते हैं, तो [dependencies] सेक्शन में निम्न पंक्ति जोड़ें:
[dependencies]
openai-api-rs = "0.2" # crates.io पर नवीनतम संस्करण जाँचें
आपको एक एसिंक्रोनस रनटाइम की भी आवश्यकता होगी। tokio का उपयोग करने की अनुशंसा की जाती है:
cargo add tokio --features full
अपने OpenAI API की को OPENAI_API_KEY एनवायरनमेंट वेरिएबल सेट करना न भूलें। यह टर्मिनल में किया जा सकता है:
export OPENAI_API_KEY="sk-आपकी_कुंजी_यहाँ"
या सीधे कोड में कुंजी पास करें (प्रोडक्शन के लिए अनुशंसित नहीं)।
त्वरित शुरुआत
न्यूनतम कार्यशील उदाहरण: GPT-3.5 मॉडल को एक सरल रिक्वेस्ट भेजना और कंसोल में आउटपुट प्रिंट करना।
use openai_api_rs::v1::api::Client;
use openai_api_rs::v1::chat_completion::{ChatCompletionRequest, Message};
use std::env;
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
// एनवायरनमेंट वेरिएबल से API कुंजी का उपयोग करके क्लाइंट बनाएँ
let client = Client::new(env::var("OPENAI_API_KEY")?);
// रिक्वेस्ट बनाएँ
let request = ChatCompletionRequest::new(
"gpt-3.5-turbo".to_string(),
vec![Message {
role: "user".to_string(),
content: "Rust के बारे में एक छोटी कविता लिखें".to_string(),
}],
);
// रिक्वेस्ट भेजें और रिस्पॉन्स प्राप्त करें
let response = client.chat_completion(request).await?;
// रिस्पॉन्स टेक्स्ट निकालें
if let Some(choice) = response.choices.first() {
println!("जवाब: {}", choice.message.content);
}
Ok(())
}
प्रोग्राम को cargo run कमांड से चलाएँ। आपको एक जनरेटेड कविता दिखनी चाहिए। यह उदाहरण बुनियादी मैकेनिज्म को दर्शाता है: क्लाइंट बनाना, रिक्वेस्ट बनाना और रिस्पॉन्स प्रोसेस करना।
मुख्य
पुस्तकालय में भी
TypeScript में क्रिप्टोग्राफी: crypto-js लाइब्रेरी का अवलोकन
Rust अनुप्रयोगों की निगरानी: `tracing` लाइब्रेरी
जावा में PDF जनरेशन: iText, Apache PDFBox, OpenPDF लाइब्रेरीज़ का अवलोकन
जावा में डेटा सत्यापन: लाइब्रेरी और दृष्टिकोणों का अवलोकन
Kotlin कार्य शेड्यूलर: kotlinx.coroutines और पृष्ठभूमि कार्यों के लिए लाइब्रेरीज़