> ## Documentation Index
> Fetch the complete documentation index at: https://phaseo.app/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Python SDK से प्रीसेट-आधारित स्ट्रक्चर्ड JSON भेजें

> कच्चे HTTP कॉल किए बिना आधिकारिक Python SDK, प्रीसेट, स्ट्रक्चर्ड आउटपुट और अनुरोध-स्तर की डीबगिंग इस्तेमाल करें।

जब किसी Python सेवा को हर अनुरोध में prompt, रूटिंग और पैरामीटर कॉन्फ़िगरेशन दोहराने के बजाय डैशबोर्ड से मैनेज किए गए डिफ़ॉल्ट इस्तेमाल करने हों, तब यह तरीका अपनाएँ।

## लक्ष्य

* Python कॉलर को छोटा रखना
* कोड में मॉडल तय करने के बजाय प्रीसेट slug से रूट करना
* सख्त स्ट्रक्चर्ड आउटपुट माँगना
* रूटिंग या प्लगइन व्यवहार डीबग करने के लिए पर्याप्त रिस्पॉन्स मेटाडेटा रखना

## 1. एक साझा क्लाइंट से शुरू करें

```python theme={null}
import os

from phaseo import Phaseo

gateway = Phaseo(api_key=os.environ["PHASEO_API_KEY"])
```

हर अनुरोध के लिए नया क्लाइंट बनाने के बजाय एक क्लाइंट साझा रखें।

## 2. स्थिर डिफ़ॉल्ट प्रीसेट में रखें

जब कई कॉलर के लिए ये चीज़ें स्थिर रखनी हों, तो **डैशबोर्ड -> सेटिंग -> प्रीसेट** में प्रीसेट बनाएँ:

* सिस्टम प्रॉम्प्ट
* मॉडल या अनुमत मॉडल की सूची
* प्रोवाइडर प्राथमिकताएँ
* रीजनिंग कॉन्फ़िगरेशन
* temperature और संबंधित जनरेशन पैरामीटर
* नियतात्मक replay ज़रूरी होने पर रिस्पॉन्स कैशिंग नीति

प्रीसेट बन जाने पर Python कॉलर का कोड छोटा रह सकता है।

## 3. एक सख्त JSON संरचना माँगें

```python theme={null}
response = gateway.generate_response(
    {
        "preset": "release-summary",
        "input": "Summarize the last 24 hours of deployment activity.",
        "response_format": {
            "type": "json_schema",
            "name": "release_summary",
            "schema": {
                "type": "object",
                "required": ["summary", "risk_level"],
                "properties": {
                    "summary": {"type": "string"},
                    "risk_level": {
                        "type": "string",
                        "enum": ["low", "medium", "high"],
                    },
                },
                "additionalProperties": False,
            },
        },
        "plugins": [{"id": "response-healing"}],
        "meta": True,
    }
)
```

यह संरचना क्यों उपयोगी है:

* `preset` रूटिंग और prompt डिफ़ॉल्ट को ऐप्लिकेशन कोड से बाहर रखता है
* `response_format` कॉन्ट्रैक्ट को स्पष्ट रखता है
* workflow अनुमति दे तो `plugins` लगभग सही लेकिन गलत फ़ॉर्मैट वाले JSON को सुधार सकता है
* `meta` डीबगिंग के लिए रूटिंग और प्लगइन रन की जानकारी बचाए रखता है

## 4. JSON पार्स करें और ऑपरेशनल ID लॉग करें

```python theme={null}
import json

message_text = ""
for item in response.get("output", []):
    if item.get("type") != "message":
        continue
    for part in item.get("content", []):
        if part.get("type") == "output_text":
            message_text = part.get("text", "")
            break

payload = json.loads(message_text)

print("response_id:", response.get("id"))
print("selected_provider:", response.get("meta", {}).get("routing", {}).get("selected_provider"))
print("plugin_executions:", response.get("meta", {}).get("plugin_executions"))
print(payload)
```

Python workers के लिए, यह आम तौर पर ऐप्लिकेशन लॉग की एक पंक्ति को इन चीज़ों से जोड़ने के लिए पर्याप्त है:

* डैशबोर्ड में अनुरोध का विवरण डायलॉग
* रूटिंग डायग्नॉस्टिक्स
* प्लगइन रन मेटाडेटा

## 5. Override जोड़ने से पहले डीबग करें

अगर किसी अनुरोध की रूटिंग आपकी अपेक्षा से अलग हो:

1. अनुरोध को **Gateway -> उपयोग** में खोलें
2. रूटिंग डायग्नॉस्टिक्स और उम्मीदवार प्रोवाइडर देखें
3. स्ट्रक्चर्ड JSON होने पर प्लगइन रन मेटाडेटा जाँचें
4. लॉग में वास्तविक नतीजा देखने के बाद ही प्रीसेट बदलें

एक खराब अनुरोध को ठीक करने के लिए कई inline overrides जोड़ने से बचें। ऐसा करने से प्रीसेट इस्तेमाल करने का उद्देश्य अक्सर खत्म हो जाता है।

## 6. नतीजे दोबारा इस्तेमाल करने हों तो कैश के अनुकूल रहें

अगर प्रीसेट रिस्पॉन्स कैशिंग चालू करता है:

* prompt की भाषा स्थिर रखें
* रिस्पॉन्स स्कीमा स्थिर रखें
* प्रति अनुरोध अनावश्यक प्रोवाइडर overrides से बचें
* बार-बार बदलने वाली टूल सूची से बचें

अगर किसी कॉलर को वास्तव में अलग व्यवहार चाहिए, तो साझा workflow की कैश पुनःप्रयोग क्षमता घटाने के बजाय उसके लिए अलग प्रीसेट बनाएँ।

## संबंधित गाइड

* [प्रीसेट लागू करें और रूटिंग डीबग करें](./preset-rollout-and-routing-debug.mdx)
* [प्रीसेट के साथ रिस्पॉन्स कैशिंग इस्तेमाल करें](./response-caching-with-presets.mdx)
* [स्ट्रक्चर्ड JSON के लिए रिस्पॉन्स सुधारें](./response-healing-for-structured-json.mdx)
* [Python SDK का परिचय](../sdk-reference/python/overview.mdx)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.