Unverified Commit e6de33f8 authored by Page's avatar Page Committed by GitHub
Browse files

fix: have frontend populate "stop" field in OpenAI request (#4782)

parent bd4366d0
......@@ -238,7 +238,11 @@ impl OpenAIStopConditionsProvider for NvCreateCompletionRequest {
}
fn get_stop(&self) -> Option<Vec<String>> {
None
use dynamo_async_openai::types::Stop;
self.inner.stop.as_ref().map(|s| match s {
Stop::String(s) => vec![s.clone()],
Stop::StringArray(arr) => arr.clone(),
})
}
fn nvext(&self) -> Option<&NvExt> {
......@@ -494,4 +498,36 @@ mod tests {
assert_eq!(output_options.skip_special_tokens, Some(skip_value));
}
}
#[test]
fn test_stop() {
let null_stop = json!({
"model": "test-model",
"prompt": "Hello, world!"
});
let request: NvCreateCompletionRequest =
serde_json::from_value(null_stop).expect("Failed to deserialize request");
assert_eq!(request.get_stop(), None);
let one_stop = json!({
"model": "test-model",
"prompt": "Hello, world!",
"stop": "foo"
});
let request: NvCreateCompletionRequest =
serde_json::from_value(one_stop).expect("Failed to deserialize request");
assert_eq!(request.get_stop(), Some(vec!["foo".to_string()]));
let many_stops = json!({
"model": "test-model",
"prompt": "Hello, world!",
"stop": ["foo", "bar"]
});
let request: NvCreateCompletionRequest =
serde_json::from_value(many_stops).expect("Failed to deserialize request");
assert_eq!(
request.get_stop(),
Some(vec!["foo".to_string(), "bar".to_string()])
);
}
}
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment