rust_agent/models/
message.rs

1// Message type definitions
2use serde::Deserialize;
3use std::collections::HashMap;
4use serde_json::Value;
5
6// Message content structure
7#[derive(Clone, Debug)]
8pub struct ChatMessageContent {
9    pub content: String,
10    pub name: Option<String>,
11    // OpenAI API tool_call_id parameter
12    pub additional_kwargs: HashMap<String, Value>,
13}
14
15// Simplified message type system (aligned with langchain-core)
16#[derive(Clone, Debug)]
17pub enum ChatMessage {
18    System(ChatMessageContent),
19    Human(ChatMessageContent),
20    AIMessage(ChatMessageContent),
21    ToolMessage(ChatMessageContent),
22}
23
24// Token usage statistics
25#[derive(Deserialize)]
26pub struct TokenUsage {
27    pub prompt_tokens: usize,
28    pub completion_tokens: usize,
29    pub total_tokens: usize,
30}