feat: log user message
This commit is contained in:
@@ -345,7 +345,7 @@ impl OllamaProvider {
|
||||
pub async fn chat_completions_stream(
|
||||
&self,
|
||||
body: &api::ChatRequest,
|
||||
) -> Result<ReceiverStream<Result<Event, OllamaError>>, OllamaError> {
|
||||
) -> Result<ReceiverStream<Result<api::ChatCompletionChunk, OllamaError>>, OllamaError> {
|
||||
let url = format!("{}/api/chat", self.base_url);
|
||||
|
||||
let (messages, model) = self.extract_chat_params(body)?;
|
||||
@@ -399,6 +399,18 @@ impl OllamaProvider {
|
||||
Err(_) => continue,
|
||||
};
|
||||
|
||||
let usage = if parsed.done {
|
||||
Some(api::Usage {
|
||||
prompt_tokens: parsed.prompt_eval_count.unwrap_or(0) as u32,
|
||||
completion_tokens: parsed.eval_count.unwrap_or(0) as u32,
|
||||
total_tokens: (parsed.prompt_eval_count.unwrap_or(0)
|
||||
+ parsed.eval_count.unwrap_or(0))
|
||||
as u32,
|
||||
})
|
||||
} else {
|
||||
None
|
||||
};
|
||||
|
||||
let event = api::ChatCompletionChunk {
|
||||
id: stream_id.clone(),
|
||||
object: "chat.completion.chunk".to_string(),
|
||||
@@ -414,14 +426,12 @@ impl OllamaProvider {
|
||||
None
|
||||
},
|
||||
}],
|
||||
usage,
|
||||
};
|
||||
|
||||
let event_data = serde_json::to_string(&event).unwrap_or_default();
|
||||
|
||||
let _ = tx.send(Ok(Event::default().data(event_data))).await;
|
||||
let _ = tx.send(Ok(event)).await;
|
||||
|
||||
if parsed.done {
|
||||
let _ = tx.send(Ok(Event::default().data("[DONE]"))).await;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user