# प्रॉम्प्ट्स
MCP सर्वर से प्रॉम्प्ट्स की सूची निकालें और उन्हें रेंडर करें
Prompts सर्वर द्वारा एक्सपोज़ किए गए पुन: उपयोग योग्य संदेश टेम्पलेट्स होते हैं। कोई prompt string-valued arguments स्वीकार कर सकता है और ऐसे संदेशों का एक अनुक्रम लौटाता है, जिन्हें आप किसी LLM वार्तालाप में इनपुट के रूप में दे सकते हैं।
अगर आप इसमें नए हैं: prompt को सर्वर पर स्टोर किए गए पहले से लिखे हुए चैट स्क्रिप्ट की तरह समझें (जैसे “summarize” या “code review”)। आपका Client उपलब्ध स्क्रिप्ट्स की सूची ले सकता है, फिर उनमें से किसी एक को वास्तविक संदेशों में render कर सकता है (ज़रूरत हो तो "language": "python" जैसे arguments भरते हुए)।
## prompts की सूची
उपलब्ध prompts देखें:
from dedalus_mcp.client import open_connection
async with open_connection("http://127.0.0.1:8000/mcp") as client:
prompts = await client.list_prompts()
for p in prompts.prompts:
print(f"{p.name}: {p.description}")
## Prompt स्कीमा
प्रत्येक prompt में निम्न फ़ील्ड शामिल होते हैं:
| Field | Type | Description |
|---|
name | str | prompt पहचानकर्ता |
description | str | None | prompt क्या करता है |
arguments | list | None | आवश्यक/वैकल्पिक arguments की सूची |
for p in prompts.prompts:
print(f"Name: {p.name}")
print(f"Description: {p.description}")
if p.arguments:
for arg in p.arguments:
required = "(required)" if arg.required else "(optional)"
print(f" - {arg.name}: {arg.description} {required}")
## एक prompt प्राप्त करें
आर्ग्यूमेंट्स के साथ prompt रेंडर करें:
result = await client.get_prompt("summarize", {"style": "brief"})
print(result.messages)
नोट: मॉडल कॉन्टेक्स्ट प्रोटोकॉल (MCP) prompt आर्ग्यूमेंट्स स्ट्रिंग होते हैं। अगर कोई सर्वर structured इनपुट (lists/dicts) की अपेक्षा करता है, तो वह आमतौर पर आपसे JSON स्ट्रिंग पास करने के लिए कहेगा और उसे सर्वर‑साइड पर पार्स करेगा।
## प्रतिक्रिया संरचना
रेंडर किया गया prompt एक GetPromptResult लौटाता है:
| Field | Type | Description |
|---|
messages | list | रेंडर किए गए संदेशों का क्रम |
description | str | None | वैकल्पिक विवरण |
प्रत्येक संदेश में एक role और एक content ब्लॉक होता है। कई prompts पाठ सामग्री लौटाते हैं; कुछ गैर‑पाठ सामग्री ब्लॉक भी लौटा सकते हैं।
from dedalus_mcp import types
result = await client.get_prompt("code-review", {"language": "python"})
for msg in result.messages:
content = msg.content
if isinstance(content, types.TextContent):
text = content.text
else:
text = f"<{content.type} content>"
print(f"[{msg.role}] {text}")
## उदाहरण: कोड असिस्टेंट
import asyncio
from dedalus_mcp.client import MCPClient
from dedalus_mcp import types
async def main():
client = await MCPClient.connect("http://127.0.0.1:8000/mcp")
try:
prompts = await client.list_prompts()
print("Available prompts:")
for p in prompts.prompts:
print(f" - {p.name}: {p.description}")
result = await client.get_prompt(
"explain-code",
{
"language": "python",
"code": "def fib(n): return n if n < 2 else fib(n-1) + fib(n-2)",
},
)
print("\nरेंडर किया गया prompt:")
for msg in result.messages:
if isinstance(msg.content, types.TextContent):
print(f"[{msg.role}] {msg.content.text}")
else:
print(f"[{msg.role}] <{msg.content.type} content>")
finally:
await client.close()
asyncio.run(main())
## बिना arguments वाले prompts
कुछ prompts को किसी argument की आवश्यकता नहीं होती:
result = await client.get_prompt("greeting")
# या स्पष्ट रूप से:
result = await client.get_prompt("greeting", {})
## कॉन्टेक्स्ट मैनेजर
from dedalus_mcp.client import open_connection
async with open_connection("http://127.0.0.1:8000/mcp") as client:
prompts = await client.list_prompts()
result = await client.get_prompt("analyze", {"data": "sample"})