pub struct GenerateContentReq {
pub model: String,
pub contents: Vec<Content>,
pub generation_config: Option<GenerationConfig>,
pub system_instruction: Option<Content>,
}Fields§
§model: String§contents: Vec<Content>§generation_config: Option<GenerationConfig>§system_instruction: Option<Content>Implementations§
Source§impl GenerateContentReq
impl GenerateContentReq
Sourcepub fn model(self, value: impl Into<String>) -> Self
pub fn model(self, value: impl Into<String>) -> Self
Sets the model field of this struct.
Examples found in repository?
examples/req.rs (line 19)
4async fn main() -> google_genai::error::Result<()> {
5 let api_key = std::env::var("GOOGLEAI_API_KEY")
6 .expect("GOOGLEAI_API_KEY environment variable must be set");
7
8 let params = GenerateContentParameters::default()
9 .contents(vec![Content {
10 parts: Some(vec![
11 Part::default().text("Tell me a joke about programming.")
12 ]),
13 role: Some("user".to_string()),
14 }])
15 .model("gemini-exp-1206");
16
17 let request = google_genai::datatypes::GenerateContentReq::default()
18 .contents(params.contents.unwrap())
19 .model(params.model.unwrap());
20
21 let response = google_genai::generate_content(&api_key, request).await?;
22
23 println!("Response: {:#?}", response);
24
25 Ok(())
26}More examples
examples/strm.rs (line 16)
6async fn main() -> google_genai::error::Result<()> {
7 let api_key = env::var("GOOGLEAI_API_KEY").expect("GOOGLE_API_KEY must be set");
8
9 let params =
10 GenerateContentParameters::default().contents(vec![Content::default().parts(vec![
11 Part::default().text("Write a story about a magic backpack."),
12 ])]);
13
14 let request = google_genai::datatypes::GenerateContentReq::default()
15 .contents(params.contents.unwrap())
16 .model(params.model.unwrap());
17
18 let mut stream = google_genai::generate_content_stream(&api_key, request).await?;
19
20 while let Some(response) = stream.next().await {
21 match response {
22 Ok(content) => {
23 if content.candidates.is_none() {
24 // This is our [DONE] marker
25 break;
26 }
27 if let Some(candidates) = content.candidates {
28 for candidate in candidates {
29 if let Some(content) = candidate.content {
30 if let Some(parts) = content.parts {
31 for part in parts {
32 if let Some(text) = part.text {
33 print!("{}", text);
34 }
35 }
36 }
37 }
38 }
39 }
40 }
41 Err(e) => eprintln!("Error: {}", e),
42 }
43 }
44
45 Ok(())
46}Sourcepub fn contents(self, value: impl Into<Vec<Content>>) -> Self
pub fn contents(self, value: impl Into<Vec<Content>>) -> Self
Sets the contents field of this struct.
Examples found in repository?
examples/req.rs (line 18)
4async fn main() -> google_genai::error::Result<()> {
5 let api_key = std::env::var("GOOGLEAI_API_KEY")
6 .expect("GOOGLEAI_API_KEY environment variable must be set");
7
8 let params = GenerateContentParameters::default()
9 .contents(vec![Content {
10 parts: Some(vec![
11 Part::default().text("Tell me a joke about programming.")
12 ]),
13 role: Some("user".to_string()),
14 }])
15 .model("gemini-exp-1206");
16
17 let request = google_genai::datatypes::GenerateContentReq::default()
18 .contents(params.contents.unwrap())
19 .model(params.model.unwrap());
20
21 let response = google_genai::generate_content(&api_key, request).await?;
22
23 println!("Response: {:#?}", response);
24
25 Ok(())
26}More examples
examples/strm.rs (line 15)
6async fn main() -> google_genai::error::Result<()> {
7 let api_key = env::var("GOOGLEAI_API_KEY").expect("GOOGLE_API_KEY must be set");
8
9 let params =
10 GenerateContentParameters::default().contents(vec![Content::default().parts(vec![
11 Part::default().text("Write a story about a magic backpack."),
12 ])]);
13
14 let request = google_genai::datatypes::GenerateContentReq::default()
15 .contents(params.contents.unwrap())
16 .model(params.model.unwrap());
17
18 let mut stream = google_genai::generate_content_stream(&api_key, request).await?;
19
20 while let Some(response) = stream.next().await {
21 match response {
22 Ok(content) => {
23 if content.candidates.is_none() {
24 // This is our [DONE] marker
25 break;
26 }
27 if let Some(candidates) = content.candidates {
28 for candidate in candidates {
29 if let Some(content) = candidate.content {
30 if let Some(parts) = content.parts {
31 for part in parts {
32 if let Some(text) = part.text {
33 print!("{}", text);
34 }
35 }
36 }
37 }
38 }
39 }
40 }
41 Err(e) => eprintln!("Error: {}", e),
42 }
43 }
44
45 Ok(())
46}Sourcepub fn generation_config(self, value: impl Into<GenerationConfig>) -> Self
pub fn generation_config(self, value: impl Into<GenerationConfig>) -> Self
Sets the generation_config field of this struct.
Sourcepub fn system_instruction(self, value: impl Into<Content>) -> Self
pub fn system_instruction(self, value: impl Into<Content>) -> Self
Sets the system_instruction field of this struct.
Trait Implementations§
Source§impl Clone for GenerateContentReq
impl Clone for GenerateContentReq
Source§fn clone(&self) -> GenerateContentReq
fn clone(&self) -> GenerateContentReq
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for GenerateContentReq
impl Debug for GenerateContentReq
Source§impl Default for GenerateContentReq
impl Default for GenerateContentReq
Source§fn default() -> GenerateContentReq
fn default() -> GenerateContentReq
Returns the “default value” for a type. Read more
Source§impl<'de> Deserialize<'de> for GenerateContentReq
impl<'de> Deserialize<'de> for GenerateContentReq
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
Auto Trait Implementations§
impl Freeze for GenerateContentReq
impl RefUnwindSafe for GenerateContentReq
impl Send for GenerateContentReq
impl Sync for GenerateContentReq
impl Unpin for GenerateContentReq
impl UnwindSafe for GenerateContentReq
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