Een prompt ophalen vanuit de client
Haal nu een specifieke prompt op van de currency-server met gebruikersinvoer, zodat de template en het verzoek van de gebruiker worden gecombineerd. Dit is wat je aan een LLM zou doorgeven voordat die beslist of de conversietool moet worden aangeroepen.
Deze oefening maakt deel uit van de cursus
Introductie tot Model Context Protocol (MCP)
Oefeninstructies
- Roep, nadat je de sessie hebt geïnitialiseerd, de methode aan om een prompt op naam op te halen. Geef de promptnaam mee en een
arguments-dict met de invoer van de gebruiker. - Haal de tekstinhoud op van het eerste bericht in het promptresultaat en print die.
Interactieve oefening met praktijkervaring
Probeer deze oefening door deze voorbeeldcode aan te vullen.
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?"))