reasoninglayer 0.2.1

Rust client SDK for the Reasoning Layer API
Documentation
//! Image extraction DTOs.

use std::collections::BTreeMap;

use serde::{Deserialize, Serialize};

#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct ImageExtractedEntityDto {
    pub confidence: f64,
    #[serde(default)]
    pub features: BTreeMap<String, serde_json::Value>,
    pub local_id: String,
    #[serde(default)]
    pub mentions: Vec<String>,
    pub sort: String,
}

#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct ImageExtractedRelationDto {
    pub confidence: f64,
    pub relation: String,
    pub source: String,
    pub target: String,
}

#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct ImageExtractionStatsDto {
    pub entities_extracted: u64,
    pub processing_time_ms: u64,
    pub relations_extracted: u64,
    pub sorts_created: u64,
    pub sorts_reused: u64,
}

#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct ImageSuggestedSortDto {
    #[serde(default)]
    pub features: Vec<String>,
    pub name: String,
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub rationale: Option<String>,
}

#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct ExtractImageRequest {
    pub filename: String,
    pub image: String,
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub instruction: Option<String>,
    pub owner_id: String,
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub persist: Option<bool>,
}

#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct ExtractImageResponse {
    #[serde(default)]
    pub entities: Vec<ImageExtractedEntityDto>,
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub error: Option<String>,
    #[serde(default)]
    pub relations: Vec<ImageExtractedRelationDto>,
    #[serde(default)]
    pub stats: ImageExtractionStatsDto,
    pub success: bool,
    #[serde(default)]
    pub suggested_sorts: Vec<ImageSuggestedSortDto>,
    #[serde(default)]
    pub term_ids: Vec<String>,
}