responses(...) for new text-generation and tool-calling work.
Read the output text
Responses API output is an array. For a simple text result:body when your request can return multiple messages, reasoning items, tool calls, or provider metadata.
Documentation Index
Fetch the complete documentation index at: /docs/llms.txt
Use this file to discover all available pages before exploring further.
Generate text and tool calls through the Phaseo Responses API from Rust.
responses(...) for new text-generation and tool-calling work.
use phaseo::Phaseo;
use serde_json::json;
fn main() -> Result<(), Box<dyn std::error::Error>> {
let client = Phaseo::from_env()?;
let response = client.responses(&json!({
"model": "openai/gpt-5.6-sol",
"input": "Give three concise benefits of model routing.",
"max_output_tokens": 200
}))?;
println!("status: {}", response.status);
println!("request ID: {:?}", response.request_id);
println!("{}", serde_json::to_string_pretty(&response.body)?);
Ok(())
}
use serde_json::Value;
let text = response.body
.get("output")
.and_then(Value::as_array)
.into_iter()
.flatten()
.filter(|item| item.get("type").and_then(Value::as_str) == Some("message"))
.flat_map(|item| {
item.get("content")
.and_then(Value::as_array)
.into_iter()
.flatten()
})
.find_map(|part| {
(part.get("type").and_then(Value::as_str) == Some("output_text"))
.then(|| part.get("text").and_then(Value::as_str))
.flatten()
});
body when your request can return multiple messages, reasoning items, tool calls, or provider metadata.
let response = client.responses(&json!({
"model": "openai/gpt-5.6-sol",
"input": "Check the weather in London.",
"tools": [{
"type": "function",
"name": "get_weather",
"description": "Get the current weather for a city.",
"parameters": {
"type": "object",
"properties": {
"city": { "type": "string" }
},
"required": ["city"]
}
}]
}))?;
Was this page helpful?