Hämta en prompt från klienten
Hämta nu en specifik prompt från valutaservern med användarindata, så att mallen och användarens förfrågan kombineras. Det här är vad du skulle skicka till en LLM innan den avgör om den ska anropa konverteringsverktyget.
Den här övningen är en del av kursen
Introduktion till Model Context Protocol (MCP)
Övningsinstruktioner
- Efter att sessionen initierats anropar du metoden för att hämta en prompt med namn, och skickar med promptens namn och en
arguments-dict med användarens indata. - Extrahera och skriv ut textinnehållet i det första meddelandet i promptresultatet.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
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?"))