use serde::Deserialize;
use std::collections::HashMap;
use serde_json::Value;
#[derive(Clone, Debug)]
pub struct ChatMessageContent {
pub content: String,
pub name: Option<String>,
pub additional_kwargs: HashMap<String, Value>,
}
#[derive(Clone, Debug)]
pub enum ChatMessage {
System(ChatMessageContent),
Human(ChatMessageContent),
AIMessage(ChatMessageContent),
ToolMessage(ChatMessageContent),
}
#[derive(Deserialize)]
pub struct TokenUsage {
pub prompt_tokens: usize,
pub completion_tokens: usize,
pub total_tokens: usize,
}