diff --git a/src/client.rs b/src/client.rs index 79c51ed..72ce69c 100644 --- a/src/client.rs +++ b/src/client.rs @@ -99,45 +99,6 @@ impl GeminiClient { } } - /// Prompts a conversation to the model. - pub async fn prompt_conversation( - &self, - messages: &[Message], - model: &str, - ) -> GeminiResult { - let request = GenerateContentRequest { - contents: messages - .iter() - .map(|m| Content { - role: Some(m.role), - parts: Some(vec![Part::from_text(m.text.clone())]), - }) - .collect(), - generation_config: None, - tools: None, - system_instruction: None, - safety_settings: None, - }; - - let response = self.generate_content(&request, model).await?; - - // Check for errors in the response. - let mut candidates = GeminiClient::collect_text_from_response(&response); - - match candidates.pop() { - Some(text) => Ok(Message::new(Role::Model, &text)), - None => Err(GeminiError::NoCandidatesError), - } - } - - fn collect_text_from_response(response: &GenerateContentResponseResult) -> Vec { - response - .candidates - .iter() - .filter_map(Candidate::get_text) - .collect::>() - } - pub async fn text_embeddings( &self, request: &TextEmbeddingRequest, diff --git a/src/dialogue.rs b/src/dialogue.rs deleted file mode 100644 index 8117124..0000000 --- a/src/dialogue.rs +++ /dev/null @@ -1,42 +0,0 @@ -use serde::{Deserialize, Serialize}; - -use crate::{error::Result, prelude::*}; - -#[derive(Clone, Debug, Serialize, Deserialize)] -pub struct Message { - pub role: Role, - pub text: String, -} - -impl Message { - pub fn new(role: Role, text: &str) -> Self { - Message { - role, - text: text.to_string(), - } - } -} - -#[derive(Clone, Debug, Serialize, Deserialize)] -pub struct Dialogue { - model: String, - messages: Vec, -} - -impl Dialogue { - pub fn new(model: &str) -> Self { - Dialogue { - model: model.to_string(), - messages: vec![], - } - } - - pub async fn do_turn(&mut self, gemini: &GeminiClient, message: &str) -> Result { - self.messages.push(Message::new(Role::User, message)); - let response = gemini - .prompt_conversation(&self.messages, &self.model) - .await?; - self.messages.push(response.clone()); - Ok(response) - } -} diff --git a/src/lib.rs b/src/lib.rs index 7ca3236..f26b63e 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,11 +1,9 @@ mod client; -mod dialogue; pub mod error; pub mod network; mod types; pub mod prelude { pub use crate::client::*; - pub use crate::dialogue::*; pub use crate::types::*; }