मुख्य सामग्री पर जाएं

प्रॉम्प्ट्स

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 में निम्न फ़ील्ड शामिल होते हैं:
FieldTypeDescription
namestrprompt पहचानकर्ता
descriptionstr | Noneprompt क्या करता है
argumentslist | 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 लौटाता है:
FieldTypeDescription
messageslistरेंडर किए गए संदेशों का क्रम
descriptionstr | 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"})