tracing::warn!("Failed to encode Harmony tokens: {err}");
returnParserResult::default();
}
};
&encoded_tokens.to_vec()
}else{
token_ids
};
letparser:&mutStreamableParser=&mutself.parser;
letparser:&mutStreamableParser=&mutself.parser;
letmutnormal_delta=String::new();
letmutnormal_delta=String::new();
...
@@ -261,7 +286,6 @@ impl ReasoningParser for GptOssReasoningParser {
...
@@ -261,7 +286,6 @@ impl ReasoningParser for GptOssReasoningParser {
tracing::warn!("Shouldn't be delta content after in channel: {}",channel);
tracing::warn!("Shouldn't be delta content after in channel: {}",channel);
}
}
}
}
tracing::debug!("No deltas to return, returning empty result");
tracing::debug!("No deltas to return, returning empty result");
ParserResult::default()
ParserResult::default()
}
}
...
@@ -274,12 +298,8 @@ mod tests {
...
@@ -274,12 +298,8 @@ mod tests {
#[test]
#[test]
fntest_gpt_oss_reasoning_parser(){
fntest_gpt_oss_reasoning_parser(){
letmutparser=GptOssReasoningParser::new().expect("Failed to create parser");
letmutparser=GptOssReasoningParser::new().expect("Failed to create parser");
letenc=get_harmony_encoding()
.as_ref()
.expect("Failed to get encoding");
lettext="<|channel|>analysis<|message|>The user asks a simple factual question: capital of Brazil. The answer is Brasília. No additional explanation needed.<|end|><|start|>assistant<|channel|>final<|message|>The capital of Brazil is Brasília.";
lettext="<|channel|>analysis<|message|>The user asks a simple factual question: capital of Brazil. The answer is Brasília. No additional explanation needed.<|end|><|start|>assistant<|channel|>final<|message|>The capital of Brazil is Brasília.";
lettoken_ids=enc.tokenizer().encode_with_special_tokens(text);// Example token IDs
assert!(result.normal_text=="The capital of Brazil is Brasília.");
assert!(result.normal_text=="The capital of Brazil is Brasília.");
assert!(
assert!(
result.reasoning_text
result.reasoning_text
...
@@ -290,15 +310,17 @@ mod tests {
...
@@ -290,15 +310,17 @@ mod tests {
#[test]
#[test]
fntest_gpt_oss_reasoning_parser_streaming(){
fntest_gpt_oss_reasoning_parser_streaming(){
letmutparser=GptOssReasoningParser::new().expect("Failed to create parser");
letmutparser=GptOssReasoningParser::new().expect("Failed to create parser");
letenc=get_harmony_encoding()
letchunks=vec![
.as_ref()
"<|channel|>",
.expect("Failed to get encoding");
"analysis<|message|>The user asks a simple factual question: capital of Brazil.",
lettext="<|channel|>analysis<|message|>The user asks a simple factual question: capital of Brazil. The answer is Brasília. No additional explanation needed.<|end|><|start|>assistant<|channel|>final<|message|>The capital of Brazil is Brasília.";
" The answer is Brasília. No additional explanation needed.",
lettoken_ids=enc.tokenizer().encode_with_special_tokens(text);// Example token IDs
lettext="<|channel|>analysis<|message|>User asks: \"Hey, quick check: is everything up and running?\" We should check system health using the provided function get_system_health. Use function.<|end|><|start|>assistant<|channel|>commentary to=functions.get_system_health <|constrain|>json<|message|>{}";
lettext="<|channel|>analysis<|message|>User asks: \"Hey, quick check: is everything up and running?\" We should check system health using the provided function get_system_health. Use function.<|end|><|start|>assistant<|channel|>commentary to=functions.get_system_health <|constrain|>json<|message|>{}";
letenc=get_harmony_encoding()
letenc=get_harmony_encoding()
.as_ref()
.as_ref()
.expect("Failed to get encoding");
.expect("Failed to get encoding");
lettoken_ids=enc.tokenizer().encode_with_special_tokens(text);// Example token IDs