pub struct Interactions {
pub provider: GeminiConfig,
pub model: String,
pub facts: ModelFacts,
}Expand description
Create interactions with POST /v1beta/interactions.
Streaming mode sets alt=sse and stream: true; unary mode reads a whole resource.
Fields§
§provider: GeminiConfigThe key and the API root.
model: StringThe model to address.
facts: ModelFactsThe model facts the encoder reads and replies are priced by.
Implementations§
Source§impl Interactions
impl Interactions
Sourcepub fn new(provider: GeminiConfig, model: impl Into<String>) -> Self
pub fn new(provider: GeminiConfig, model: impl Into<String>) -> Self
The wire for model.
Sourcepub fn with_facts(self, facts: ModelFacts) -> Self
pub fn with_facts(self, facts: ModelFacts) -> Self
The same wire, encoding with facts and pricing its replies by
them.
Trait Implementations§
Source§impl Clone for Interactions
impl Clone for Interactions
Source§impl Debug for Interactions
impl Debug for Interactions
Source§impl<'de> Deserialize<'de> for Interactions
impl<'de> Deserialize<'de> for Interactions
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl PartialEq for Interactions
impl PartialEq for Interactions
Source§impl ReplayTarget for Interactions
impl ReplayTarget for Interactions
Source§fn map_options(
&self,
request: &CompletionRequest,
fields: OptionFields<'_>,
) -> OptionMap
fn map_options( &self, request: &CompletionRequest, fields: OptionFields<'_>, ) -> OptionMap
Section 6.4 of the typed-options design, for Interactions.
Source§fn accepts(&self, model: &str) -> Accepts
fn accepts(&self, model: &str) -> Accepts
What the model reads, by the classifier every Gemini wire shares.
Source§fn continues_stored(&self, request: &CompletionRequest) -> bool
fn continues_stored(&self, request: &CompletionRequest) -> bool
A request naming previous_interaction_id continues an interaction
the API stored, which holds the calls its first results answer.
Source§fn later_system(&self, _model: &str) -> LaterSystem
fn later_system(&self, _model: &str) -> LaterSystem
Gemini takes system text only in systemInstruction: later system
messages fold into the leading one.
Source§fn identity(&self, item: &Value) -> Map<String, Value>
fn identity(&self, item: &Value) -> Map<String, Value>
A step’s id survives an edit of its block.
Source§fn facts(&self) -> Option<&ModelFacts>
fn facts(&self) -> Option<&ModelFacts>
The model facts this wire encodes with: the spec it was connected
to and the catalog that answers for other models.
None, the
default, answers from the built-in catalog.Source§fn encodes(&self, _model: &str, media: Media<'_>) -> bool
fn encodes(&self, _model: &str, media: Media<'_>) -> bool
Whether the encoder carries
media to model: its source (data,
URL, file id or string), its media type, and where it sits. adapt
replaces every part this refuses with a placeholder, or a text
document with its text, so the encoder never refuses canonical
content. Row H9 of the history conformance suite holds every wire to
it. By default every form is carried.Source§fn normalize_tool_call_id(
&self,
id: &str,
_model: &str,
_: Option<&Origin>,
) -> String
fn normalize_tool_call_id( &self, id: &str, _model: &str, _: Option<&Origin>, ) -> String
The id
id takes when a call another model made is sent to model
on this wire. source is the call’s origin, None for a hand-built
turn. Results answering the call are rewritten to match, and an id
another call already took is made distinct.Source§fn call_id_slot(&self) -> Option<&'static str>
fn call_id_slot(&self) -> Option<&'static str>
Where a tool call’s id sits in this wire’s call item, as a JSON
pointer, when it has one. Replay writes the call’s wire id there, so
a replayed item and its result always agree, and a call the provider
sent without an id keeps its item only on a wire with a slot.
Source§fn declares_tools(&self, request: &CompletionRequest) -> bool
fn declares_tools(&self, request: &CompletionRequest) -> bool
Whether
request declares tools to the provider, in tools, in the
tools of its additional_params, or through tools the wire adds.
A request that declares none gets its history’s calls and results as
text. ToolChoice::None still declares them: the wire sends its own
none choice beside the tool history.Source§fn states_finish_reason(&self) -> bool
fn states_finish_reason(&self) -> bool
Whether every reply on this wire states why it stopped. A reply that
then names no reason failed; a wire
with no finish vocabulary, such as a local runtime, says
false.Source§fn binds_context(&self, model: &str) -> bool
fn binds_context(&self, model: &str) -> bool
Whether
model binds its provider items to the request’s tools and
system prompt, so a turn made under another context replays as if
from another model.Source§fn drops_unbound_items(&self, request: &CompletionRequest) -> bool
fn drops_unbound_items(&self, request: &CompletionRequest) -> bool
Whether
request asks the provider to drop an item bound to another
context itself (Anthropic’s drop_block), so a turn made under
another context replays verbatim rather than as another model’s.Source§fn route(&self, request: &CompletionRequest) -> Option<&dyn ReplayTarget>
fn route(&self, request: &CompletionRequest) -> Option<&dyn ReplayTarget>
The target
request is sent to, for a wire that picks its API per
request. Preparing the request and folding its reply both read the
target this names, so a turn records the API it was made on. None,
the default, is this target.Source§fn takes_documents(&self) -> bool
fn takes_documents(&self) -> bool
Whether the encoder sends a request’s documents itself. Otherwise
they join the history as text before it is adapted.
Source§fn needs_next(&self, item: &Value) -> bool
fn needs_next(&self, item: &Value) -> bool
Whether this provider item requires the item after it in its turn
(Responses reasoning): when that one is not replayed, neither is
this.
Source§fn hosted_pair(&self, item: &Value) -> Option<(Pairing, String)>
fn hosted_pair(&self, item: &Value) -> Option<(Pairing, String)>
The hosted-tool pair this opaque item belongs to: whether it is the
use or the result, and the id they share. A use and its result
replay only together, in one turn or across the model’s turns. A use
still running when the last turn ended (a paused turn, or one whose
client call the hosted tool made) replays alone.
Source§fn starts_with_user(&self) -> bool
fn starts_with_user(&self) -> bool
Whether the wire rejects a conversation whose first message after
the system prompt is not a user message.
adapt then drops the
assistant turns before the first user message, with their results.Source§fn alternates_roles(&self) -> bool
fn alternates_roles(&self) -> bool
Whether the wire requires user and assistant messages to alternate.
adapt then joins two messages of one role that only system
messages separate, which move after them.Source§fn hosted_needs_tools(&self) -> bool
fn hosted_needs_tools(&self) -> bool
Whether a hosted tool’s use and result need the request to declare
tools. A request that declares none then sends neither.
Source§fn result_parts(&self, model: &str) -> bool
fn result_parts(&self, model: &str) -> bool
Whether
model reads a tool result as several parts. When it reads
neither parts nor result images, adapt joins a result’s text
parts into one.Source§fn sends_alone(&self, block: &AssistantContent) -> bool
fn sends_alone(&self, block: &AssistantContent) -> bool
Whether
block on its own makes an assistant message this wire
sends. A turn with no such block carries nothing, so adapt drops
it and the user messages around it become one. By default every
block does.Source§impl Serialize for Interactions
impl Serialize for Interactions
impl StructuralPartialEq for Interactions
Source§impl Wire for Interactions
impl Wire for Interactions
Source§type Op = Completion
type Op = Completion
The operation this wire performs.
Source§type Payload = Encoded
type Payload = Encoded
What
Self::encode produces for the transport to send.Source§type Event = InteractionsEvent
type Event = InteractionsEvent
The decoder’s classified event, which the reassembler reads too.
Source§type Decoder<'id> = InteractionsDecoder
type Decoder<'id> = InteractionsDecoder
The decoder for one of its replies, branded with that reply.
Source§type Reassembler = Interaction
type Reassembler = Interaction
What rebuilds a reply’s provider document from its events when the
transport reports no whole document, as for a stream. The driver
hands it every known event before the decoder decodes it, and
records what it finishes with as
raw. A wire whose operation’s
decoders record raw themselves names document::Unreassembled;
a completion wire cannot, because it does not
Serve completions.Source§fn describe(&self) -> Descriptor<'_>
fn describe(&self) -> Descriptor<'_>
What the wire says about itself.
Source§fn encode(
&self,
request: CompletionRequest,
mode: Mode,
) -> Result<Encoded, EncodeError>
fn encode( &self, request: CompletionRequest, mode: Mode, ) -> Result<Encoded, EncodeError>
The request to send. Pure: it may read
self, request and mode,
and nothing else. A request that cannot be built is an
EncodeError, which always reports as a request failure.Source§fn reassembler(&self) -> Self::Reassembler
fn reassembler(&self) -> Self::Reassembler
A fresh reassembler for one reply. A wire that picks its API per
reply builds the matching one.
Auto Trait Implementations§
impl Freeze for Interactions
impl RefUnwindSafe for Interactions
impl Send for Interactions
impl Sync for Interactions
impl Unpin for Interactions
impl UnsafeUnpin for Interactions
impl UnwindSafe for Interactions
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> IntoToolOutput for Twhere
T: Serialize + 'static,
impl<T> IntoToolOutput for Twhere
T: Serialize + 'static,
Source§fn into_tool_output(self) -> Result<ToolOutput, ToolExecutionError>
fn into_tool_output(self) -> Result<ToolOutput, ToolExecutionError>
Convert this value without routing structured data through a string.