Skip to main content

xberg_gliner/
lib.rs

1//! Span-mode GLiNER ONNX inference.
2//!
3//! This crate vendors the span-mode preprocessing and decoding path from the
4//! `gline-rs` project and replaces its pipeline wrapper with direct `ort`
5//! session management.
6
7#![deny(clippy::print_stdout, clippy::print_stderr)]
8#![cfg_attr(test, allow(clippy::print_stdout, clippy::print_stderr))]
9
10#[cfg(feature = "candle")]
11pub mod candle;
12mod config;
13pub mod decode;
14#[cfg(feature = "ort-backend")]
15mod engine;
16mod error;
17mod input;
18#[cfg(feature = "ort-backend")]
19mod preprocess;
20#[cfg(feature = "ort-backend")]
21mod session;
22// Only used by the ORT engines (engine.rs, preprocess.rs); dead weight
23// without ort-backend. ~keep
24#[cfg(feature = "ort-backend")]
25mod splitter;
26#[cfg(feature = "ort-backend")]
27mod tensor;
28#[cfg(feature = "ort-backend")]
29mod tokenizer;
30// The V2 (GLiNER2) pipeline is only reachable through the ONNX engine or
31// the candle backend; without either there is no consumer for it. ~keep
32#[cfg(any(feature = "ort-backend", feature = "candle"))]
33mod v2;
34
35pub use config::{Parameters, RuntimeConfig};
36pub use decode::{Span, SpanOutput};
37#[cfg(feature = "ort-backend")]
38pub use engine::Gliner;
39pub use error::{GlinerError, Result};
40#[cfg(feature = "ort-backend")]
41pub use input::TextInput;
42pub use input::Token;
43#[cfg(feature = "ort-backend")]
44pub use session::{INPUT_NAMES, OUTPUT_NAMES};
45#[cfg(feature = "ort-backend")]
46pub use v2::engine::Gliner2;
47#[cfg(feature = "ort-backend")]
48pub use v2::session::{INPUT_NAMES_V2, OUTPUT_NAMES_V2};
49
50// The V2 prompt-encoding surface is shared with the `candle` module but is
51// not part of the crate's public API. ~keep
52#[cfg(feature = "candle")]
53pub(crate) use v2::preprocess::{V2Encoded, encode_v2};
54#[cfg(feature = "candle")]
55pub(crate) use v2::splitter::V2Splitter;
56#[cfg(feature = "candle")]
57pub(crate) use v2::tokenizer::V2Tokenizer;
58
59#[cfg(feature = "ort-backend")]
60pub(crate) use decode::EntityContext;
61#[cfg(feature = "ort-backend")]
62pub(crate) use preprocess::EncodedInput;
63
64#[cfg(all(test, feature = "ort-backend"))]
65mod tests;