Récupérer un prompt depuis le client
Récupérez maintenant un prompt précis depuis le serveur de devises avec une saisie utilisateur, afin de combiner le modèle et la demande de l'utilisateur. C'est ce que vous transmettriez à un LLM avant qu'il ne décide d'appeler l'outil de conversion.
Cet exercice fait partie du cours
<cours>Introduction au Model Context Protocol (MCP)</cours>Instructions de l’exercice
- Après avoir initialisé la session, appelez la méthode pour obtenir un prompt par son nom, en passant le nom du prompt et un dictionnaire
argumentscontenant la saisie de l'utilisateur. - Extrayez et affichez le contenu texte du premier message dans le résultat du prompt.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
from mcp import ClientSession, StdioServerParameters
from mcp.client.stdio import stdio_client
async def read_prompt(user_input: str = "How much is 50 GBP in euros?", prompt_name: str = "convert_currency_prompt") -> str:
"""Retrieve a prompt from the MCP server with user input."""
params = StdioServerParameters(command=sys.executable, args=["currency_server.py"])
async with stdio_client(params) as (reader, writer):
async with ClientSession(reader, writer) as session:
await session.initialize()
# Retrieve the prompt with the user's input
prompt = await session.____(prompt_name, arguments={"currency_request": user_input})
# Print the full prompt text (template + user request)
text = prompt.____[0].____.____
print(text)
return text
asyncio.run(read_prompt(user_input="How much is 50 GBP in euros?"))