abu-base 0.2.0

Core data structures for chat and embeddings.
Documentation
use crate::common::Usage;

use super::message::*;
use serde::Deserialize;
use strum::{Display, EnumString, EnumVariantNames};

#[derive(Debug, Clone, Deserialize)]
pub struct ChatResponse {
    pub message: AssistantMessage,
    pub finish_reason: FinishReason,
    pub usage: Usage,
}

#[derive(Debug, Clone, Copy, Default, PartialEq, Eq, Deserialize, EnumString, Display, EnumVariantNames)]
#[serde(rename_all = "snake_case")]
pub enum FinishReason {
    #[default]
    Stop,
    Length,
    ContentFilter,
    ToolCalls,
}