abu_base/chat/
response.rs1use crate::common::Usage;
2
3use super::message::*;
4use serde::Deserialize;
5use strum::{Display, EnumString, EnumVariantNames};
6
7#[derive(Debug, Clone, Deserialize)]
8pub struct ChatResponse {
9 pub message: AssistantMessage,
10 pub finish_reason: FinishReason,
11 pub usage: Usage,
12}
13
14#[derive(Debug, Clone, Copy, Default, PartialEq, Eq, Deserialize, EnumString, Display, EnumVariantNames)]
15#[serde(rename_all = "snake_case")]
16pub enum FinishReason {
17 #[default]
18 Stop,
19 Length,
20 ContentFilter,
21 ToolCalls,
22}