Preluarea unui Prompt din Client
Preia acum un prompt specific de la serverul de valute, folosind input-ul utilizatorului, astfel încât șablonul și cererea acestuia să fie combinate. Acesta este conținutul pe care l-ai transmite unui LLM înainte ca acesta să decidă dacă apelează sau nu instrumentul de conversie.
Acest exercițiu face parte din cursul
Introducere în Model Context Protocol (MCP)
Instrucțiuni pentru exercițiu
- După inițializarea sesiunii, apelează metoda care preia un prompt după nume, transmițând numele promptului și un dicționar
argumentscu input-ul utilizatorului. - Extrage și afișează conținutul text al primului mesaj din rezultatul promptului.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
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?"))