Промпты
В главе Основы мы научились получать простой промпт. В этом разделе подробнее рассмотрим работу с промптами, предоставляемыми MCP-сервером.
Получение промпта
Для получения промпта используйте метод get_prompt().
Он принимает имя промпта и необязательные аргументы.
use neva::prelude::*;
#[tokio::main]
async fn main() -> Result<(), Error> {
let mut client = Client::new()
.with_options(|opt| opt
.with_stdio(
"cargo",
["run", "--manifest-path", "./neva-mcp-server/Cargo.toml"]));
client.connect().await?;
let args = ("lang", "Rust");
let prompt = client.get_prompt("hello_world_code", args).await?;
println!("{prompt.descr:?}: {prompt.messages:?}");
client.disconnect().await
}
Передача аргументов
Если промпт принимает один параметр, передайте кортеж с именем параметра и его значением:
let args = ("lang", "Rust");
let prompt = client.get_prompt("hello_world_code", args).await?;
Если промпт принимает несколько параметров, передайте их в виде массива, Vec или HashMap:
let args = [
("lang", "Rust"),
("topic", "Hello World function"),
];
let prompt = client.get_prompt("write_code", args).await?;
Если промпт не принимает параметров, передайте тип-единицу ():
let prompt = client.get_prompt("rust_hello_world", ()).await?;
Обучение на примерах
Полный пример доступен здесь.