Allow using system instructions

This commit is contained in:
2024-04-19 18:23:17 +01:00
parent 3d298fabbc
commit 5fde27b70d
4 changed files with 69 additions and 3 deletions

View File

@@ -127,6 +127,7 @@ impl<T: TokenProvider + Clone> GeminiClient<T> {
.collect(),
generation_config: None,
tools: None,
system_instruction: None,
};
let response = self.generate_content(&request, model).await?;
@@ -154,6 +155,7 @@ impl<T: TokenProvider + Clone> GeminiClient<T> {
}],
generation_config: generation_config.cloned(),
tools: None,
system_instruction: None,
};
let response = self.generate_content(&request, "gemini-pro").await?;

View File

@@ -22,10 +22,22 @@ pub enum ErrorType {
#[serde(rename = "type.googleapis.com/google.rpc.Help")]
Help { links: Vec<Link> },
#[serde(rename = "type.googleapis.com/google.rpc.BadRequest")]
BadRequest {
#[serde(rename = "fieldViolations")]
field_violations: Vec<FieldViolation>,
},
}
#[derive(Clone, Debug, Serialize, Deserialize)]
pub struct ErrorInfoMetadata {
service: String,
consumer: String,
pub service: String,
pub consumer: String,
}
#[derive(Clone, Debug, Serialize, Deserialize)]
pub struct FieldViolation {
pub field: String,
pub description: String,
}

View File

@@ -4,11 +4,12 @@ use serde::{Deserialize, Serialize};
use super::{Content, Error, Part};
#[derive(Clone, Serialize, Deserialize)]
#[derive(Clone, Default, Serialize, Deserialize)]
pub struct GenerateContentRequest {
pub contents: Vec<Content>,
pub generation_config: Option<GenerationConfig>,
pub tools: Option<Vec<Tools>>,
pub system_instruction: Option<Content>,
}
impl GenerateContentRequest {
@@ -20,6 +21,7 @@ impl GenerateContentRequest {
}],
generation_config,
tools: None,
system_instruction: None,
}
}
}