Skip to main content

tiny_loop/types/
llm.rs

1use super::message::AssistantMessage;
2use serde::{Deserialize, Serialize};
3
4/// Finish reason for LLM completion
5#[derive(Serialize, Deserialize, Debug, Clone)]
6#[serde(rename_all = "snake_case")]
7pub enum FinishReason {
8    Stop,
9    Length,
10    ToolCalls,
11    ContentFilter,
12    #[serde(untagged)]
13    Custom(String),
14}
15
16/// LLM response containing message and finish reason
17#[derive(Debug, Clone)]
18pub struct LLMResponse {
19    pub message: AssistantMessage,
20    pub finish_reason: FinishReason,
21}