Tweaking OAI settings

This commit is contained in:
2023-07-06 23:47:06 -04:00
parent 81b5cb4b32
commit d8b95e5f2c
2 changed files with 23 additions and 14 deletions

View File

@@ -17,7 +17,8 @@ pub struct OAI {
pub client: reqwest::Client,
pub base_url: String,
pub max_attempts: i64,
pub token: String
pub token: String,
pub max_context_questions: i64
}
#[derive(Debug, Clone, Serialize, Deserialize)]
@@ -119,6 +120,7 @@ impl OAI {
let uri = format!("{}/chat/completions", self.base_url);
let body = serde_json::to_string(&request).unwrap();
trace!("Sending request to {}: {}", uri, body);
let value = match match self.client
.post(&uri)
.bearer_auth(&self.token)
@@ -168,28 +170,38 @@ pub async fn generate_response(ctx: &Context, msg: &Message, oai: &OAI, pool: &P
let parsed_content = msg.content.replace(bot_mention.as_str(), "");
debug!("Generating response for message: {}", msg.content);
let messages = vec![
let instructions = vec![
ChatCompletionMessage {
role: "system".to_string(),
content: "You are a helpful Discord bot named Siren.".to_string()
content: "You are a Discord user named Siren.".to_string()
},
ChatCompletionMessage {
role: "user".to_string(),
content: parsed_content.to_string()
role: "system".to_string(),
content: "Siren is an expert on Dungeons and Dragons.".to_string()
},
];
let user_request = ChatCompletionMessage {
role: "user".to_string(),
content: parsed_content.to_string()
};
let mut messages: Vec<ChatCompletionMessage> = vec![];
messages.extend(instructions);
// TODO: Get previous messages
messages.push(user_request);
let model = "gpt-3.5-turbo".to_string();
let request = ChatCompletionRequest {
model: model.to_string(),
messages,
temperature: None,
temperature: Some(0.5),
top_p: None,
n: None,
max_tokens: Some(2000),
presence_penalty: None,
frequency_penalty: None,
max_tokens: Some(1000),
presence_penalty: Some(0.6),
frequency_penalty: Some(0.0),
user: Some(msg.author.name.clone())
};
let response = match oai.get_request(request).await {
@@ -227,4 +239,4 @@ pub async fn generate_response(ctx: &Context, msg: &Message, oai: &OAI, pool: &P
if let Err(why) = msg.channel_id.say(&ctx.http, response).await {
error!("Cannot send message: {}", why);
}
}
}