एकाधिक एलएलएम को कॉल करने में प्रदाता/मॉडल-विशिष्ट कॉन्फ़िगरेशन शामिल होते हैं। भले ही आप I/O को एकीकृत कर दें, फिर भी आपको मॉडल/प्रदाता-विशिष्ट एज-केसों को संभालने का एक तरीका चाहिए।
हमें पिछले सप्ताह इसका सामना करना पड़ा जब एंथ्रोपिक ने हमें बताया कि हमने उनकी सामग्री नीति का उल्लंघन किया है। चूंकि, हम अपने ओपन-सोर्स प्रॉक्सी सर्वर के माध्यम से अपने समुदाय को क्लाउड-2 आदि जैसे एलएलएम तक पहुंच प्रदान करते हैं।
OpenAI मॉडरेशन एंडपॉइंट के माध्यम से क्वेरीज़ की जाँच करने से क्वेरीज़ धीमी हो जाएंगी, इसलिए हम इसे केवल एंथ्रोपिक के मॉडल पर चलाना चाहते थे।
if model in ["claude-instant-1", "claude-2"]: # run moderations check return litellm.completion(model, messages)
लेकिन इस तरह के सशर्त तर्क से बग पैदा होते हैं। हमने पहले भी इस सटीक समस्या का सामना किया था, और हमारे लिए इस समस्या को हल करने के लिए लाइटएलएलएम का निर्माण किया था (अमूर्त लाइब्रेरी जिसने एलएलएम एपीआई कॉल को सरल बनाया था)।
tldr;
हमारा समाधान यह था कि लाइटएलएलएम हमारे लिए इसे संभाले , और एक कॉन्फ़िगरेशन फ़ाइल के माध्यम से इसके तर्क को नियंत्रित करे। इसने हमारे सर्वर कोड से सशर्त तर्क को हटा दिया , और फिर भी हमें प्रदाता/मॉडल विशिष्ट विवरणों को नियंत्रित करने की अनुमति दी।
इसने हमें अन्य परिदृश्यों जैसे संदर्भ विंडो त्रुटियों, अधिकतम टोकन आदि को संभालने में भी सक्षम बनाया।
यहां हमारा पूरा कोड है:
import litellm import os config = { "default_fallback_models": ["gpt-3.5-turbo", "claude-instant-1", "j2-ultra"], "model": { "claude-instant-1": { "needs_moderation": True }, "gpt-3.5-turbo": { "error_handling": { "ContextWindowExceededError": {"fallback_model": "gpt-3.5-turbo-16k"} } } } } # set env var os.environ["OPENAI_API_KEY"] = "sk-litellm-5b46387675a944d2" # [OPTIONAL] replace with your openai key os.environ["ANTHROPIC_API_KEY"] = "sk-litellm-5b46387675a944d2" # [OPTIONAL] replace with your anthropic key sample_text = "how does a court case get to the Supreme Court?" * 1000 messages = [{"content": sample_text, "role": "user"}] response = completion_with_config(model="gpt-3.5-turbo", messages=messages, config=config) print(response) # should be gpt-3.5-turbo-16k
कॉन्फ़िग फ़ाइलें वर्तमान में प्रबंधित होती हैं:
समय के साथ, यह अन्य मॉडल-विशिष्ट मापदंडों को संभाल लेगा जैसे अधिकतम टोकन सेट करना, त्वरित फ़ॉर्मेटिंग इत्यादि। विचारों/सुझावों का स्वागत है!
ओपनएआई चैटकंप्लीशन के एंडपॉइंट के लिए ड्रॉप-इन प्रतिस्थापन के साथ, लाइटएलएलएम ने पहले से ही एलएलएम प्रदाताओं को कॉल करना सरल बना दिया है।
कॉन्फ़िगरेशन फ़ाइलों के साथ, यह अब आपको किसी भी सर्वर-साइड कोड को बदले बिना, उत्पादन में नए मॉडल जोड़ने की सुविधा दे सकता है।
कुल मिलाकर, लाइटएलएलएम उन लोगों के लिए एक उत्कृष्ट विकल्प है जो गैर-ओपनएआई मॉडल को जल्दी और आसानी से उत्पादन में जोड़ना चाहते हैं।
हम सक्रिय रूप से इस परियोजना को आगे बढ़ाने की कोशिश कर रहे हैं, इसलिए आपके कौशल स्तर पर कोई फर्क नहीं पड़ता, हम योगदान का स्वागत करते हैं! यदि आपको अनुपलब्ध सुविधाएँ/बग मिलते हैं या मौजूदा समस्याओं में योगदान होता है, तो एक समस्या खोलें। यदि आप नए अपडेट आने पर हमारी प्रगति का अनुसरण करना चाहते हैं तो हमें GitHub पर स्टार करें ।