Only send Stop
event at end of google completion request (#29885)
I don't think this makes much of a difference in current use, but this more closely matches other providers and cleans up the "Response" section of eval markdown output Release Notes: - N/A
This commit is contained in:
parent
bb82d9ca82
commit
a0895a6ed8
1 changed files with 11 additions and 6 deletions
|
@ -507,10 +507,16 @@ impl GoogleEventMapper {
|
|||
events: Pin<Box<dyn Send + Stream<Item = Result<GenerateContentResponse>>>>,
|
||||
) -> impl Stream<Item = Result<LanguageModelCompletionEvent, LanguageModelCompletionError>>
|
||||
{
|
||||
events.flat_map(move |event| {
|
||||
events
|
||||
.map(Some)
|
||||
.chain(futures::stream::once(async { None }))
|
||||
.flat_map(move |event| {
|
||||
futures::stream::iter(match event {
|
||||
Ok(event) => self.map_event(event),
|
||||
Err(error) => vec![Err(LanguageModelCompletionError::Other(anyhow!(error)))],
|
||||
Some(Ok(event)) => self.map_event(event),
|
||||
Some(Err(error)) => {
|
||||
vec![Err(LanguageModelCompletionError::Other(anyhow!(error)))]
|
||||
}
|
||||
None => vec![Ok(LanguageModelCompletionEvent::Stop(self.stop_reason))],
|
||||
})
|
||||
})
|
||||
}
|
||||
|
@ -578,7 +584,6 @@ impl GoogleEventMapper {
|
|||
if wants_to_use_tool {
|
||||
self.stop_reason = StopReason::ToolUse;
|
||||
}
|
||||
events.push(Ok(LanguageModelCompletionEvent::Stop(self.stop_reason)));
|
||||
events
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue