cohere_rust/api/
classify.rs1use std::collections::HashMap;
2
3use serde::{Deserialize, Serialize};
4
5use super::{EmbedModel, Truncate};
6
7#[derive(Serialize, Default, Debug)]
8pub struct ClassifyRequest<'input> {
9 #[serde(skip_serializing_if = "Option::is_none")]
11 pub model: Option<EmbedModel>,
12 #[serde(skip_serializing_if = "Option::is_none")]
14 pub preset: Option<String>,
15 pub inputs: &'input [String],
17 pub examples: &'input [ClassifyExample<'input>],
19 pub truncate: Option<Truncate>,
21}
22
23#[derive(Serialize, Debug)]
24pub struct ClassifyExample<'input> {
25 pub text: &'input str,
27 pub label: &'input str,
29}
30
31#[derive(Deserialize, Debug)]
32pub struct Confidence {
33 pub label: String,
35 pub confidence: f64,
37}
38
39#[derive(Deserialize, Debug, PartialEq)]
40pub struct LabelProperties {
41 pub confidence: f64,
42}
43
44#[derive(Deserialize, Debug, PartialEq)]
45pub struct Classification {
46 pub id: String,
47 pub prediction: String,
49 pub confidence: f32,
51 pub labels: HashMap<String, LabelProperties>,
53 pub input: String,
55}
56
57#[derive(Deserialize, Debug)]
58pub(crate) struct ClassifyResponse {
59 pub classifications: Vec<Classification>,
60}