Rust और AI — यह कल्पना नहीं, बल्कि एक कार्यशील उपकरण क्यों है
\n\nजब हम एक ही वाक्य में "कृत्रिम बुद्धिमत्ता" और "Rust" सुनते हैं, तो आमतौर पर हम Python में लिखे गए जटिल न्यूरल नेटवर्क की कल्पना करते हैं। लेकिन क्या होगा अगर मैं आपसे कहूँ कि Rust ChatGPT के साथ इंटरैक्ट करने के लिए एक बेहतरीन बैकएंड बन सकता है? धीमे Python के बिना, TensorFlow जैसी निर्भरताओं के बिना — बस साफ, तेज़, सुरक्षित कोड जो OpenAI API से संवाद करता है।
\n\nइस लेख में, हम शुरू से न्यूरल नेटवर्क नहीं सिखाएंगे — हम कुछ अधिक व्यावहारिक करेंगे: हम Rust में एक प्रोग्राम लिखेंगे जो ChatGPT को अनुरोध भेजता है और उत्तर प्राप्त करता है। और फिर हम इसे कोड, दस्तावेज़ीकरण उत्पन्न करना और यहाँ तक कि त्रुटियों को ठीक करना सिखाएंगे। जादू जैसा लगता है? वास्तव में — यह सिर्फ कुछ क्रेट्स और एक सही API-कुंजी है।
\n\nयदि आप कभी अपने Rust प्रोजेक्ट में भाषा मॉडल के रूप में "दिमाग" जोड़ना चाहते हैं — तो आप सही जगह पर आए हैं। चलिए शुरू करते हैं!
\n\nहमें क्या चाहिए: उपकरण और तैयारी
\n\nकोड लिखने से पहले, आइए समझें कि Rust एप्लिकेशन में ChatGPT को एकीकृत करने के लिए क्या आवश्यक है।
\n\nआवश्यक घटक
\n- \n
- Rust — स्थापित कंपाइलर (rustc) और पैकेज मैनेजर Cargo। यदि आपके पास अभी तक Rust नहीं है —
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh\n - OpenAI API-कुंजी — platform.openai.com पर पंजीकरण करें, एक कुंजी बनाएं और इसे पर्यावरण चर
OPENAI_API_KEYमें रखें \n - Rust लाइब्रेरीज़ — हम क्रेट्स
reqwest(HTTP अनुरोधों के लिए),serdeऔरserde_json(JSON के साथ काम करने के लिए),tokio(एसिंक्रोनस रनटाइम) का उपयोग करेंगे \n
प्रोजेक्ट बनाएँ
\ncargo new rust_chatgpt\ncd rust_chatgpt\n\nCargo.toml में निर्भरताएँ जोड़ें:
[dependencies]\nreqwest = { version = "0.12", features = ["json"] }\ntokio = { version = "1", features = ["full"] }\nserde = { version = "1.0", features = ["derive"] }\nserde_json = "1.0"\n\nअब cargo build चलाएँ — निर्भरताएँ स्वचालित रूप से डाउनलोड हो जाएँगी।
Rust में ChatGPT को पहला अनुरोध लिखना
\n\nChatGPT से "बात" करने का सबसे सरल तरीका एंडपॉइंट https://api.openai.com/v1/chat/completions पर POST-अनुरोध भेजना है। Rust अपनी सख्त टाइपिंग के साथ इस कार्य के लिए एकदम सही है: हम अनुरोध और प्रतिक्रिया की संरचना का स्पष्ट रूप से वर्णन करेंगे, और कंपाइलर हर कदम पर हमारी जाँच करेगा।
API के लिए डेटा संरचनाएँ
\nOpenAI API एक विशिष्ट योजना के साथ JSON की अपेक्षा करता है। आइए serde का उपयोग करके इसका वर्णन करें:
use serde::{Deserialize, Serialize};\n\n#[derive(Serialize)]\nstruct ChatRequest {\n model: String,\n messages: Vec<Message>,\n temperature: f32,\n}\n\n#[derive(Serialize, Deserialize, Clone)]\nstruct Message {\n role: String,\n content: String,\n}\n\n#[derive(Deserialize)]\nstruct ChatResponse {\n choices: Vec<Choice>,\n}\n\n#[derive(Deserialize)]\nstruct Choice {\n message: Message,\n}\n\nध्यान दें: Message का उपयोग भेजने और प्राप्त करने दोनों के लिए किया जाता है — इसलिए हमने दोनों विशेषताएँ Serialize और Deserialize जोड़ी हैं।
एसिंक्रोनस अनुरोध
\nअब एक फ़ंक्शन लिखते हैं जो संदेश भेजता है और ChatGPT से उत्तर लौटाता है:
\n\nuse std::env;\n\nasync fn ask_chatgpt(prompt: &str) -> Result<String, Box<dyn std::error::Error>> {\n let api_key = env::var("OPENAI_API_KEY")\n .expect("चर OPENAI_API_KEY सेट नहीं है");\n\n let client = reqwest::Client::new();\n\n let request_body = ChatRequest {\n model: "gpt-4o-mini".to_string(), // तेज़ और सस्ता मॉडल\n messages: vec![\n Message {\n role: "system".to_string(),\n