1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
/*
* OpenAI API
*
* The OpenAI REST API. Please see https://platform.openai.com/docs/api-reference for more details.
*
* The version of the OpenAPI document: 2.3.0
*
* Generated by: https://openapi-generator.tech
*/
use crate::models;
use serde::{Deserialize, Serialize};
/// LiveInstructionsAppendParam : Append developer instructions to the Live conversation while it is running, optionally associating them with an existing client delegation. Rejected while an audio fixture is active. These instructions remain in conversation history through compaction and are included in future backend delegations. For external audio, describe content already delivered so the assistant does not repeat it.
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize, bon::Builder)]
pub struct LiveInstructionsAppendParam {
/// Optional client identifier for correlating this command with a server event's client_event_id or error.client_event_id.
#[serde(
rename = "event_id",
default,
with = "::serde_with::rust::double_option",
skip_serializing_if = "Option::is_none"
)]
pub event_id: Option<Option<String>>,
/// The Live client event type. Always `session.instructions.append`.
#[serde(rename = "type")]
pub r#type: Type,
/// Required, nullable. Set null for general session context, or use the ID from session.delegation.created for an existing client delegation. Non-null IDs are not accepted with Responses delegation.
#[serde(rename = "delegation_id", deserialize_with = "Option::deserialize")]
pub delegation_id: Option<String>,
/// Instruction text to append, limited to 500 tokens. This is a plain string, not an array of content parts.
#[serde(rename = "content")]
pub content: String,
}
impl LiveInstructionsAppendParam {
/// Append developer instructions to the Live conversation while it is running, optionally associating them with an existing client delegation. Rejected while an audio fixture is active. These instructions remain in conversation history through compaction and are included in future backend delegations. For external audio, describe content already delivered so the assistant does not repeat it.
pub fn new(
r#type: Type,
delegation_id: Option<String>,
content: String,
) -> LiveInstructionsAppendParam {
LiveInstructionsAppendParam {
event_id: None,
r#type,
delegation_id,
content,
}
}
}
/// The Live client event type. Always `session.instructions.append`.
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Type {
#[serde(rename = "session.instructions.append")]
SessionInstructionsAppend,
}
impl Default for Type {
fn default() -> Type {
Self::SessionInstructionsAppend
}
}
impl std::fmt::Display for LiveInstructionsAppendParam {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
match serde_json::to_string(self) {
Ok(s) => write!(f, "{}", s),
Err(_) => Err(std::fmt::Error),
}
}
}