Make content role optional

This commit is contained in:
2024-06-09 10:07:00 +01:00
parent 8e2c7dc41b
commit c4e9f78ec9
5 changed files with 8 additions and 8 deletions

View File

@@ -152,7 +152,7 @@ impl<T: TokenProvider + Clone> GeminiClient<T> {
contents: messages
.iter()
.map(|m| Content {
role: m.role.to_string(),
role: Some(m.role.to_string()),
parts: Some(vec![Part::Text(m.text.clone())]),
})
.collect(),
@@ -181,7 +181,7 @@ impl<T: TokenProvider + Clone> GeminiClient<T> {
) -> Result<String> {
let request = GenerateContentRequest {
contents: vec![Content {
role: "user".to_string(),
role: Some("user".to_string()),
parts: Some(vec![Part::Text(prompt.to_string())]),
}],
generation_config: generation_config.cloned(),

View File

@@ -4,7 +4,7 @@ use serde::{Deserialize, Serialize};
#[derive(Clone, Debug, Serialize, Deserialize)]
pub struct Content {
pub role: String,
pub role: Option<String>,
pub parts: Option<Vec<Part>>,
}

View File

@@ -17,7 +17,7 @@ impl GenerateContentRequest {
pub fn from_prompt(prompt: &str, generation_config: Option<GenerationConfig>) -> Self {
GenerateContentRequest {
contents: vec![Content {
role: "user".to_string(),
role: Some("user".to_string()),
parts: Some(vec![Part::Text(prompt.to_string())]),
}],
generation_config,