Pobieranie promptu z poziomu klienta
Pobierz teraz konkretny prompt z serwera walutowego, łącząc szablon z danymi podanymi przez użytkownika. To właśnie taki prompt przekazałbyś do modelu językowego, zanim zdecyduje, czy wywołać narzędzie do przeliczania walut.
To ćwiczenie jest częścią kursu
Wprowadzenie do Model Context Protocol (MCP)
Instrukcje do ćwiczenia
- Po zainicjowaniu sesji wywołaj metodę pobierającą prompt po nazwie, przekazując nazwę promptu oraz słownik
argumentsz danymi wejściowymi użytkownika. - Wyodrębnij i wyświetl zawartość tekstową pierwszej wiadomości w wyniku promptu.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
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?"))