LLMApi: ASP में स्वचालित रूप से API सिमुलेशन के लिए स्थानीय LLM का प्रयोग करना
परिचय
मेरे स्थायी आवेशों में से एक नमूना डेटा है मेरे वर्तमान प्रेम के साथ संयोजित 'AI सहायता की ' अनियमित विचारों को कोडिंग यह \ ' एक छोटा LLM सक्षम परीक्षण डेटा जेनेरेटर के सिफारिश करने के लिए एक मध्यवर्ती उपकरण के साथ एक nuget पैकेज है जो एक API का उपयोग करके अनुकरण API प्रतिक्रियाएं उत्पन्न कर सकते हैं
आप मिल सकते हैं GitHub यहाँ परियोजना के लिए, सभी सार्वजनिक डोमेन आदि
संकल्पना
जैसे कि बहुत से कोडिंग विचारों के साथ यह LLMs का उपयोग कर आउटपुट सिमुलेशन के बारे में एक विचार से शुरू हुआ थाLucidForumsएक hilariously dysfunctional self populating LLM आधारित मंच प्रयोग अगर मैं उन्हें किसी भी API को सिमुलित करने के लिए उपयोग कर सकता हूँ
आवश्यकताएं
- यह एक ASP में कार्यान्वित करना सरल होना चाहिए
- आंकड़े काफी वास्तविक होना चाहिए
- डाटा अनियमित होना चाहिए
- यह JSON 'shapes' को स्वीकार कर सकता है जो एलएलएम को बताता है कि प्रतिक्रिया क्या होना चाहिए
- यह स्थानीय ओपन सोर्स एलएलएम का उपयोग कर सकता है
- यह न्यूगेट नियंत्रण का उपयोग करने के लिए एक निःशुल्क होना चाहिए
यह है जो मैं के साथ आया था।
भविष्य में जोड़ने के लिए संभवतः कैचिंग शामिल होगा यदि आप तेजी से perf चाहते हैं
यहाँ पैकेज के लिए readme है
mostlylucid.mockllmapi
क्या करता है LLMs के प्रयोग से वास्तविक नक्शा API प्रतिक्रियाएं उत्पन्न करने हेतु एक उत्पादन-ready ASP.NET कोर मॉकिंग प्लेटफार्म
आप इसे क्यों उपयोग करते हैं सिर्फ कोड लाइनों के साथ किसी भी परियोजना में स्मार्ट मॉक अंतबिंदु जोड़ें
साझेदार पैकेज mostlylucid.mockllmapi.Testing - प्रवाहित HttpClient एकीकरण के साथ परीक्षण यूटिलिटी
इस README को कैसे पढ़ना है
यह README डिजाइन द्वारा व्यापक है
- मैं इसे मिनटों में कोशिश करना चाहता हूँ → में जाएँ त्वरित प्रारंभ
- मैं जानना चाहता हूँ कि यह क्या कर सकता है → देखें विशेषताओं की समीक्षा और वास्तुकला
- मैं समझना चाहता हूँ कि यह कैसे काम करता है → पढ़ें विशेषता दस्तावेज़ीकरण और उन्नत सुविधाएँ
क्या new 's
नवीनतम: स्वचालित आकार (शैप मेमोरी v2.5.0: सुरक्षा सुधारः serialization निर्भरताओं को हटाकर ट्रिमिंग समर्थन v2.3.0: पूर्ण सामग्री प्रकार समर्थन - फ़ॉर्म बॉड्स, फ़ाइल अपलोड्स v2.2.0: API इंटीग्रेशन के लिए प्लगैबल औजार, pre-configured REST APIsM SK2 automatic context memory expiration v2.1.0: दर सीमान, बैचिंग, nM SK2बहु निष्पादन रणनीतियों के साथ समापन
Click for detailed v2.5.0 feature breakdown
संस्करण 2.5.0 विवरण
फोकस: सुरक्षा सुधार और AOT
1. AOT/ट्रिमिंग समर्थन - सभी प्रतिबिंब को हटाया गया
- निष्कासित
System.Text.Jsonप्रतिबिम्ब उपयोग - कोडबेस के माध्यम से मैनुअल JSON निर्माण
- .NET 8.0+ AOT और ट्रीमिंग के साथ पूरा अनुकूलता
- कोई रनटाइम प्रकार रिजोल्यूशन मुद्दे नहीं
- छोटा बाइनरी आकार और बेहतर स्टार्टअप निष्पादन
2. बेहतर सुरक्षा व्यापक सुरक्षा सुधार
- सभी प्रतिबिंबन मिटाया---आधारित सीरियलाइजेशन जो कि प्रकार सूचना को प्रकट कर सकता है
- संभावित प्रकार inference असुरक्षितताओं को दूर किया गया
- स्पष्ट प्रकार प्रतिबंधों के साथ सुरक्षित JSON प्रबंधन
- श्रृङ्खलाकरण के लिए कम हमला सतह
- डीसीरियलाइजेशन आक्रमणों के विरुद्ध बेहतर संरक्षण
3. निष्पादन अनुकूलन बेहतर रनटाइम निष्पादन
- प्रतिबिंब के बिना तेज JSON निर्माण
- कम स्मृति आवंटन
- बेहतर कैश स्थान
- ट्रिम्ड अनुप्रयोगों के लिए बेहतर स्टार्टअप समय
- कम स्मृति फुटप्रिंट
संगतता के लिए पूरा समर्थन
- प्रतिबिंब से बचने के लिए पूरी तरह से म्यानुअल JSON निर्माण
- सभी विशेषताओं का परीक्षण किया गया और .NET \10 पूर्वावलोकन निर्माण पर काम कर रहा है
- मौजूदा कार्यक्षमता में कोई विच्छेदन परिवर्तन नहीं
5. परीक्षण सुधार - बेहतर परीक्षण कवरेज
- AOT/trimming परिदृश्यों के लिए अतिरिक्त परीक्षण
- सुरक्षा-उन्मुख इकाई परीक्षण
- निष्पादन मानक परीक्षण
- सभी नए परीक्षणों के साथ 100% पास दर
अधिक जानकारी के लिए TEST_SUMMARYM SK1md और IMPLEMENTATION_SUMMOARY .md देखें
Click for detailed v2.3.0 feature breakdown
संस्करण 2.3.0 विवरण
फोकससभी सामान्य HTTP अनुरोध प्रारूपों के लिए पूर्ण सामग्री प्रकार समर्थन
1. फार्म बॉडी समर्थन - का पूरा समर्थन application/x-www-form-urlencoded सामग्री क़िस्म. एकल और बहुविध मानोंM SK1 स्वचालित JSON रूपांतरण, नेट के लिए म्यानुअल निर्माण MSC3 10 संगतताMRK5 एचटीएमएल फ़ॉर्म तथा पारंपरिक वेब अनुप्रयोगों का परीक्षण करने के लिए पूर्ण
2. फ़ाइल अपलोड समर्थन - का पूरा समर्थन multipart/form-data फ़ाइल अपलोड सहित. मेमोरी
3. मनपसंद पथ लंबाई - गहरे मार्ग के माध्यम से नेस्टिंग के लिए समर्थन {**path} पकड़ना-सभी रूटिंग.सेगमेंट गहरे पथों और जटिल क्वेरी स्ट्रिंग के साथ परीक्षण किया गया।
4. व्यापक परीक्षण सुइट सभी विशेषताओं को कवर करने वाला नया).Form body parsing(12),JSON handling(25),HTTP पूर्ण कार्यप्रवाह के लिए एकीकृत परीक्षण.100%pass rate,zero regressions.
संगतता प्रतिबिंब से बचने के लिए पूरी तरह से म्यानुअल JSON निर्माण
अधिक जानकारी के लिए TEST_SUMMARYM SK1md और IMPLEMENTATION_SUMMOARY .md देखें
Click for detailed v2.2.0 feature breakdown
संस्करण 2.2.0 विवरण
फोकसAPI इंटीग्रेशन के लिए प्लगैबल उपकरण
प्लगैबल उपकरण वास्तविक कार्यप्रणाली और निर्णय वृक्ष बनाने के लिए बाहरी REST API या श्रृंखला नमूना अंतबिंदुओं को कॉल करें पूरा डक →
2. Pre-konfigured REST APIs - एक बार पूरा API कॉन्फ़िगरेशन परिभाषित करें। appsettings.Full.json के लिए पूर्ण उदाहरण 8
Dynamic Context Memory Management - संदर्भ अब निष्क्रियता के मिनटों के बाद समाप्त हो जाते हैं।
Intelligent Shared Data Extraction Automatically extracts ALL fields from responses at any nesting level
5. उन्नत दस्तावेज़ीकरण - New comprehensive guides for उपकरण & कार्य, दर सीमा, और API संदर्भ.
विषयसूची
कोर संकल्पनाएँ
- विशेषताओं की समीक्षा - यह प्रणाली क्या कर सकती है
- त्वरित प्रारंभ - मिनट में चलाएँ
- वास्तुकला - यह सब एक साथ कैसे फिट करता है
- गैर-आकांक्षाएं & सीमाएँ - क्या यह नहीं है
प्रोटोकॉल & विशेषताएँ
- रेस्ट API मोकिंग
- GraphQL API मोकिंग
- एसईएस स्ट्रीमिंग
- सिग्नल आर वास्तविक
- ओपन एपीआई / स्वागर
- जीआरपीसी सेवाएँ
उन्नत & वास्तुकला
वास्तुकला की समीक्षा
एक इंजन सभी विशेषताएं एक ही पीढ़ी को साझा करती हैं।
graph LR
Client[Client] -->|HTTP Request| API[LLMApi<br/>Minimal API]
API -->|Chat Completion| Ollama[Ollama API<br/>localhost:11434]
Ollama -->|Inference| Model[llm-model Model]
Model -->|Response| Ollama
Ollama -->|JSON/Stream| API
API -->|JSON/SSE| Client
API -.->|uses| Helper[AutoApiHelper]
style API fill:#4CAF50
style Helper fill:#2196F3
style Model fill:#FF9800
कुंजी घटक
- एकल एलएलएम क्लाइंट: सभी प्रोटोकॉलों में प्रतिरोध नीतियों के साथ एक ही LLM सम्मिलन का प्रयोग किया जाता है
- साझा संदर्भ स्मृति: API संदर्भ REST के माध्यम से काम करते हैं
- सामान्य विशेषताएँ: दर सीमानM SK1 कैचिंग, त्रुटि सिमुलेशनMSC3 और टोकन प्रबंधन सभी के लिए लागू होते हैं
- मॉड्यूलर डिजाइन: किसी भी संयोजन का उपयोग करें
देखें विस्तृत वास्तुकला चित्र अनुरोध प्रवाह और आकार नियंत्रण के लिए नीचे
सुविधाएँ
यह पैकेज प्रदान करता है छह स्वतंत्र विशेषताएँ किसी भी संयोजन का उपयोग करें जिसे आप चाहते हैं मॉड्यूलर उदाहरण प्रोटोकॉल के लिए
1. रेस्ट API मोकिंग
- सुपर सरल:
AddLLMockApi()+MapLLMockApi("/api/mock")= तत्काल नमूना API - आकार नियंत्रणहेडर के माध्यम से सही JSON संरचना निर्दिष्ट करें
- सभी HTTP विधिसमर्थित GET
- विल्डकार्ड रूटिंग: आपके चयनित अंतबिंदु के नीचे कोई भी पथ काम करता है
- पूर्ण सामग्री प्रकार समर्थन में (NEW
- JSON (
application/jsonमानक JSON अनुरोध निकाय - रूप निकाय (
application/x-www-form-urlencodedएचटीएमएल फ़ॉर्म प्रस्तुतियां - फ़ाइल अपलोड (
multipart/form-dataमेटाडेटा निष्कर्ष के साथ फ़ाइल अपलोड करता है - स्मृतिFile content streamed and dumped (only metadata retained
- JSON (
- मनपसंद पथ लंबाईगहरे मार्ग नेस्टिंग पूरी तरह से समर्थित है
/api/mock/v1/api/products/electronics/computers/laptops/gaming/...)
2. GraphQL API मोकिंग
- नेटिव ग्राफक्यूएल समर्थन: को पोस्ट करें
/api/mock/graphqlमानक ग्राफक्यूएल क्वेरी के साथ - Query-Driven Shapes: GraphQL क्वेरी स्वयं प्रतिक्रिया संरचना परिभाषित करता है
- चल & ऑपरेशन: चरों के लिए पूरा समर्थन
- उचित त्रुटि प्रबंधन: returns GraphQL-formatted errors with
dataऔरerrorsक्षेत्र
सर्वर
- प्रगतिशील प्रवाहप्रगतिशील JSON जनन के साथ : एसईएस समर्थन
- Real-time अद्यतनग्राहकों को स्ट्रीम डेटा टोकन
- स्टैंडलोन कार्य करता है: कोई रेस्ट API सेटअप जरूरी नहीं
- पूर्ण एसईएस गाइड | सतत प्रवाह
4. सिग्नल आर वास्तविक
- वेबसॉकेट स्ट्रीमिंग: सिग्नल आर के माध्यम से निरंतर वास्तविक
- बहुविध संदर्भ: एक साथ कई स्वतंत्र डेटा स्ट्रीम चलाएँ
- जीवन चक्र प्रबंधन: Start/प्रबंध API के साथ सक्रिय रूप से संदर्भ रोकें
- स्टैंडलोन कार्य करता है: कोई रेस्ट API सेटअप जरूरी नहीं
- सिग्नलआर डेमो गाइड
ओपन एपीआई
- स्वचालित अंतबिंदु निर्माणकिसी OpenAPI को संकेतित करें
- सभी ऑपरेशनों को मोक किया गया: स्पेक्ट से प्रत्येक पथ और विधि एक जीवंत अंतबिंदु बन जाता है
- schema-Driven Data: LLM आपके स्कीमाओं के अनुरूप वास्तविक डेटा उत्पन्न करता है
- बहुविध SPECS: एक साथ कई API विशेषताओं को लोड और माउन्ट करें
- स्टैंडलोन कार्य करता है: कोई रेस्ट API सेटअप जरूरी नहीं
- ओपन एपीआई विशेषता निर्देशिका
gRPC सेवा मोकिंग v में (NEW
- प्रोटो फ़ाइल अपलोडजीआरपीसी सेवा मॉक बनाने के लिए : अपलोड करें
- डबल प्रोटोकॉल समर्थनपरीक्षण के लिए HTTP पर : JSON
- गतिशील क्रमबद्धता: रनटाइम प्रोटोबॉफ एनकोडिंग कोड बनाने के बिना
- LLM-Powered Data: आपके प्रोटो संदेश परिभाषाओं के अनुरूप वास्तविक प्रतिक्रियाएँ
- स्टैंडलोन कार्य करता है: कोई रेस्ट API सेटअप जरूरी नहीं
- जीआरपीसी समर्थन गाइड
सामान्य विशेषताएँ
- कॉन्फ़िगर योग्यappsettings.json या इनलाइन विन्यास
- उच्च रूप से चल डेटा: प्रत्येक अनुरोध/update पूरी तरह से भिन्न वास्तविक डेटा उत्पन्न करता है
- नूगेट पैकेज: मौजूदा परियोजनाओं को जोड़ने में आसान
- **स्वचालित आकार (**पहले प्रतिक्रिया से JSON संरचना को स्वचालित रूप से याद करता है ऑटोशैप गाइड देखें
- API संदर्भसंबंधित अनुरोधों में सुसंगतता बनाए रखें पूर्ण मार्गदर्शक
- त्रुटि सिमुलेशन: व्यापक त्रुटि परीक्षण के साथ-साथ |4 |xx | /5 | xx स्थिति कोड |, | अनुकूल संदेश | , | और बहुविध कॉन्फ़िगरेशन विधि
- परीक्षण उपयोगिताएँ: अनुषंगी पैकेज
mostlylucid.mockllmapi.Testingपरीक्षणों में सरल एचटीटीपी क्लाइंट एकीकरण के लिए - जाँच अनुभाग देखें
गैर-आकांक्षाएं & सीमाएँ
यह क्या है
- वास्तविक नमूना डेटा उत्पादन के लिए एक विकास और प्रारूप निर्माण उपकरण
- फ्रन्टइन्ड विकास के लिए उपयुक्त
- शून्य-hardcoded फ़िक्सर और डाटाबेस के लिए रखरखाव विकल्प
क्या यह NOT: है
- कोई उत्पादन डेटा स्रोत नहीं Generated data is realistic but synthetic
- संविदा परीक्षणों के लिए प्रतिस्थापन नहीं - विकास के लिए इसका उपयोग करें
- अवैध उत्पादन ट्रैफिक के लिए नहीं - उपयोक्ता इनपुट सीधे LLM प्रवर्धन में जाता है
- डाटाबेस या स्थायी भंडार नहीं अनुरोधों के बीच कोई स्थिति नहीं रखी जाती
- वास्तविक बैकएण्ड तर्क का प्रतिस्थापन नहीं है - व्यावसायिक नियमों,, वैधीकरण,, और कार्यप्रणाली सरल बना रहे हैं
इसे कब प्रयोग करना है
- बैकएण्ड तैयार होने से पहले फ्रन्टएंड विकसित करना
- उत्पादन डेटा अभिगम के बिना वास्तविक डेमो बनाना
- विविध डेटा परिदृश्यों के साथ यूआई घटकों का परीक्षण
- प्रोटोटाइपिंग API डिजाइन और प्रतिक्रिया आकारों के साथ प्रयोग
- .NET में एलएलएम एकीकरण पैटर्न सीखना
जब इसे उपयोग नहीं करना है
- वास्तविक उपयोगकर्ताओं की सेवा करने वाले उत्पादन वातावरणों में
- सत्यापन परीक्षण के लिए/अधिकार तर्क (सुरक्षा योजनाओं को अनदेखा किया गया
- जब डेटा को कठोर व्यापार नियमों या वैधीकरण के अनुरूप होना चाहिए
- वास्तविक बैकएण्ड निष्पादन को लोड करने के लिए
- जब परीक्षण रनों के बीच प्रतिपादनीय डेटा की आवश्यकता होती है
विशेषता दस्तावेज़ीकरण
वास्तुकला चित्रों के साथ विस्तृत निर्देशिकाओं के लिए
डॉकर डेप्लोइमेंट गाइड - पूर्ण डोकर सेटअप और विनियोजन
- Docker Compose + Ollama के साथ त्वरित प्रारंभ
- समाप्ति llm के साथ उदाहरण में - से -
- कॉन्फ़िगरेशन विधियाँ (env vars
- GPU समर्थन,multi-backend सेटअप
- उत्पादन विचार और त्रुटिमोचन
बैकएण्ड API संदर्भ - पूर्ण प्रबंधन अंतबिंदु दस्तावेज़
- ओपन एपीआई प्रबंधन अंतबिंदु
- API संदर्भ प्रबंधन
- जीआरपीसी प्रोटो प्रबंधन
- सिग्नल आर हब्स
- पूरा अनुरोध/प्रतिक्रिया उदाहरण
बहुल एलएलएम बैकएण्ड्स गाइड - बहुप्रदाता समर्थन
- ओललामा, OpenAI, और एलएम स्टूडियो को एक साथ जोड़ें
- हेडरों के माध्यम से बैकएण्ड चयन आग्रह करें
- legacy कॉन्फ़िगरेशनों के साथ पूरा पीछे की संगतता
- प्रदाता-विशेष उदाहरण और सर्वोत्तम प्रथाएं
-
- समवर्ती बहु-- चरण कार्यप्रवाहों के लिए अनुरोधों में साझा स्मृति
- E-commerce flowsM SK1stock tickers, game state examples
- टोकन प्रबंधन और स्मार्ट टर्नकेशन
- जलपरी वास्तुकला रेखाचित्र
दर सीमा & बैचिंग गाइड v में नया -
- N-multiple response variants उत्पन्न करने के लिए पूर्णता समर्थन
- Per-अंतबिन्दु सांख्यिकी चालित औसतों के साथ ट्रैकिंग
- तीन बैचिंग रणनीतियां (Sequential,Parallel
- निष्पादन परीक्षण के लिए विस्तृत समय निर्धारण शीर्षिका
- बैकऑफ रणनीतियों और समय समाप्ति परिदृश्यों का परीक्षण करने के लिए पूर्ण
प्लगैबल उपकरण & क्रिया निर्देशिका v में नया -
- एक्सटेंबल उपकरण एकीकरण के लिए MCP-समpatible वास्तुकला
- प्रमाणीकरण के साथ बाहरी APIs बुलाने के लिए HTTP उपकरण
- निर्णय वृक्ष और कार्यप्रवाह बनाने के लिए मूक उपकरण
- परिवेश चल समर्थन के साथ टेम्प्लेट प्रतिस्थापन
- सुरक्षा सीमाओं और परिणाम कैचिंग के साथ उपकरण की खोज
- चरण 1 (एक्सप्लिकेट), चरण \2 |( |LLM | - |ड्राइव | एमएसके6 | चरण |एमएसके7 | |मएसके8 |अभिन्न | मएसके9 | रोडमैप
जीआरपीसी समर्थन गाइड v में नया -
- स्वचालित जीआरपीसी सेवा मोकिंग के लिए .प्रो फ़ाइल अपलोड करें
- HTTP और बाइनरी प्रोटोबॉफ़ पर दोहरे समर्थन
- LLM-powered वास्तविक प्रतिक्रिया उत्पादन
- पूर्ण कार्यान्वयन विवरण और परीक्षण रणनीति
-
- यूआरएल से गतिशील स्पेक्ट लोडिंग
- पथ पैरामीटरों के साथ स्वचालित अंतबिंदु उत्पादन
- quest/response examples with the Petstore API
- Real-time अद्यतन के लिए SignalR सम्मिलन
-
- REST-only
- स्मृति अनुकूलन रणनीति
- प्रोटोकॉलों को मिलाएँ और मिलाएं
-
- Real-time डेटा स्ट्रिंग सेटअप
- संदर्भ जीवन चक्र प्रबंधन
- क्लाइंट कनेक्शन उदाहरण
-
- पूर्ण संस्करण इतिहास
- परिवर्तनों को तोड़ रहा है (v के बाद कोई भी नहीं
- प्रवासी मार्गदर्शक
परीक्षण सारांश v में नया -
- पूर्ण परीक्षण कवरेज दस्तावेज़
- विस्तृत विच्छेदन के साथ 228 परीक्षण
- निष्पादन मापन और वैधीकरण
- सभी परीक्षण श्रेणियों का वर्णन
कार्यान्वयन सारांश v में नया -
- फॉर्म मुख्य भाग और फ़ाइल अपलोड कार्यान्वयन विवरण
- के लिए म्यानुअल JSON निर्माण
- मेमोरी-सुरक्षित फ़ाइल प्रबंधन संरचना
- पूर्ण कोड परिवर्तन और तर्क
त्वरित प्रारंभ
संस्थापन
मुख्य पैकेज
dotnet add package mostlylucid.mockllmapi
परीक्षण यूटिलिटी (वैकल्पिक
dotnet add package mostlylucid.mockllmapi.Testing
परीक्षणों में HttpClient कॉन्फ़िगरेशन के लिएfluent API प्रदान करता है जाँच अनुभाग देखें विवरण के लिए.
डॉकर के साथ त्वरित प्रारंभ (सिफारिश की गई
आरंभ करने के लिए सबसे तेजी से तरीका - कोई नहीं .NET या Ollama संस्थापन की आवश्यकता है
# Clone the repository
git clone https://github.com/scottgal/LLMApi.git
cd LLMApi
# Start everything with Docker Compose (includes Ollama + llm-model)
docker compose up -d
# Wait for model download (first run only, ~4.7GB)
docker compose logs -f ollama
# Test the API
curl "http://localhost:5116/api/mock/users?shape={\"id\":0,\"name\":\"\",\"email\":\"\"}"
यह है एपीआई इस पर चल रहा है http://localhost:5116 ऑललामा बैकएण्ड के साथ
देखें डॉकर गाइड पूर्ण करें के लिए:
- कॉन्फ़िगरेशन विकल्प (env vars
- भिन्न मॉडलों का उपयोग करते हुए (gemma3:4bM SK2mistral
- जीपीयू समर्थन
- उत्पादन विनियोजन
- त्रुटिमोचन
पूर्व आवश्यकताएं (स्थानीय विकास
यदि डोकर का उपयोग नहीं किया जाता है
- संस्थापित करें SDK या बाद में
- संस्थापित करें ओलामाCity name (optional, probably does not need a translation) और एक मॉडल खींचना
ollama pull ministral-3:3b
एलएलएम मॉडल चुनना
यह पैकेज था विकसित और परीक्षण के साथ ministral-3:3b (3B पैरामीटरों के साथ सभी विशेषताओं के लिए बहुत तेजी से निष्पादन के साथ उत्कृष्ट परिणाम प्रदान करता है।
सिफारिशित मॉडल
| मॉडल | आकार | गति & #44; | गुणवत्ता & #39; M SK4 | संदर्भ & #43; | सबसे अच्छा | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| मंत्री डिफ़ॉल्ट JSON के लिए KILLER | ||||||||||||||
| gemma3:4b निम्नतर के लिए वैकल्पिक | ||||||||||||||
| llama3 | 8 | B {\displaystyle \mathcal {B | 2 | मध्यम | 3 | बहुत अच्छा | 4 | 5 | K | 6 | सामान्य उपयोग | 7 | उत्पादन | |
| misttral-nemo | उच्च गुणवत्ता के मेजबान डेटासेट | |||||||||||||
| misttral:7b मध्यम | बहुत अच्छा | |||||||||||||
| phi3 तेजी से | अच्छी है | 4 | K | त्वरित प्रोटोटॉपिंग | ||||||||||
| तैनीलमा अधिक संसाधन |
अनुशंसित: Qwen M SK1 कोडर (3B)
क्वेन 2.5 कोडर जेसन जनन के लिए किललर है ultra -fast, highly accurateM SK3 large context
ollama pull ministral-3:3b
{
"MockLlmApi": {
"ModelName": "ministral-3:3b",
"Temperature": 1.2,
"MaxInputTokens": 8192
}
}
क्यों यह महान है
- किसी भी हार्डवेयर पर असाधारण रूप से तेज
- सर्वोत्कृष्ट-in-वर्ग जेसन जनन यथार्थता
- संदर्भ विंडो
- कोड के लिए विशेष रूप से प्रशिक्षित
- CI/CD पाइपलाइनों और विकास के लिए पूर्ण
- सामान्य मॉडलों की तुलना में न्यूनतम भ्रम
उत्पा दन: मिस्टरलM SK1नेमो - सर्वोत्तम गुणवत्ता & भारी संदर्भ
उत्पादन के लिए
ollama pull mistral-nemo
{
"MockLlmApi": {
"ModelName": "mistral-nemo",
"Temperature": 1.2,
"MaxInputTokens": 8000
}
}
क्यों यह महान है
- उच्चतम गुणवत्ता का वास्तविक डेटा उत्पादन
- 128K संदर्भ विंडो ( ओललामा विन्यास)
- जटिल nested संरचनाओं और बड़े डेटासेट के लिए सर्वोत्तम
- उत्पन्न डेटा में अधिक सृजनात्मक विविधता
- नोटअधिक संसाधनों की आवश्यकता है
मॉडल-निर्दिष्ट कॉन्फ़िगरेशन
मंत्री के लिए
{
"ModelName": "ministral-3:3b",
"Temperature": 1.2,
"MaxContextWindow": 262144 // 256K context window
}
के लिए gemma3:4b या llama3:
{
"ModelName": "llm-model", // or "mistral:7b"
"Temperature": 1.2,
"MaxContextWindow": 8192 // Set to model's context window size
}
मिस्टरल के लिए-nemo (HighM SK2गुणवत्ता उत्पादन
{
"ModelName": "mistral-nemo",
"Temperature": 1.2,
"MaxContextWindow": 32768, // Or 128000 if configured in Ollama
"TimeoutSeconds": 120 // Longer timeout for large contexts
}
नोट मिस्टरल ओललामा संदर्भ कॉन्फ़िगरेशन के लिए 128K संदर्भ
MaxContextWindow को कहाँ ढूंढना है
# Check model info
ollama show {model-name}
# Look for "context_length" or "num_ctx" parameter
# Example output: "context_length": 8192
छोटे मॉडल के लिए (phi3,tinyllamaM SK2
{
"ModelName": "tinyllama",
"Temperature": 0.7 // Lower temperature for stability
}
तापमान का क्या महत्व है
- बड़े मॉडल (7B+) वैध JSON को बनाए रखते हुए उच्च तापमान (1.0-1.5) को संभाल सकता है
- छोटे मॉडल (<4B) कम तापमान की आवश्यकता है (0.6-0.8) बचने के लिए
- अवैध JSON वाक्य संरचना (missing quotes
- Ellipsis के साथ संकुचित प्रतिक्रियाएं ("...")
- भ्रमित क्षेत्र नाम या संरचना
- कम तापमान = अधिक अनुमानित आउटपुट
- उच्च तापमान = अधिक रचनात्मक आउटपुट
संस्थापन
# RECOMMENDED for development (fastest, most accurate JSON)
ollama pull ministral-3:3b
# Alternative options
ollama pull gemma3:4b # Good for low-end machines
ollama pull llama3 # General purpose, good balance
ollama pull mistral-nemo # Highest quality (requires more RAM)
# Alternative options
ollama pull mistral:7b
ollama pull phi3
महत्वपूर्ण सीमाएं
- छोटे मॉडल (
tinyllama,phi3कार्य करता है लेकिन हो सकता है- सरल / अन्य विविध आंकड़ा उत्पन्न करें
- जटिल GraphQL क्वेरी के साथ लड़ें
- अधिक पुनः प्रयासों की आवश्यकता है
- सरल प्रश्नों और छोटे प्रतिक्रिया आकार के साथ सबसे अच्छा काम करें
- सभी मॉडल के साथ संघर्ष कर सकता है
- बहुत जटिल/deeply nested GraphQL queries स्तर गहरा
- प्रति वस्तु कई क्षेत्र क्षेत्र
- बड़ा एरे निवेदन विश्वसनीयता के लिए - मदों तक सीमा
- अगर त्रुटियों को देख रहा है संकुचित JSON के बारे में ("...") या टिप्पणियां ("//"):
- 0.8 या उससे नीचे के लिए कम तापमान
- अपने GraphQL क्वेरी को सरल बनाएँ ( कम क्षेत्रों, कम नेस्टिंग
- बढ़ाएँ
MaxRetryAttempts5 या उससे अधिक पर
बुनियादी उपयोग
कार्यक्रम
using mostlylucid.mockllmapi;
var builder = WebApplication.CreateBuilder(args);
// Add LLMock API services (all protocols: REST, GraphQL, SSE)
builder.Services.AddLLMockApi(builder.Configuration);
var app = builder.Build();
// Map mock endpoints at /api/mock (includes REST, GraphQL, SSE)
app.MapLLMockApi("/api/mock");
app.Run();
अनुप्रयोग-सेटिंग
{
"mostlylucid.mockllmapi": {
"BaseUrl": "http://localhost:11434/v1/",
"ModelName": "ministral-3:3b",
"Temperature": 1.2
}
}
अब सभी अनुरोध करने के लिए /api/mock/** सूक्ष्म नमूना डेटा लौटाएँ
स्वचालित आकार (
एक ही अंतबिंदु पर अनुरोधों के बीच समवर्ती JSON संरचनाओं को स्वचालित रूप से बनाए रखें
यह क्या करता है
स्वतः आकार एक अंतबिंदु के लिए पहले प्रतिक्रिया से JSON संरचना को याद करता है और स्वचालित रूप से उस ही अंतबिन्दु पर सभी बाद के अनुरोधों में लागू करता है
- बहुविध कॉलों के बीच एकरूप प्रतिक्रिया स्कीमा
- विकास के दौरान कोई स्कीमा ड्राइप नहीं
- परीक्षण के लिए पूर्वानुमानित API व्यवहार
त्वरित उदाहरण
# First request - generates free-form response
GET /api/mock/users/123
Response: {"id": 123, "name": "Alice", "email": "[email protected]", "role": "admin"}
# Second request - automatically uses same structure
GET /api/mock/users/456
Response: {"id": 456, "name": "Bob", "email": "[email protected]", "role": "user"}
# All subsequent requests use the same schema!
GET /api/mock/users/789
Response: {"id": 789, "name": "Carol", "email": "[email protected]", "role": "manager"}
कॉन्फ़िगरेशन
डिफ़ॉल्ट द्वारा सक्षम में appsettings.json:
{
"MockLlmApi": {
"EnableAutoShape": true, // Default: true
"ShapeExpirationMinutes": 15 // Default: 15
}
}
Per-request Control
विशिष्ट अनुरोध के लिए अक्षम करें
GET /api/mock/users/special?autoshape=false
एक खराब आकार को नया करें
# If first response was incomplete, renew it:
GET /api/mock/users/1?renewshape=true
# New response replaces old shape template
पथ सामान्यीकरण
इन सभी अनुरोधों का समान आकार (normalized के लिए साझा है /api/mock/users/{id}):
GET /api/mock/users/123 # Numeric ID
GET /api/mock/users/abc-456 # Alphanumeric ID
GET /api/mock/users/550e8400-e29b... # UUID
मुख्य विशेषताएँ
- डिफ़ॉल्ट से सक्षम - बॉक्स से बाहर काम करता है
- 🔄 आकार नवीकरण - के साथ खराब आकार निश्चित करें
?renewshape=true - ⏱️ ऑटो अक्रियता के बाद आकार समाप्त हो जाते हैं
- 🎯 स्मार्ट सामान्यीकरण - समान अंतबिंदु शेयर आकारों के लिए भिन्न आईडी
- स्पष्ट अधिरोहण - क्वेरी के माध्यम से स्पष्ट आकार प्रदान करना
- ✨ हर जगह काम करता है - RESTM SK1 Streaming, और GraphQL अंतबिंदु
कब उपयोग करना है
के लिए आदर्श
- फ्रंटएण्ड विकास को सुसंगत नमूना डेटा संरचनाओं की आवश्यकता होती है
- पूर्वानुमानित स्कीमाओं की आवश्यकता करने वाले एकीकृत परीक्षण
- डेमोज जहाँ डेटा संरचना को अनुरोधों के बीच परिवर्तन नहीं करना चाहिए
- विकासशील लेकिन सुसंगत आकारों के साथ API प्रारूप निर्माण
जब आवश्यक नहीं है
- स्पष्ट रूपों का उपयोग करते हुए ( वे किसी भी तरह प्राथमिकता लेती हैं
- हर प्रतिक्रिया में अधिकतम विविधता चाहते हैं
- स्कीमा विकास सिनारियो का परीक्षण
त्रुटिमोचन
आकार लागू नहीं किया जा रहा है
- जाँचें
EnableAutoShape: trueकॉन्फ़िगरेशन में - कोई स्पष्ट आकार उपलब्ध नहीं सत्यापित करें
- समाप्ति समय जाँचें (पूर्वनिर्धारित
आकार बदलने की जरूरत है
GET /api/mock/users/1?renewshape=true
सभी आकारों को प्रोग्रामात्मक रूप से साफ करें
// Inject AutoShapeManager
autoShapeManager.ClearAllShapes();
पूर्ण दस्तावेज़ के लिए CLAUDE.md स्वचालित आकार धारा.
परीक्षण कवरेज सभी स्वचालित आकार कार्यात्मकता को शामिल करने के लिए परीक्षण 39
कॉन्फ़िगरेशन विकल्प
पूर्ण कॉन्फ़िगरेशन संदर्भ देखें कॉन्फ़िगरेशन संदर्भ निर्देशिका सभी विकल्पों के लिए पूर्ण उदाहरण देखें appsettings.Full.json - प्रदर्शन करता है हर कॉन्फ़िगरेशन विकल्प
एप्पसेटिंग के माध्यम से.json | ( | सिफारिशित |)
{
"mostlylucid.mockllmapi": {
"BaseUrl": "http://localhost:11434/v1/",
"ModelName": "ministral-3:3b",
"Temperature": 1.2,
"TimeoutSeconds": 30,
"EnableVerboseLogging": false,
"CustomPromptTemplate": null,
// Token Management (NEW in v1.5.0)
"MaxInputTokens": 8192, // Ministral has 256K context
// Resilience Policies (enabled by default)
"EnableRetryPolicy": true,
"MaxRetryAttempts": 3,
"RetryBaseDelaySeconds": 1.0,
"EnableCircuitBreaker": true,
"CircuitBreakerFailureThreshold": 5,
"CircuitBreakerDurationSeconds": 30
}
}
मॉडल-निर्दिष्ट टोकन सीमा: देखें LLMApi/appsettings.json विभिन्न मॉडलों के लिए कॉन्फ़िगरेशन उदाहरण के लिए (Llama MaxInputTokens तदनुसार.
API संदर्भ: अनुरोधों के बीच सुसंगतता बनाए रखने के लिए संदर्भों का उपयोग करने के बारे में विस्तृत जानकारी के लिए API संदर्भ निर्देशिका.
प्रतिरोध नीतियां
में नया v1.2.0: निर्मित-पोली प्रतिरोध नीति आपके अनुप्रयोग को LLM सेवा विफलता से बचाती है
पैकेज में डिफ़ॉल्ट द्वारा सक्षम दो रीसलींस पैटर्न शामिल हैं
एक्सपोनेन्शल बैकऑफ़ पुनः प्रयास
- एक्सपोनेन्शल देरी के साथ स्वचालित रूप से असफल LLM अनुरोधों को फिर से चलाता है (1s,
- गड़बड़ाने की समस्याओं को रोकने के लिए हिलना शामिल है
- कनेक्शन त्रुटियों को संभालता है
- डिफ़ॉल्ट: M SK1 दोबारा आधार देरी के साथ प्रयास करता है
सर्किट ब्रेकर
- क्रमिक असफलताओं के बाद खोलता है ताकि कैस्केडिंग असफलताएं रोकी जा सके
- परीक्षण अनुरोधों को अनुमति देने से पहले एक कॉन्फ़िगरित अवधि के लिए खुला रहता है
- तीन अवस्थाएं-: बंद (सामान्य ), खुला | (अस्वीकार |), | आधे |
- डिफ़ॉल्ट: 5 क्रमिक असफलताओं के बाद खोला जाता है
कॉन्फ़िगरेशन
{
"mostlylucid.mockllmapi": {
// Enable/disable retry policy
"EnableRetryPolicy": true,
"MaxRetryAttempts": 3,
"RetryBaseDelaySeconds": 1.0, // Actual delays: 1s, 2s, 4s (exponential)
// Enable/disable circuit breaker
"EnableCircuitBreaker": true,
"CircuitBreakerFailureThreshold": 5, // Open after 5 consecutive failures
"CircuitBreakerDurationSeconds": 30 // Stay open for 30 seconds
}
}
लॉगिंग
प्रतिरोध नीति सभी पुनः प्रयास प्रयासों और परिपथ ब्रेकर स्थिति परिवर्तनों को लॉग करें
[Warning] LLM request failed (attempt 2/4). Retrying in 2000ms. Error: Connection refused
[Error] Circuit breaker OPENED after 5 consecutive failures. All LLM requests will be rejected for 30 seconds
[Information] Circuit breaker CLOSED. LLM requests will be attempted normally
जब समायोजन करना है
- धीमी LLM बढ़ाएँ
MaxRetryAttemptsयाRetryBaseDelaySeconds - आक्रामक वसूली घटाएँ
CircuitBreakerDurationSeconds - कई अस्थायी त्रुटि बढ़ाएँ
CircuitBreakerFailureThreshold - स्थानीय परीक्षण के लिए अक्षम करें दोनों सेट करें
EnableRetryPolicyऔरEnableCircuitBreakerके लिएfalse
कोड के माध्यम से
builder.Services.Addmostlylucid.mockllmapi(options =>
{
options.BaseUrl = "http://localhost:11434/v1/";
options.ModelName = "mixtral";
options.Temperature = 1.5;
options.TimeoutSeconds = 60;
});
मनपसंद अंतबिंदु पैटर्न
// Default: /api/mock/** and /api/mock/stream/**
app.Mapmostlylucid.mockllmapi("/api/mock");
// Custom pattern
app.Mapmostlylucid.mockllmapi("/demo");
// Creates: /demo/** and /demo/stream/**
// Without streaming
app.Mapmostlylucid.mockllmapi("/api/mock", includeStreaming: false);
उपयोग उदाहरण
आधारभूत निवेदन
curl http://localhost:5000/api/mock/users?limit=5
LLM द्वारा उत्पन्न वास्तविक उपयोगकर्ता डेटा लौटाता है
फॉर्म बॉडी अनुरोध v में (NEW
एचटीएमएल फ़ॉर्म प्रस्तुतीकरण
curl -X POST http://localhost:5000/api/mock/users/register \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "username=john_doe&[email protected]&age=30"
फ़ॉर्म डाटा स्वचालित रूप से JSON में परिवर्तित किया जाता है और वास्तविक प्रतिक्रिया उत्पादन के लिए एलएलएम को भेजा जाता है
बहुविध मानों के साथ फार्म
curl -X POST http://localhost:5000/api/mock/posts \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "title=My Post&tags=tech&tags=programming&tags=llm"
एक ही क्षेत्र नाम के लिए कई मान स्वचालित रूप से एरेज़ में परिवर्तित किए जाते हैं
फ़ाइल अपलोड अनुरोध v में (NEW
एकल फ़ाइल अपलोड
curl -X POST http://localhost:5000/api/mock/photos/upload \
-F "title=My Photo" \
-F "description=Beautiful sunset" \
-F "[email protected]"
फ़ॉर्म डाटा के साथ कई फ़ाइलें:
curl -X POST http://localhost:5000/api/mock/documents/bulk \
-F "title=Multiple uploads" \
-F "[email protected]" \
-F "[email protected]"
फ़ाइल अपलोड कैसे काम करता है
- फ़ाइल सामग्री है एक 8KB बफर के माध्यम से प्रवाहित और वंचित स्मृति में नहीं भंडारित
- सिर्फ मेटाडेटा बनाए रखा जाता है: फ़ाइलनाम, सामग्री प्रकार
- एलएलएम फ़ाइल मेटाडेटा प्राप्त करता है और उपयुक्त प्रतिक्रिया उत्पन्न करता है
- बड़े फ़ाइलों के लिए सुरक्षित स्मृति
उदाहरण प्रतिक्रिया
{
"message": "Files uploaded successfully",
"uploads": [
{
"fieldName": "image",
"fileName": "photo.jpg",
"contentType": "image/jpeg",
"size": 524288,
"processed": true
}
]
}
गहरे मार्ग नेस्टिंग v में (NEW
जटिल Nested पथ
curl "http://localhost:5000/api/mock/v1/api/products/electronics/computers/laptops/gaming/high-end/2024/details?brand=Dell&model=XPS15"
पथ गहराई पर कोई व्यावहारिक सीमा नहीं
API संदर्भ के साथ v में (NEW
बहुविध संबंधित अनुरोधों में संगतता बनाए रखने के लिए संदर्भ का उपयोग करें:
# Step 1: Create a user
curl "http://localhost:5000/api/mock/users?context=checkout-flow"
# Step 2: Create order for that user (LLM references user from context)
curl "http://localhost:5000/api/mock/orders?context=checkout-flow"
# Step 3: Add payment (LLM references both user and order)
curl "http://localhost:5000/api/mock/payments?context=checkout-flow"
एक ही संदर्भ में प्रत्येक अनुरोध पिछले अनुरोधों को देखता है। API संदर्भ निर्देशिका पूर्ण उदाहरणों के लिए
आकार नियंत्रण के साथ
curl -X POST http://localhost:5000/api/mock/orders \
-H "X-Response-Shape: {\"orderId\":\"string\",\"total\":0.0,\"items\":[{\"sku\":\"string\",\"qty\":0}]}" \
-H "Content-Type: application/json" \
-d '{"customerId":"cus_123"}'
LLM आपके सटीक आकार विनिर्दिष्टीकरण के अनुरूप डेटा उत्पन्न करता है
स्ट्रीमिंग (SSE | - | सर्वर
एसईएस स्ट्रीमिंग रेस्ट API का हिस्सा है।
// SSE streaming is automatically available at /api/mock/stream/**
app.MapLLMockApi("/api/mock", includeStreaming: true);
उपयोग:
curl -N http://localhost:5000/api/mock/stream/products?category=electronics \
-H "Accept: text/event-stream"
सर्वर को लौटाता है-JSON के रूप में संदेश भेजा गया टोकन उत्पन्न किया जाता है
data: {"chunk":"{","done":false}
data: {"chunk":"\"id\"","done":false}
data: {"chunk":":","done":false}
data: {"chunk":"123","done":false}
...
data: {"content":"{\"id\":123,\"name\":\"Product\"}","done":true,"schema":"{...}"}
जावास्क्रिप्ट उदाहरण:
const eventSource = new EventSource('/api/mock/stream/users?limit=5');
eventSource.onmessage = (event) => {
const data = JSON.parse(event.data);
if (data.done) {
console.log('Complete:', data.content);
eventSource.close();
} else {
console.log('Chunk:', data.chunk);
}
};
आकार नियंत्रण के साथ
curl -N "http://localhost:5000/api/mock/stream/orders?shape=%7B%22id%22%3A0%2C%22items%22%3A%5B%5D%7D"
स्ट्रीमिंग अंतबिंदु नियमित अंतबिन्दुओं के समान सभी विशेषताएँ समर्थित करता है
- आकार नियंत्रण (query param
- JSON योजना समर्थन
- मनपसंद प्रवर्धन
- सभी एचटीटीपी विधियाँ (GET, POSTM SK2 PUT , DELETE
GraphQL API मोकिंग
में नया v1.2.0: क्वेरी के साथ Native GraphQL समर्थन
LLMock API में built-in है-GraphQL अंतबिंदु समर्थन .जैसे कि REST अंतबिन्दुओं के विपरीत जहां आप आकार अलग से निर्दिष्ट करते हैं
GraphQL के साथ त्वरित प्रारंभ करें
GraphQL अंतबिंदु स्वचालित रूप से उपलब्ध है जब आप LLMock API map
app.MapLLMockApi("/api/mock", includeGraphQL: true); // GraphQL enabled by default
यह एक GraphQL अंतबिन्दु पर बनाता है /api/mock/graphql.
बुनियादी उपयोग
साधारण प्रश्न:
curl -X POST http://localhost:5000/api/mock/graphql \
-H "Content-Type: application/json" \
-d '{"query": "{ users { id name email role } }"}'
प्रतिक्रिया
{
"data": {
"users": [
{ "id": 1, "name": "Alice Johnson", "email": "[email protected]", "role": "admin" },
{ "id": 2, "name": "Bob Smith", "email": "[email protected]", "role": "user" }
]
}
}
चर के साथ
curl -X POST http://localhost:5000/api/mock/graphql \
-H "Content-Type: application/json" \
-d '{
"query": "query GetUser($userId: ID!) { user(id: $userId) { id name email } }",
"variables": { "userId": "12345" },
"operationName": "GetUser"
}'
Nested क्वेरी
GraphQL's शक्ति नेस्टेड डेटा के साथ चमकता है
{
company {
name
employees {
id
firstName
lastName
department {
name
location
}
projects {
id
title
status
milestones {
title
dueDate
completed
}
}
}
}
}
LLM आपके सही क्वेरी संरचना के अनुरूप वास्तविक डेटा उत्पन्न करता है - सभी nested रिश्तों सहित
जावास्क्रिप्ट क्लाइंट उदाहरण
async function fetchGraphQL(query, variables = {}) {
const response = await fetch('/api/mock/graphql', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ query, variables })
});
const result = await response.json();
if (result.errors) {
console.error('GraphQL errors:', result.errors);
}
return result.data;
}
// Usage
const data = await fetchGraphQL(`
query GetProducts($category: String) {
products(category: $category) {
id
name
price
inStock
reviews {
rating
comment
}
}
}
`, { category: 'electronics' });
त्रुटि प्रबंधन
ग्राफक्यूएल त्रुटि मानक प्रारूप में लौटाए जाते हैं:
{
"data": null,
"errors": [
{
"message": "Invalid GraphQL request format",
"extensions": {
"code": "INTERNAL_SERVER_ERROR"
}
}
]
}
यह कैसे काम करता है
- ठ̧à¥à¤°à¥à¤: ग्राफQL क्वेरी निकालें, चरोंM SK2 और ऑपरेशन नाम
- बिल्ड प्रोम्प्ट: अनुरूप डाटा उत्पन्न करने के लिए निर्देशों सहित LLM को क्वेरी संरचना भेजें
- डाटा उत्पन्न करें: LLM वास्तविक डेटा बनाता है जो क्वेरी क्षेत्रों के ठीक से मिलते हैं
- रॉप प्रतिक्रिया: GraphQL प्रारूप में डेटा लौटाता है
{ "data": {...} }
प्रमुख लाभ
- कोई आकार विनिर्दिष्टीकरण आवश्यक नहीं: GraphQL क्वेरी संरचना परिभाषित करता है
- प्रकार सुरक्षा: नाम द्वारा स्पष्ट रूप से अनुरोध क्षेत्र पूछता है
- नेटेड रिश्ताएँजटिल डेटा संरचनाओं के लिए प्राकृतिक समर्थन
- मानक प्रारूप: किसी भी GraphQL क्लाइंट लाइब्रेरी के साथ काम करता है
- वास्तविक आंकड़ा: LLM प्रत्येक क्षेत्र के लिए प्रासंगिक रूप से उपयुक्त डेटा उत्पन्न करता है
GraphQL का परीक्षण कर रहा है
सम्मिलित उपयोग करें LLMApi.http फ़ाइल जिसमें 5 तैयार है
- साधारण उपयोक्ता क्वेरी
- चर के साथ क्वेरी
- ठ̧à¥à¤°à¥à¤
- वाणिज्य उत्पाद विवरणिका
- जटिल संगठनात्मक डेटा
देखें LLMApi.http में ग्राफQL उदाहरण पूर्ण कार्य उदाहरणों के लिए
GraphQL कॉन्फ़िगरेशनName
टोकन सीमाएं और मॉडल चयन
GraphQL प्रतिक्रियाएं गहराई से nested क्वेरी के साथ बड़ी हो सकती हैं. JSON त्रुटियों को रोकने के लिए GraphQLMaxTokens विकल्प
{
"MockLlmApi": {
"GraphQLMaxTokens": 300 // Recommended: 200-300 for reliability
}
}
टोकन सीमा दिशानिर्देश
| मॉडल | सिफारिशित अधिकतम टोकन |
|---|---|
| मॉडल गति और जटिलता का सर्वोत्तम संतुलन | |
| misttral:7b | |
| phi3 क्वेरी को सरल रखें | |
| तैनीलमा सिर्फ सतही क्वेरी का उपयोग करें |
क्यों कम बेहतर है
- प्रोम्प्ट प्राथमिकता देता है लंबाई पर सहीपन
- कम सीमाएँ LLM को सरल बनाने के लिए बाध्य करती हैं , पूर्ण JSON
- उच्चतम सीमा जोखिम काटें प्रतिक्रियाएँ (अवैध JSON)
- यदि आप LLM से "अवैध JSON देखें GraphQLMaxTokens को कम करें
जटिल Nested क्वेरी के लिए
- बड़े मॉडलों का उपयोग करें
- GraphQLMaxTokens को 500-1000 में बढ़ाएँ
- à¤aà¥à¤°à¥à¤
- कटाई चेतावनी के लिए लॉग मॉनिटर करें
जटिल प्रश्नों के लिए उदाहरण कॉन्फ़िगरेशन
{
"MockLlmApi": {
"ModelName": "llm-model", // Larger model
"GraphQLMaxTokens": 800, // Higher limit for nested data
"Temperature": 1.2
}
}
SignalR Real-टाइम डेटा स्ट्रीमिंग
LLMock API में सतत के लिए वैकल्पिक SignalR समर्थन शामिल है।
- Dashboard prototypes requiring live updates
- Real-time UI अवयवों का परीक्षण
- निरंतर बदलती आंकड़ों के साथ डेमो
- WebSocket/SignalR एकीकृत परीक्षण
सिग्नलआर के साथ त्वरित प्रारंभ
सिग्नलआर स्वतंत्र रूप से काम करता है - आप नहीं कर रहे हैं'सिग्नल आर स्ट्रीमिंग का उपयोग करने के लिए रेस्ट API अंतबिंदुओं की जरूरत नहीं
1. न्यूनतम सिग्नलR
using mostlylucid.mockllmapi;
var builder = WebApplication.CreateBuilder(args);
// Add SignalR services (no REST API needed!)
builder.Services.AddLLMockSignalR(builder.Configuration);
var app = builder.Build();
app.UseRouting();
// Map SignalR hub and management endpoints
app.MapLLMockSignalR("/hub/mock", "/api/mock");
app.Run();
वैकल्पिक: REST API को भी जोड़ें
यदि आप भी REST API अंतबिंदु चाहते हैं
// Add core LLMock API services (optional)
builder.Services.AddLLMockApi(builder.Configuration);
// Map REST API endpoints (optional)
app.MapLLMockApi("/api/mock", includeStreaming: true);
अनुप्रयोग सेटिंग में कॉन्फ़िगर करें
{
"MockLlmApi": {
"BaseUrl": "http://localhost:11434/v1/",
"ModelName": "ministral-3:3b",
"Temperature": 1.2,
"SignalRPushIntervalMs": 5000,
"HubContexts": [
{
"Name": "weather",
"Description": "Weather data with temperature, condition, humidity, and wind speed"
},
{
"Name": "stocks",
"Description": "Stock market data with symbol, current price, change percentage, and trading volume"
}
]
}
}
क्लाइंट से कनेक्शन करें
// Using @microsoft/signalr
const connection = new signalR.HubConnectionBuilder()
.withUrl("/hub/mock")
.withAutomaticReconnect()
.build();
// Subscribe to a context
connection.on("DataUpdate", (message) => {
console.log(`${message.context}:`, message.data);
// message.data contains generated JSON matching the shape
// message.timestamp is unix timestamp in ms
});
await connection.start();
await connection.invoke("SubscribeToContext", "weather");
हब संदर्भ कॉन्फ़िगरेशन
प्रत्येक हब संदर्भ एक पूरा API अनुरोध अनुकरण करता है और डेटा निरंतर उत्पन्न करता है
{
"Name": "orders", // Context name (SignalR group identifier)
"Description": "Order data..." // Plain English description (LLM generates JSON from this)
// Optional:
// "IsActive": true, // Start in active/stopped state (default: true)
// "Shape": "{...}", // Explicit JSON shape or JSON Schema
// "IsJsonSchema": false // Auto-detected if not specified
}
सिफारिशित: सरल अंग्रेजी वर्णन का प्रयोग करें
LLM को स्वचालित रूप से उपयुक्त JSON संरचनाएं उत्पन्न करने दें
{
"Name": "sensors",
"Description": "IoT sensor data with device ID, temperature, humidity, battery level, and last reading timestamp"
}
LLM आपके वर्णन से एक उपयुक्त JSON स्कीमा स्वचालित रूप से उत्पन्न करता है
गतिशील संदर्भ निर्माण API
प्रबंधन API के उपयोग से रनटाइम पर SignalR संदर्भ बनाएं और प्रबंधित करें
संदर्भ बनाएँ
POST /api/mock/contexts
Content-Type: application/json
{
"name": "crypto",
"description": "Cryptocurrency prices with symbol, USD price, 24h change percentage, and market cap"
}
प्रतिक्रिया
{
"message": "Context 'crypto' registered successfully",
"context": {
"name": "crypto",
"description": "Cryptocurrency prices...",
"method": "GET",
"path": "/crypto",
"shape": "{...generated JSON schema...}",
"isJsonSchema": true
}
}
सभी संदर्भ सूचीबद्ध करें
GET /api/mock/contexts
प्रतिक्रिया
{
"contexts": [
{
"name": "weather",
"description": "Realistic weather data with temperature, conditions, humidity, and wind speed for a single location",
"method": "GET",
"path": "/weather/current",
"shape": "{...}"
},
{
"name": "crypto",
"description": "Cryptocurrency prices...",
"shape": "{...}"
}
],
"count": 2
}
नोट: सूची अंतबिंदु अनुप्रयोग सेटिंग में कॉन्फ़िगर किए गए संदर्भों को कनेक्ट करता है।
विशिष्ट संदर्भ प्राप्त करें
GET /api/mock/contexts/weather
प्रतिक्रिया
{
"name": "weather",
"method": "GET",
"path": "/weather/current",
"shape": "{\"temperature\":0,\"condition\":\"string\"}",
"isJsonSchema": false
}
संदर्भ मिटाएँ
DELETE /api/mock/contexts/crypto
प्रतिक्रिया
{
"message": "Context 'crypto' deleted successfully"
}
संदर्भ आरंभ करें
POST /api/mock/contexts/crypto/start
प्रतिक्रिया
{
"message": "Context 'crypto' started successfully"
}
कनेक्टेड क्लाइंटों को प्रभावित किए बिना एक रोके गए संदर्भ के लिए डेटा उत्पन्न करना प्रारंभ करता है.
संदर्भ रोकें (डेटा उत्पादन रोकें
POST /api/mock/contexts/crypto/stop
प्रतिक्रिया
{
"message": "Context 'crypto' stopped successfully"
}
नया डेटा उत्पन्न करना बंद करता है लेकिन संदर्भ को पंजीकृत रखता है. क्लाइंट्स पुनः शुरू होने तक जुड़े रहते हैं परंतु अद्यतन नहीं प्राप्त करते
पूर्ण क्लाइंट उदाहरण
<!DOCTYPE html>
<html>
<head>
<script src="https://cdn.jsdelivr.net/npm/@microsoft/[email protected]/dist/browser/signalr.min.js"></script>
</head>
<body>
<h1>Live Weather Data</h1>
<div id="weather-data"></div>
<script>
const connection = new signalR.HubConnectionBuilder()
.withUrl("/hub/mock")
.withAutomaticReconnect()
.build();
connection.on("DataUpdate", (message) => {
if (message.context === "weather") {
const weatherDiv = document.getElementById("weather-data");
weatherDiv.innerHTML = `
<h2>Current Weather</h2>
<p>Temperature: ${message.data.temperature}°F</p>
<p>Condition: ${message.data.condition}</p>
<p>Humidity: ${message.data.humidity}%</p>
<p>Updated: ${new Date(message.timestamp).toLocaleTimeString()}</p>
`;
}
});
connection.start()
.then(() => {
console.log("Connected to SignalR hub");
return connection.invoke("SubscribeToContext", "weather");
})
.then(() => {
console.log("Subscribed to weather context");
})
.catch(err => console.error(err));
</script>
</body>
</html>
यूआई से गतिशील संदर्भ निर्माण
async function createDynamicContext() {
// Create the context
const response = await fetch("/api/mock/contexts", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
name: "stocks",
description: "Stock market data with ticker symbol, current price, daily change percentage, and trading volume"
})
});
const result = await response.json();
console.log("Context created:", result.context);
// Subscribe to receive data
await connection.invoke("SubscribeToContext", "stocks");
console.log("Now receiving live stock data!");
}
सिग्नल आर हब विधि
MockLlmHub निम्न विधियों को समर्थित करता है
संदर्भ में सदस्यता लें
- एक विशिष्ट संदर्भ के लिए डेटा अद्यतन प्राप्त करने हेतु ग्राहक को सदस्यता देता है
- ग्राहक प्राप्त करेगा
DataUpdateउत्पन्न डेटा के साथ घटनाएँ - में नया v1.1.0: कनेक्शन गिनती को स्वतः बढ़ाता है
संदर्भ से सदस्यता हटाएँ
- एक संदर्भ से क्लाइंट का सदस्यता हटाता है
- क्लाइंट अब उस संदर्भ के लिए अद्यतन प्राप्त नहीं करेगा
- में नया v1.1.0: कनेक्शन गिनती को स्वतः घटाता है
ग्राहक द्वारा प्राप्त घटनाएँ:
डाटा अद्यतन - उत्पन्न नमूना डेटा समाहित करता है
{
context: "weather", // Context name
method: "GET", // Simulated HTTP method
path: "/weather/current", // Simulated path
timestamp: 1699564820000, // Unix timestamp (ms)
data: { // Generated JSON matching the shape
temperature: 72,
condition: "Sunny",
humidity: 45,
windSpeed: 8
}
}
सदस्यता - सदस्यता की पुष्टि
{
context: "weather",
message: "Subscribed to weather"
}
सदस्यता नहीं - सदस्यता से बाहर होने की पुष्टि
{
context: "weather",
message: "Unsubscribed from weather"
}
कॉन्फ़िगरेशन विकल्प
{
"MockLlmApi": {
"SignalRPushIntervalMs": 5000, // Interval between data pushes (ms)
"HubContexts": [...] // Array of pre-configured contexts
}
}
JSON योजना समर्थन
हब संदर्भ सरल JSON आकार और पूर्ण JSON योजना दोनों को समर्थन देते हैं
सरल आकार:
{
"Name": "users",
"Shape": "{\"id\":0,\"name\":\"string\",\"email\":\"string\"}"
}
JSON योजना
{
"Name": "products",
"Shape": "{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"number\"},\"name\":{\"type\":\"string\"},\"price\":{\"type\":\"number\"}},\"required\":[\"id\",\"name\",\"price\"]}",
"IsJsonSchema": true
}
सिस्टम स्वचालित - खोज के द्वारा JSON योजना पता लगाता है $schema, type, या properties क्षेत्र.
वास्तुकला
graph TD
Client[SignalR Client] -->|Subscribe| Hub[MockLlmHub]
Hub -->|Join Group| Group[SignalR Group]
BG[Background Service] -->|Generate Data| LLM[Ollama LLM]
LLM -->|JSON Response| BG
BG -->|Push Data| Group
Group -->|DataUpdate Event| Client
API[Management API] -->|CRUD| Manager[DynamicHubContextManager]
Manager -->|Register/Unregister| BG
अवयव
- मोकएलएमहब: सिग्नलआर हाब ग्राहक कनेक्शन और सदस्यता नियंत्रित करता है
- मोकडेटा बैकग्राउंड सर्विस: होस्टेड सेवा निरंतर डेटा उत्पन्न करता है
- DynamicHubContextManagerरनटाइम संदर्भ पंजीकरण के लिए सुरक्षित प्रबंधक
- HubContextConfigप्रत्येक डेटा संदर्भ के लिए : कॉन्फ़िगरेशन मॉडल
केस का उपयोग करें
1. Dashboard प्रोटोटाइपिंग
// Subscribe to multiple data sources
await connection.invoke("SubscribeToContext", "sales");
await connection.invoke("SubscribeToContext", "traffic");
await connection.invoke("SubscribeToContext", "alerts");
// Now receiving live updates for all three!
2. आईटीओपी अनुकरण
{
"Name": "sensors",
"Description": "IoT temperature sensors with device ID, current temperature, battery percentage, and signal strength",
"Path": "/iot/sensors"
}
3. वित्तीय डाटा
{
"Name": "trading",
"Description": "Real-time stock trades with timestamp, symbol, price, volume, and buyer/seller IDs",
"Path": "/trading/live"
}
4. गेमिंग लीडरबोर्ड
{
"Name": "leaderboard",
"Description": "Gaming leaderboard with player name, score, rank, level, and country",
"Path": "/game/leaderboard"
}
संदर्भ जीवन चक्र प्रबंधन
में नया v1.1.0: वास्तविक के साथ SignalR संदर्भों पर पूरा जीवन चक्र नियंत्रण
प्रत्येक संदर्भ में निम्न गुण हैं
- **सक्रिय (I)**क्या संदर्भ डाटा उत्पन्न कर रहा है
- कनेक्शन गिनतीवर्तमान में संयोजित क्लाइंटों की संख्या
संदर्भ दो अवस्थाओं में हो सकता है
- सक्रिय: पृष्ठभूमि सेवा हर नई डेटा उत्पन्न करता है
SignalRPushIntervalMsडिफ़ॉल्ट - रुक गया: संदर्भ रजिस्ट्रीकृत रहता है
मुख्य विशेषताएँ
- आरंभ करें/ क्लाइंटों को विच्छेद किए बिना संदर्भ रोकें
- Real-time कनेक्शन गिनती ट्रैकिंग
- सक्रिय दिखाते हुए स्थिति बैग्स
- प्रतिलिपि संदर्भ रोकथाम
- अनुप्रयोग से संदर्भ
सिग्नलR के लिए प्रतिक्रिया कैशिंग में नया v1.1.0: Intelligent caching reduces LLM load and improves consistency!
- बैच पहले भरनाएक बार में 5-10 प्रतिक्रियाएं उत्पन्न करता है
MaxCachePerKey) - Per-संबंध कतार: प्रत्येक संदर्भ को पूर्व उत्पन्न प्रतिक्रियाओं का अपना कैश रखता है
- पृष्ठभूमि पुनर्भरणजब यह 50% क्षमता के नीचे गिरता है तो स्वतः कैश को भरता है
- स्मार्ट scheduling: डेटा ताजगी बनाए रखने के दौरान LLM कॉल को कम करता है
यह महत्वपूर्ण रूप से उच्च खंडों के लिए LLM लोड को कम करता है
उदाहरण कार्यप्रवाह
# Create a context
POST /api/mock/contexts
{ "name": "metrics", "description": "Server metrics" }
# Stop data generation (clients remain connected)
POST /api/mock/contexts/metrics/stop
# Resume data generation
POST /api/mock/contexts/metrics/start
# Remove context entirely
DELETE /api/mock/contexts/metrics
ओपन एपीआई / स्वागर मोक जनन
नया विशेषता स्वचालित रूप से OpenAPI से नमूना अंतबिंदुओं को उत्पन्न करें/Swagger विनिर्दिष्टताएँ | ! | किसी भी OpenAPI पर इंगित करें |3.0/ | Swagger | МSK3 | spec | ( | URL या फ़ाइल |) | और लाइब्रेरी सभी परिभाषित ऑपरेशनों के लिए नमूने अंतबिन्दुएं बनाएँगी
ओपन एपीआई के साथ त्वरित प्रारंभ
dotnet add package mostlylucid.mockllmapi
कार्यक्रम
using mostlylucid.mockllmapi;
var builder = WebApplication.CreateBuilder(args);
// Add OpenAPI mock services
builder.Services.AddLLMockOpenApi(builder.Configuration);
var app = builder.Build();
app.UseRouting();
// Map OpenAPI-based mock endpoints
app.MapLLMockOpenApi();
app.Run();
अनुप्रयोग-सेटिंग
{
"MockLlmApi": {
"BaseUrl": "http://localhost:11434/v1/",
"ModelName": "ministral-3:3b",
"Temperature": 1.2,
"OpenApiSpecs": [
{
"Name": "petstore",
"Source": "https://petstore3.swagger.io/api/v3/openapi.json",
"BasePath": "/petstore",
"EnableStreaming": false
},
{
"Name": "myapi",
"Source": "./specs/my-api.yaml",
"BasePath": "/api/v1"
}
]
}
}
कि's it! आपके ओपन एपीआई स्पेक्ट से सभी अंतबिंदु अब Intelligent LLM के रूप में उपलब्ध हैं
यह कैसे काम करता है
- निर्दिष्ट लोड किया जा रहा हैयूआरएल या स्थानीय फ़ाइलों से ओपन एपीआई स्पेक्ट लोड करता है
- योजना रूपांतरण: OpenAPI स्कीमा को JSON आकार टेम्प्लेट में बदलता है
- अंत बिन्दु मानचित्रणAutomatically maps all operations to ASP.NET Core endpoints
- एलएलएम जनन: स्कीमा से मिलते वास्तविक नमूना डेटा उत्पन्न करने के लिए एलएलएम का उपयोग करता है
- पथ परिमिति: पथ पैरामीटर जैसे हैंडल करता है
/users/{id}स्वचालित रूप से
कॉन्फ़िगरेशन विकल्प
प्रत्येक ओपन एपीआई स्पेक्ट इन कॉन्फ़िगरेशन विकल्पों को समर्थन करता है
| गुण | प्रकार | विवरण | ||
|---|---|---|---|---|
Name |
स्ट्रिंग | |||
Source string |
URL or file path to OpenAPI spec | |||
BasePath |
स्ट्रिंग servers[0].url) |
|||
EnableStreaming जोड़ें /stream SSE स्ट्रीमिंग के लिए उपसर्ग (पूर्वनिर्धारित |
||||
IncludeTags |
string[सिर्फ इन टैगों के साथ अंतबिंदु उत्पन्न करें | |||
ExcludeTags |
string[इन टैगों के साथ अंतबिंदुओं को छोड़ें | |||
IncludePaths |
string[सिर्फ इन पथों को उत्पन्न करें /users/*) |
|||
ExcludePaths |
string[इन पथों को छोड़ें |
उन्नत कॉन्फ़िगरेशन उदाहरण
टैग द्वारा फ़िल्टर करें:
{
"Name": "petstore",
"Source": "https://petstore3.swagger.io/api/v3/openapi.json",
"IncludeTags": ["pet", "store"]
}
पथ द्वारा फ़िल्टर करें:
{
"Name": "api",
"Source": "./specs/api.yaml",
"IncludePaths": ["/users/*", "/products/*"],
"ExcludePaths": ["/admin/*"]
}
स्ट्रीमिंग सक्षम करें
{
"Name": "api",
"Source": "./specs/api.yaml",
"BasePath": "/api",
"EnableStreaming": true
}
ओपन एपीआई मोक का परीक्षण
इस ओपन एपीआई स्पेक्ट कॉन्फ़िगरेशन को दिया गया है
{
"Name": "petstore",
"Source": "./specs/petstore.json",
"BasePath": "/petstore"
}
और एक विशेषता परिभाषित GET /pet/{petId} जो एक वापस करता है Pet वस्तु, आप परीक्षण कर सकते हैं
# Get a pet by ID
curl http://localhost:5116/petstore/pet/123
# Response (generated by LLM based on Pet schema):
{
"id": 123,
"name": "Fluffy",
"category": {
"id": 1,
"name": "Cats"
},
"photoUrls": ["https://example.com/fluffy.jpg"],
"tags": [
{"id": 1, "name": "cute"},
{"id": 2, "name": "playful"}
],
"status": "available"
}
मॉड्यूलर उपयोग
ओपन एपीआई नमूने रेस्ट से स्वतंत्र रूप से काम करते हैं
// Just OpenAPI mocks
builder.Services.AddLLMockOpenApi(builder.Configuration);
app.MapLLMockOpenApi();
// Or combine with other features
builder.Services.AddLLMockRest(builder.Configuration);
builder.Services.AddLLMockOpenApi(builder.Configuration);
app.MapLLMockRest("/api/mock");
app.MapLLMockOpenApi();
समर्थित स्पेक प्रारूप
- ओपन एपीआई 3.0 (JSON या YAML
- ओपन एपीआई 3.1 (JSON या YAML
- स्वागर 2.0 (JSON या YAML
मुख्य विशेषताएँ
- स्वचालित अंतबिंदु निर्माण: स्पेक्ट से सभी पथ और ऑपरेशन नमूना अंतबिंदु बन जाते हैं
- योजना: OpenAPI प्रतिक्रिया स्कीमा से व्युत्पन्न प्रतिक्रिया आकार
- पथ परिमिति: हैंडल्स
/users/{id},/posts/{postId}/comments/{commentId}एमएसके0 आदि - बहुविध SPECS: एक साथ कई API विशेषताओं को लोड और माउन्ट करें
- स्मार्ट फ़िल्टरिंग: सम्मिलित करें
- स्ट्रीमिंग समर्थनकिसी भी अंतबिंदु के लिए वैकल्पिक एसईएसई स्ट्रीमिंग
- LLM-Powered: प्रत्येक स्कीमा के लिए उपयुक्त यथार्थिक , विविध डेटा उत्पन्न करता है
केस का उपयोग करें
- API-प्रथम विकास: बैकएण्ड तैयार होने से पहले स्पेक्ट के खिलाफ कोडिंग प्रारंभ करें
- फ्रन्टएण्ड प्रोटोटाइपिंग: API निर्माण के दौरान UI विकसित करें
- इंटीग्रेशन परीक्षण: वास्तविक API निर्भरताओं के बिना क्लाइंट कोड परीक्षण करें
- डेमो वातावरण: उत्पादन API पहुँच के बिना अनुप्रयोग दिखाएँ
- संविदा परीक्षण: सत्यापित क्लाइंट सभी स्कीमा परिवर्तनों को सही तरीके से संभालते हैं
- लोड परीक्षण: scale पर वास्तविक परीक्षण डेटा उत्पन्न करें
सीमाएं
- वर्तमान में केवल प्रतिक्रिया स्कीमाओं को समर्थन करता है
- सुरक्षा योजनाओं को अनदेखा किया जाता है (नहीं प्रमाणीकरण की आवश्यकता होती है
- केवल अनुप्रयोग/json सामग्री प्रकार प्रतिक्रियाओं के लिए समर्थित
- पथ पैरामीटर मान स्कीमा अवरोधों के विरुद्ध वैध नहीं हैं
ओपन एपीआई प्रबंधन का परीक्षण
सम्मिलित management.http फ़ाइल में सभी प्रबंधन अंतबिंदुओं के लिए व्यापक उदाहरण हैं
स्पेक प्रबंधन:
- यूआरएल से स्पेक्ट लोड करें
- स्थानीय फ़ाइल से स्पेक्ट लोड करें
- कच्चे JSON से स्पेक्ट लोड करें
- सभी लोड किए गए विवरण सूचीबद्ध करें
- अंतबिंदुओं के साथ विशेष विवरण प्राप्त करें
- स्पेक्ट फिर से लोड करें (स्रोत से फिर से बदलें
- स्पेक्ट मिटाएँ
अंत बिन्दु परीक्षण:
- पथ पैरामीटरों के साथ GET अंतबिंदुओं का परीक्षण करें
- जाँच POST/PUT/DELETE अंतबिंदु
- क्वेरी पैरामीटर के साथ अंतिम बिंदुओं का परीक्षण करें
- अनुक्रम में कई अंतबिंदुओं का परीक्षण करें
उन्नत कार्यप्रवाह:
- एक साथ कई स्पेक्ट लोड करें
- ओपन एपीआई नमूने का तुलना नियमित नमूनों के विपरीत
- बैच ऑपरेशन
- उदाहरणों को संभालने में त्रुटि
प्रबंधन से उदाहरण.http:
### Load Petstore API
POST http://localhost:5116/api/openapi/specs
Content-Type: application/json
{
"name": "petstore",
"source": "https://petstore3.swagger.io/api/v3/openapi.json",
"basePath": "/petstore"
}
### Test an endpoint
POST http://localhost:5116/api/openapi/test
Content-Type: application/json
{
"specName": "petstore",
"path": "/pet/123",
"method": "GET"
}
पूरा देखें प्रबंधन के लिए फ़ाइल 20+ तैयार
डेमो अनुप्रयोग
पैकेज में पूर्ण डेमो अनुप्रयोग शामिल हैं जिनमें पूर्ण संदर्भ प्रबंधन सहित अंतःक्रियात्मक इंटरफेस शामिल है
विंडोज़ डेस्कटॉप क्लाइंट (LLMockApiClient/WPF अनुप्रयोग
⚠️ विकास स्थिति: विंडोज डेस्कटॉप क्लाइंट वर्तमान में सक्रिय विकास के अधीन है
LLMock API के साथ आदान-प्रदान हेतु एक व्यापक WPF डेस्कटॉप अनुप्रयोग
विशेषताएँ
- डैशबोर्डसमय कनेक्शन स्थिति और सिस्टम मॉनिटरिंग
- सिग्नल आर वास्तविक: संदर्भ बनाएँ और प्रत्यक्ष डेटा धाराओं को सदस्यता लें
- एसईएस स्ट्रीमिंगतीन स्ट्रीमिंग मोडें
- ओपन एपीआई प्रबंधक: URL से स्पेक्ट लोड करें
- जीआरपीसी सेवाएँ: अपलोड करें
- APIs के साथ खेलें: अंतःक्रियात्मक HTTP परीक्षण खेल मैदान
- बहु-- बैकएण्ड समर्थन: बहुविध बैकएण्ड्स के बीच कॉन्फ़िगर और स्विच करें
- ट्रैफिक मॉनिटर: लाइव एचटीटीपी निवेदन
- गाढाsmooth transitions के साथ विषयवस्तुओं के बीच टॉगल करें
दस्तावेज़ LLMockApiClient README
के लिए आदर्श डेस्कटॉप परीक्षण कार्यप्रणाली
वेब-आधारित डेमो
सिग्नलआर डेमो (/प्रबंधन यूआई के साथ समय डेटा स्ट्रीमिंग
में नया v1.1.0: पूर्ण संदर्भ जीवन चक्र प्रबंधन के साथ उन्नत 3-स्तम्भ सजावट
विशेषताएँ
- कॉन्टेक्स्ट पटल बनाएँ: सरल अंग्रेजी वर्णन प्रविष्ट करें
- सक्रिय संदर्भ पैनल:
- स्थिति बैग सहित सभी संदर्भों का लाइव सूची
- आरंभ पर स्वचालित रूप से अनुप्रयोग से संदर्भ प्रदर्शित करता है
- प्रत्येक संदर्भ के लिए वास्तविक-टाइम कनेक्शन गिनती
- Per-context controls
- परिवर्तनों पर स्वचालित
- प्रत्यक्ष डेटा पैनलअभिदाता संदर्भों से समय अद्यतन
- JSON वाक्य संरचना उभारना: सुंदर गहरे रंग के साथ विषयवस्तु प्रदर्शित करता है
- कुंजियाँ (redM SK1 स्ट्रिंगें (green), संख्याएँ MSC4orangeMSC5 booleans S(cyanMST7 null
- सही समय स्टांप प्रदर्शन के साथ साफ-सुथरी , पढ़ने योग्य प्रारूप
- कोई बाहरी निर्भरताएँ नहीं - हल्के वजन का निर्माण किया गया है
त्वरित के लिए एक -क्लिक बटन
- आईटीओ सेंसर: उपकरण आईडी के साथ तापमान सेंसर
- स्टॉक बाजार: वास्तविक
- वाणिज्य क्रमादेशआईडी के साथ क्रमादेश
- सर्वर मैट्रिक्सहोस्टनाम के साथ मॉनीटरिंग डेटा
- गेमिंग लीडरबोर्ड: नाम के साथ खिलाड़ी के सांख्यिकी
के लिए आदर्श Dashboards, live monitoringM SK1 IoT simulations, realMSC3time feeds , prototyping
SSE स्ट्रीमिंग डेमो (/StreamingProgressive JSON Generation
में नया v1.1.0: त्वरित धारावाहन के लिए उदाहरण बटन प्रारंभ करें
विशेषताएँ
- HTTP विधि को कॉन्फ़िगर करें, पथ, और वैकल्पिक JSON आकार
- यह देखो कि जेसन को वास्तविक रूप में टोकन बनाया जा रहा है
- प्रत्यक्ष सांख्यिकी: टुकड़े की गणना
- कनेक्शन स्थिति सूचक
त्वरित एक -स्ट्रीमिंग सिनारियो के लिए बटन क्लिक करें
- उपयोक्ता सूचीआईडी के साथ उपयोक्ता वस्तुओं का सरणी
- उत्पाद विवरणिका: SKU के साथ उत्पाद आंकड़ा
- आदेश विवरण: ग्राहक सूचना और वस्तु सारणी के साथ स्थापित आदेश
- मौसम डाटा: तापमान के साथ मौजूदा परिस्थितियाँ
के लिए आदर्श LLM जनन का अवलोकन
ओपन एपीआई प्रबंधक डेमो (/OpenApiगतिशील स्पेक्ट लोडिंग
नया विशेषता वास्तविक के साथ इंटरैक्टिव ओपन एपीआई निर्दिष्टीकरण प्रबंधन
विशेषताएँ
- स्पेक गतिशील रूप से लोड करें: यूआरएल से या कच्चे JSON को सीधे ब्राउज़र में चिपकाएँ
- Real-टाइम अपडेट: SignalR-सभी क्रियाओं के लिए सक्षम प्रत्यक्ष अधिसूचना
- अंत बिन्दु खोज: स्पेक्ट से सभी ऑपरेशनों का स्वचालित निष्कर्षण
- In-ब्रोजर परीक्षणएक क्लिक के साथ किसी भी अंतबिंदु का परीक्षण करें
- जीवन चक्र प्रबंधन: लोड करें
- सुंदर यूआई: रंग-कोडित HTTP विधियाँM SK2 वाक्य संरचनाMSC3उज्वलित JSON प्रतिक्रियाएँ
- कनेक्शन स्थिति: प्रत्यक्ष सूचक SignalR कनेक्शन स्थिति दिखाता है
- व्यापक सहायता: इनलाइन दस्तावेज़ीकरण और उदाहरण यूआरएल
त्वरित
- यूआरएल से पेटस्टोर API लोड करें
- मनपसंद OpenAPI JSON चिपकाएँ
- सभी अंतबिन्दुओं को स्पेक्ट से देखें
- पृष्ठ में सीधे अंतबिंदुओं का परीक्षण करें
- एलएलएम द्वारा उत्पन्न वास्तविक नमूना डेटा देखें
के लिए आदर्श API प्रोटोटाइपिंग
डेमो चलाएँ
cd LLMApi
dotnet run
में नेविगेट करें
http://localhost:5116- सिग्नलआर वास्तविक- प्रबंधन यूआई के साथ समय डेटा प्रवाहhttp://localhost:5116/Streaming- एसईएस प्रगतिशील उत्पादनhttp://localhost:5116/OpenApi- गतिशील लोडिंग के साथ ओपन एपीआई स्पेक्ट मैनेजर
सभी डेमो में शामिल हैं
- व्यापक इनलाइन दस्तावेज़ीकरण
- इंटरैक्टिव त्वरित-सुरुआ उदाहरण
- एकीकरण के लिए कोड स्निपेट
- वास्तविक समय स्थिति सूचक
- पूरा संदर्भ जीवन चक्र नियंत्रण
उन्नत सुविधाएँ
प्रत्युत्तर योजना प्रतिध्वनि (आकार)निर्यात
आप वैकल्पिक रूप से मध्यवर्ती प्रतिध्वनित JSON आकार वापस कर सकते हैं
कॉन्फ़िगरेशन
- विकल्प: IncludeShapeInResponse
- Per-request override: add query parameter includeSchema
- प्रेषित हेडर: XM SK1प्रतिक्रिया-Schema MSC3केवल जब एक आकार और आकार प्रदान किया गया था
- स्ट्रीमिंग: अंतिम एसईएस घटना में एक स्कीमा क्षेत्र शामिल है जब सक्षम
उदाहरण
- वैश्विक रूप से सक्षम करें
{
"mostlylucid.mockllmapi": {
"IncludeShapeInResponse": true
}
}
- प्रति अनुरोध सक्षम करें (config अधिरोहित करता है
curl "http://localhost:5000/api/mock/users?shape=%7B%22id%22%3A0%2C%22name%22%3A%22string%22%7D&includeSchema=true"
प्रतिक्रिया में हेडर शामिल है
X-Response-Schema: {"id":0,"name":"string"}
- Streaming: अंतिम घटना सक्षम होने पर स्कीमा क्षेत्र समाहित करता है
...
data: {"content":"{full json}","done":true,"schema":{"id":0,"name":"string"}}
नोट्स
- यदि कोई आकार प्रदान नहीं किया गया है ( क्वेरी के माध्यम से
- बहुत बड़े आकार (> 4000 Chars) हेडर में जोड़ा नहीं जाता है परिवहन समस्याओं से बचने के लिए
केस का उपयोग करें
- क्लाइंट-साइड टाइपस्क्रिप्ट प्रकार उत्पादन
- API दस्तावेज़ीकरण और स्कीमा वैधता
- आकार विश्लेषण डिबगिंग
- रनटाइम वैधीकरण
मनपसंद त्वरित टेम्प्लेट
अपने आप के साथ डिफ़ॉल्ट प्रवर्धन अधिरोहित करें
{
"mostlylucid.mockllmapi": {
"CustomPromptTemplate": "Generate mock data for {method} {path}. Body: {body}. Use seed: {randomSeed}"
}
}
उपलब्ध स्थानधारक
{method}HTTP विधि{path}- क्वेरी स्ट्रिंग के साथ पूरा अनुरोध पथ{body}- अनुरोध निकाय{randomSeed}Generated random seed (GUID{timestamp}- यूनिक्स समय-स्टाम्प{shape}- आकार विनिर्दिष्टीकरण यदि उपलब्ध है
त्रुटि सिमुलेशन
अपने क्लाइंट को जाँचें-'-अपने त्रुटि प्रबंधन के साथ व्यापक त्रुटियों सिमुलेशन क्षमताएँ
त्रुटियों को कॉन्फ़िगर करने के चार तरीके प्राथमिकता क्रम में
- क्वेरी पैरामीटर उच्चतम प्राथमिकता
महत्वपूर्ण: क्वेरी पैरामीटर मान URL होना चाहिए %20, & बन जाता है %26, : बन जाता है %3Aएमएसके0 आदि
# Properly encoded (spaces as %20)
curl "http://localhost:5000/api/mock/users?error=404&errorMessage=Not%20found&errorDetails=User%20does%20not%20exist"
# More complex example with special characters
# Decoded: "Invalid input: email & phone required"
curl "http://localhost:5000/api/mock/users?error=400&errorMessage=Invalid%20input%3A%20email%20%26%20phone%20required"
- HTTP हेडर:
curl -H "X-Error-Code: 401" \
-H "X-Error-Message: Unauthorized" \
-H "X-Error-Details: Token expired" \
http://localhost:5000/api/mock/users
- आकार JSON उपयोग
$errorसंपत्ति
# Simple: just status code
curl "http://localhost:5000/api/mock/users?shape=%7B%22%24error%22%3A404%7D"
# Complex: with message and details
curl "http://localhost:5000/api/mock/users?shape=%7B%22%24error%22%3A%7B%22code%22%3A422%2C%22message%22%3A%22Validation%20failed%22%2C%22details%22%3A%22Email%20invalid%22%7D%7D"
- अनुरोध मुख्य भाग उपयोग
errorसंपत्ति
curl -X POST http://localhost:5000/api/mock/users \
-H "Content-Type: application/json" \
-d '{
"error": {
"code": 409,
"message": "Conflict",
"details": "User already exists"
}
}'
त्रुटि प्रतिक्रिया प्रारूप
नियमित/स्ट्रीमिंग अंतबिंदुएं
{
"error": {
"code": 404,
"message": "Not Found",
"details": "Optional additional context"
}
}
ग्राफQL अंतबिन्दु:
{
"data": null,
"errors": [
{
"message": "Not Found",
"extensions": {
"code": 404,
"details": "Optional additional context"
}
}
]
}
सिग्नलआर त्रुटि अनुकरण
वास्तविक परीक्षण के लिए SignalR संदर्भ में त्रुटियों को कॉन्फ़िगर करें
{
"HubContexts": [
{
"Name": "errors",
"Description": "Error simulation stream",
"ErrorConfig": {
"Code": 500,
"Message": "Server error",
"Details": "Database connection lost"
}
}
]
}
या प्रबंधन API के माध्यम से गतिशील रूप से
curl -X POST http://localhost:5000/api/management/contexts \
-H "Content-Type: application/json" \
-d '{
"name": "errors",
"description": "Test errors",
"error": 503,
"errorMessage": "Service unavailable",
"errorDetails": "Maintenance in progress"
}'
समर्थित HTTP स्थिति कोड
पैकेज में सामान्य HTTP स्थिति कोड के लिए डिफ़ॉल्ट संदेश शामिल हैं
- क्लाइंट त्रुटि: 400 (\Bad Request),\ \ 401\ |(\Unuthorized\M SK6\ 403\ ◦(\Forbidden\MSC9\ ─404\ (\Not Found\MST12\ ‒MST13\ MST14\Method Not Allowed\M ST15\ ―MST16\ ¬MST17\Request Timeout\M st18\ M st19\ M st20\Conflict\M St21\ M st22\ ̄M st23\ Unprocessable Entity\Mst24\ ــM st25\ ـــM st26\ Too Many Requests\M S T27\
- सर्वर त्रुटि@info: whatsthis
मनपसंद संदेश और विवरण डिफ़ॉल्ट अधिरोहित करें
केस का उपयोग करें
- क्लाइंट पुनः प्रयास तर्क और एक्सपोनेन्शल बैकऑफ का परीक्षण करें
- यूआई में त्रुटि संदेश प्रदर्शन प्रमाणित करें
- परीक्षण प्रमाणीकरण
- दर सीमांतरण परिदृश्य नकल करें
- शालीन विघटन नमूने का अभ्यास करें
- त्रुटि लॉगिंग और मॉनीटरिंग का परीक्षण करें
देखें LLMApi/LLMApi.http सभी त्रुटि सिमुलेशन विधियों के व्यापक उदाहरणों के लिए
बहुविध अवस्थाएँ
विभिन्न कॉन्फ़िगरेशनों के साथ कई मॉक APIs माउन्ट करें:
// Development data with high randomness
builder.Services.Addmostlylucid.mockllmapi("Dev", options =>
{
options.Temperature = 1.5;
options.ModelName = "llm-model";
});
// Stable test data
builder.Services.Addmostlylucid.mockllmapi("Test", options =>
{
options.Temperature = 0.3;
options.ModelName = "llm-model";
});
app.Mapmostlylucid.mockllmapi("/api/dev");
app.Mapmostlylucid.mockllmapi("/api/test");
आकार विशिष्टीकरण
प्रतिक्रिया संरचना को नियंत्रित करने के तीन तरीके
- शीर्षिका अनुशंसित
X-Response-Shape: {"field":"type"} - क्वेरी पैराम:
?shape=%7B%22field%22%3A%22type%22%7Dयूआरएल - शरीर क्षेत्र:
{"shape": {...}, "actualData": ...}
आकार के माध्यम से बहुविध प्रतिक्रियाओं को कैशिंग करें
You can instruct the middleware to pre-generate and cache multiple response variants for a specific request
- कैश कुंजी HTTP विधि से व्युत्पन्न है + पथ | ( | जिसमें क्वेरी शामिल है |) | + | स्वच्छ आकार |
- तक के उत्तर LLM से पूर्वfetched किए जाते हैं और विकल्पों में MaxCachePerKey द्वारा कैप किया जाता है
- एक ही कुंजी के लिए अनुवर्ती गैर स्ट्रीमिंग अनुरोधों को एक समाप्ति कतार से सेवा दी जाती है
- स्ट्रीमिंग अंतबिंदु कैश नहीं हैं
उदाहरण
हेडर आकार X-ResponseMSC1ShapeM SK2 {"$cacheMST4orderIdMSP5stringM ST6statusM st7string\MST8itemsMst9[{"
बॉडी आकार { आकार कैश "invoiceId "customer " [ मूल्य कुल } }
Query param (URLM SK1encoded): नाम
कॉन्फ़िगरेशन
- MaxCachePerKey (int, डिफ़ॉल्ट 5): द्वारा अनुरोधित संख्या को कैप करता है
नोट्स
- संकेत LLM को भेजने से पहले आकार से हटा दिया जाता है
- यदि "$cache" मिटाया जाता है या \0, अनुरोध पहले की तरह व्यवहार करता है
- कैश वैकल्पिक अनुप्रयोग जीवनकाल के लिए स्मृति में रखे जाते हैं
परीक्षण
परीक्षण उपयोगिता पैकेज
mostlylucid.mockllmapi.Testing एक सहयोगी NuGet पैकेज जो मॉक API के साथ परीक्षण को और आसान बनाता है
dotnet add package mostlylucid.mockllmapi.Testing
त्वरित उदाहरण
using mostlylucid.mockllmapi.Testing;
// Create a configured HttpClient for testing
var client = HttpClientExtensions.CreateMockLlmClient(
baseAddress: "http://localhost:5116",
pathPattern: "/users",
configure: endpoint => endpoint
.WithShape(new { id = 0, name = "", email = "" })
.WithCache(5)
.WithError(404) // Simulate errors easily
);
// Use in your tests
var response = await client.GetAsync("/users");
var users = await response.Content.ReadFromJsonAsync<User[]>();
मुख्य विशेषताएँ
- तरल API: साथ आसान कॉन्फ़िगरेशन
WithShape(),WithError(),WithCache()एमएसके0 आदि - एचटीटीपी क्लाइंट एकीकरण: से सीधा काम करता है
HttpClientऔरIHttpClientFactory - कई अंत बिन्दुएँविभिन्न पथों के लिए भिन्न व्यवहार कॉन्फ़िगर करें
- त्रुटि सिमुलेशन: विभिन्न स्थिति कोडों के साथ परीक्षण त्रुटि प्रबंधन
- स्ट्रीमिंग समर्थन: टेस्ट एसईएस स्ट्रीमिंग अंतबिंदु
- निर्भरता इंजेक्शनटाइप किए गए और नामित ग्राहकों के लिए समर्थन में : Built
कॉन्फ़िगरेशन उदाहरण
// Multiple endpoints with different configurations
var client = HttpClientExtensions.CreateMockLlmClient(
"http://localhost:5116",
configure: handler => handler
.ForEndpoint("/users", config => config
.WithShape(new { id = 0, name = "", email = "" })
.WithCache(10))
.ForEndpoint("/posts", config => config
.WithShape(new { id = 0, title = "", content = "" })
.WithStreaming()
.WithSseMode("CompleteObjects"))
.ForEndpoint("/error", config => config
.WithError(500, "Internal server error"))
);
// Dependency Injection support
services.AddMockLlmHttpClient<IUserApiClient>(
baseApiPath: "/api/mock",
configure: handler => handler
.ForEndpoint("/users", config => config.WithShape(...))
);
यह कैसे काम करता है
MockLlmHttpHandler एक है DelegatingHandler जो HTTP अनुरोध को अवरोधित करता है और मॉक API में अग्रेषित करने से पहले क्वैरी पैरामीटरों और शीर्षिकाओं के माध्यम से स्वचालित रूप से अपने कॉन्फ़िगरेशन लागू करता है HttpClient मॉक व्यवहार को घोषणात्मक रूप से नियंत्रित करते समय अपने परीक्षणों में उदाहरण
देखें पैकेज README का परीक्षण कर रहा है पूरा दस्तावेज़ और उदाहरण के लिए
एचटीटीपी फ़ाइल परीक्षण
सम्मिलित उपयोग करें LLMApi.http के साथ फ़ाइल
- विजुअल स्टूडियो / राइडर HTTP क्लाइंट
- वीएस कोड रेस्ट क्लाइंट विस्तार
- कोई भी HTTP क्लाइंट
इकाई परीक्षण
परियोजना में व्यापक इकाई परीक्षण शामिल हैं
# Run all tests
dotnet test
# Run with detailed output
dotnet test --verbosity detailed
टेस्ट कवरेज (228 टेस्ट, 100% पास दर
- शरीर पठन (empty
- फॉर्म बॉडी विश्लेषण (एकल मानों, बहुविध मानों
- बहुpart फ़ॉर्म डाटा फ़ाइल मेटाडेटा
- JSON escaping (quotesMSC1 backslashes, newlinesM SK3 tabs , unicode
- सामग्री निष्कर्षण (OpenAI फ़ॉर्मेट, जटिल nested JSON
- मैनुअल JSON निर्माण (प्ररूप डाटा,आरें
- आकार निष्कर्षण Query Param
- त्वरित जनन (randomness,shape inclusionM SK2streaming modes )
- अनुरोध भवन (temperatureM SK1model,messages
- किनारा केस अमान्य JSON
- एकीकरण परीक्षण (full HTTP workflow, form submissions
में नया v2.3.0:
- फ़ॉर्मबडीहैन्डलिंग टेस्ट्स फार्म बॉडी पार्सिंग और JSON निर्माण के लिए परीक्षण -
- JsonHandlingTests.cs JSON स्काइपिंग के लिए परीक्षण
- इंटीग्रेशन टेस्ट पूर्ण HTTP अंतबिंदु परीक्षण के लिए - एकीकृत परीक्षण फ्रेमवर्क
देखें टेस्ट पूर्ण परीक्षण दस्तावेज़ और कवरेज मापन के लिए
वास्तुकला
देखें वास्तुकला की समीक्षा उच्च स्तरीय सिस्टम चित्र और घटक विवरण के लिए ऊपर
विस्तृत अनुरोध प्रवाह
sequenceDiagram
participant C as Client
participant A as LLMApi
participant H as AutoApiHelper
participant O as Ollama
participant M as llm-model
C->>A: GET/POST/PUT/DELETE /api/auto/**
A->>H: Extract context (method, path, body, shape)
H->>H: Generate random seed + timestamp
H->>H: Build prompt with randomness
H-->>A: Prompt + temperature=1.2
A->>O: POST /v1/chat/completions
O->>M: Run inference
M-->>O: Generated JSON
O-->>A: Response
A-->>C: JSON Response
आकार नियंत्रण प्रवाह
flowchart TD
Start[Request Arrives] --> CheckQuery{Shape in<br/>Query Param?}
CheckQuery -->|Yes| UseQuery[Use Query Shape]
CheckQuery -->|No| CheckHeader{Shape in<br/>Header?}
CheckHeader -->|Yes| UseHeader[Use Header Shape]
CheckHeader -->|No| CheckBody{Shape in<br/>Body Field?}
CheckBody -->|Yes| UseBody[Use Body Shape]
CheckBody -->|No| NoShape[No Shape Constraint]
UseQuery --> BuildPrompt[Build Prompt]
UseHeader --> BuildPrompt
UseBody --> BuildPrompt
NoShape --> BuildPrompt
BuildPrompt --> AddRandom[Add Random Seed<br/>+ Timestamp]
AddRandom --> SendLLM[Send to LLM]
style UseQuery fill:#4CAF50
style UseHeader fill:#4CAF50
style UseBody fill:#4CAF50
style NoShape fill:#FFC107
परियोजनाएं
mostlylucid.mockllmapi: NuGet पैकेज लाइब्रेरीLLMApi: डेमो अनुप्रयोगLLMApi.Tests: xUnit परीक्षण सूट (228 जाँचें | - | \ 100% | पास दर
अधिकतरlucid का प्रयोग क्यों करें.mockllmapi?
- त्वरित प्रारूपण: बैकएण्ड की प्रतीक्षा किए बिना फ्रन्टएंड विकास
- एचटीटीपी समर्थन पूर्ण करें: JSON
- सुसंगत कार्यप्रवाह: API संदर्भ बहु-स्राव प्रक्रियाओं के बीच वास्तविक संबंध बनाए रखते हैं
- डेमोस: हार्डकोड फ़िक्सर के बिना वास्तविक डेटा प्रवाह दिखाएँ
- परीक्षण: किनारा केसों के लिए विविध परीक्षण डेटा उत्पन्न करें | - | या संदर्भों से सुसंगत डाटा
- स्मृति: फ़ाइल अपलोड्स स्ट्रीम और डम्प किया गया है.
- API डिजाइन: क्रियान्वयन से पहले प्रतिक्रिया आकारों के साथ प्रयोग
- सीखना: नेट न्यूनतम APIs में LLM एकीकरण का उदाहरण
- शून्य रखरखाव: कोई डाटाबेस नहीं
- लचीला: REST के किसी भी संयोजन का उपयोग करें
- उत्पादन: 228 परीक्षाएं, 100% पास दरM SK4 व्यापक दस्तावेज़
न्यूगेट पैकेज बनाना
cd mostlylucid.mockllmapi
dotnet pack -c Release
पैकेज में होगा bin/Release/mostlylucid.mockllmapi.{version}.nupkg
योगदान कर रहा है
यह एक नमूना परियोजना LLM को प्रदर्शित करता है
लाइसेंस
यह सार्वजनिक डोमेन में मुक्त और असंभारित सॉफ्टवेयर है लाइसेंस अधिक जानकारी के लिए या यात्रा अनलिसीन.