pub mod openai{
use fieri::{Client, Error};
use fieri::completion::{Completion, CompletionParamBuilder, create};
pub struct OpenAICredentials{
pub input : String, pub end_user : String, max_token : i32, }
pub fn new(input : String, end_user : String, max_token : i32) -> OpenAICredentials{
OpenAICredentials{
input,
end_user,
max_token
}
}
impl OpenAICredentials{
pub async fn openai_text_wrapper(&mut self) -> Result<Completion, Error>{
let client_fieri : _ = Client::new();
let parameters : _ = CompletionParamBuilder::new("davinci")
.prompt(self.input.clone())
.temperature(0.5)
.user(self.end_user.clone())
.build()?;
let response : _ = create(&client_fieri, ¶meters);
response.await
}
pub async fn openai_openend(&mut self) -> Result<Completion, Error>{
let client_fieri : _ = Client::new();
let parameters : _ = CompletionParamBuilder::new("text-Davinci-003")
.prompt(self.input.clone())
.top_p(0.92)
.max_tokens(self.max_token)
.temperature(0.5)
.frequency_penalty(0.5)
.presence_penalty(0.5)
.user(self.end_user.clone())
.build()?;
let response : _ = create(&client_fieri, ¶meters);
response.await
}
}
}