Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions pcrDev.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"HashAlgorithm": "Sha384 { ... }",
"PCR0": "fdc4951ee70183c9f0c7026b81eb0137394c6574e37d985122c1ef5494161dc5aa63f7bbd0b6f2e70e125e8b5458956d",
"PCR0": "5d7a9d7ca6d06831f1f775a964db5e702e4e506c6aa7dfeeac2bb061b8ef3867a33e0e3a2b0bd51c8d2be0ed9e44072c",
"PCR1": "f004075c672258b499f8e88d59701031a3b451f65c7de60c81d09da2b0799272675481ec390527594dd7069cb7de59d7",
"PCR2": "5dba95979634d14bb13c8db247c104a8c1c82e7d700e58927a25231bb087b5ff104c97632ad526bd44de8f60cdf706c7"
"PCR2": "be47ba57251142fba5329e8cba203d5d09964a1e44ca36765c67711e567126a4052c8bb21fa2c2a52885fac11740233d"
}
7 changes: 7 additions & 0 deletions pcrDevHistory.json
Original file line number Diff line number Diff line change
Expand Up @@ -551,5 +551,12 @@
"PCR2": "5dba95979634d14bb13c8db247c104a8c1c82e7d700e58927a25231bb087b5ff104c97632ad526bd44de8f60cdf706c7",
"timestamp": 1772503491,
"signature": "LBrtuXh0jMDQDWOsrQdNyONNLq8aVoZTVgpmz4ud4qOoj1F50eJH5F/NCSpOohDkdsP9epEde9pq5IbXXXmrFzsfzE6jvs5vLfvT0jEb8hvXk39TwaaFPpNReWq9wGgl"
},
{
"PCR0": "5d7a9d7ca6d06831f1f775a964db5e702e4e506c6aa7dfeeac2bb061b8ef3867a33e0e3a2b0bd51c8d2be0ed9e44072c",
"PCR1": "f004075c672258b499f8e88d59701031a3b451f65c7de60c81d09da2b0799272675481ec390527594dd7069cb7de59d7",
"PCR2": "be47ba57251142fba5329e8cba203d5d09964a1e44ca36765c67711e567126a4052c8bb21fa2c2a52885fac11740233d",
"timestamp": 1772686625,
"signature": "nbI0TO6gz2gBCbSYQKrZCdYGhjhuRIWO+Rt6rIEtZOBQHUMleb3kpx4ozl/d0nW9rxuccWj69tsCHB5eqatkItor2IkVjp5DyyWZ//1QHAPgdWxCcuYEW8UO3xlKqbWC"
}
]
4 changes: 2 additions & 2 deletions pcrProd.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"HashAlgorithm": "Sha384 { ... }",
"PCR0": "ed0d2016c01ae9aa4612de6b910cb1b80b9beccb4cdb5194cbe63c5b40bb364c33491811376abfaec91b90b1daa9cb77",
"PCR0": "d7ff34da2a1b02a67e49d2de8ace4d4da90b45fc3367d57975aad0a71269945985f9c09c273bf88ee0726ad788e50a20",
"PCR1": "f004075c672258b499f8e88d59701031a3b451f65c7de60c81d09da2b0799272675481ec390527594dd7069cb7de59d7",
"PCR2": "a6acf1874b640281d65176a186f9f389b7f141970d9bec0075877ec4067d0d814b55f869e094b20e906896e1ef6e055b"
"PCR2": "7e8a97778ed06f6d8f677c18116feb8f32d301a57c5cd676bb5fe4003d842493930aab3bd6625b4645769dc7a845d61f"
}
7 changes: 7 additions & 0 deletions pcrProdHistory.json
Original file line number Diff line number Diff line change
Expand Up @@ -551,5 +551,12 @@
"PCR2": "a6acf1874b640281d65176a186f9f389b7f141970d9bec0075877ec4067d0d814b55f869e094b20e906896e1ef6e055b",
"timestamp": 1772503533,
"signature": "/dSYWuHMLW7GAqNGCFggie5wpHiKPNFAjEhQaLbqmAFkNv5lG3H+qaG3iapLXHpsHCnKjZRmil/0Uq44n5QGJI63T54QOLAoTyHGftDAKaUBD0DueAHCVqj1i4u/kSpu"
},
{
"PCR0": "d7ff34da2a1b02a67e49d2de8ace4d4da90b45fc3367d57975aad0a71269945985f9c09c273bf88ee0726ad788e50a20",
"PCR1": "f004075c672258b499f8e88d59701031a3b451f65c7de60c81d09da2b0799272675481ec390527594dd7069cb7de59d7",
"PCR2": "7e8a97778ed06f6d8f677c18116feb8f32d301a57c5cd676bb5fe4003d842493930aab3bd6625b4645769dc7a845d61f",
"timestamp": 1772686654,
"signature": "JG7jtCk8JsSbR4OWL7wF7cHAhyBM8cJ/tp5BNjFKdi0qYiXV0T7ady/tjzGNGer5mhNKxM8/Cmf+X7P7mnfnsFOyaoW3wB8f94XOvrGFlb703ou35BePosMO6db802FP"
}
]
17 changes: 16 additions & 1 deletion src/web/responses/context_builder.rs
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,16 @@ use crate::encrypt::decrypt_with_key;
use crate::tokens::{count_tokens, model_max_ctx};
use crate::DBConnection;
use serde_json::json;
use tracing::error;
use tracing::{debug, error};
use uuid::Uuid;

/// Default system prompt for gpt-oss models when no user-defined system prompt is set.
/// This model tends to produce excessive tables even for simple questions, so we
/// instruct it to avoid tables unless the user explicitly asks for them.
const GPT_OSS_DEFAULT_SYSTEM_PROMPT: &str =
"Do not format your responses as tables unless the user explicitly asks for a table. \
Prefer clear, concise prose or lists when presenting information.";

#[derive(Debug, Clone)]
pub struct ChatMsg {
pub role: &'static str,
Expand Down Expand Up @@ -46,6 +53,14 @@ pub fn build_prompt<D: DBConnection + ?Sized>(
let tok = default_instruction.prompt_tokens as usize;
system_tokens = tok;
Some((ROLE_SYSTEM, content, tok))
} else if model.starts_with("gpt-oss") {
// For gpt-oss models, inject a default system prompt to discourage excessive table usage
debug!(
"No user instructions set for gpt-oss model, using default anti-table system prompt"
);
let tok = count_tokens(GPT_OSS_DEFAULT_SYSTEM_PROMPT);
system_tokens = tok;
Some((ROLE_SYSTEM, GPT_OSS_DEFAULT_SYSTEM_PROMPT.to_string(), tok))
} else {
None
};
Expand Down