scirs2_text/huggingface_compat/pipelines/
mod.rs

1//! Hugging Face compatible pipelines for various NLP tasks
2//!
3//! This module provides pipeline implementations that match the
4//! Hugging Face Transformers library API for common NLP tasks.
5
6mod classification;
7mod extraction;
8mod fill_mask;
9mod generation;
10mod question_answering;
11mod summarization;
12mod token_classification;
13mod translation;
14
15pub use classification::*;
16pub use extraction::*;
17pub use fill_mask::*;
18pub use generation::*;
19pub use question_answering::*;
20pub use summarization::*;
21pub use token_classification::*;
22pub use translation::*;
23
24/// HF-compatible pipeline types
25#[derive(Debug)]
26pub enum HfPipeline {
27    /// Text classification pipeline
28    TextClassification(TextClassificationPipeline),
29    /// Feature extraction pipeline
30    FeatureExtraction(FeatureExtractionPipeline),
31    /// Fill mask pipeline
32    FillMask(FillMaskPipeline),
33    /// Zero-shot classification pipeline
34    ZeroShotClassification(ZeroShotClassificationPipeline),
35    /// Question answering pipeline
36    QuestionAnswering(QuestionAnsweringPipeline),
37    /// Text generation pipeline
38    TextGeneration(TextGenerationPipeline),
39    /// Summarization pipeline
40    Summarization(SummarizationPipeline),
41    /// Translation pipeline
42    Translation(TranslationPipeline),
43    /// Token classification pipeline
44    TokenClassification(TokenClassificationPipeline),
45}
46
47/// Classification result for text classification tasks
48#[derive(Debug, Clone)]
49pub struct ClassificationResult {
50    /// Predicted label
51    pub label: String,
52    /// Confidence score
53    pub score: f64,
54}
55
56/// Fill mask result for masked language modeling
57#[derive(Debug, Clone)]
58pub struct FillMaskResult {
59    /// Token ID
60    pub token: usize,
61    /// Token string
62    pub token_str: String,
63    /// Sequence with token filled in
64    pub sequence: String,
65    /// Score/probability
66    pub score: f64,
67}
68
69/// Question answering result
70#[derive(Debug, Clone)]
71pub struct QuestionAnsweringResult {
72    /// Answer text
73    pub answer: String,
74    /// Start position in context
75    pub start: usize,
76    /// End position in context
77    pub end: usize,
78    /// Confidence score
79    pub score: f64,
80}
81
82/// Text generation result
83#[derive(Debug, Clone)]
84pub struct TextGenerationResult {
85    /// Generated text
86    pub generated_text: String,
87    /// Generation score/likelihood
88    pub score: Option<f64>,
89}
90
91/// Summarization result
92#[derive(Debug, Clone)]
93pub struct SummarizationResult {
94    /// Summary text
95    pub summary_text: String,
96}
97
98/// Translation result
99#[derive(Debug, Clone)]
100pub struct TranslationResult {
101    /// Translated text
102    pub translation_text: String,
103}
104
105/// Token classification result
106#[derive(Debug, Clone)]
107pub struct TokenClassificationResult {
108    /// Entity group (e.g., "PERSON", "ORG")
109    pub entity_group: String,
110    /// Confidence score
111    pub score: f64,
112    /// Word/token
113    pub word: String,
114    /// Start character position
115    pub start: Option<usize>,
116    /// End character position
117    pub end: Option<usize>,
118}