snipsco / snips-nlu-rs

Snips NLU rust implementation
https://snips.ai
Other
340 stars 56 forks source link

Entity injection API #86

Closed adrienball closed 5 years ago

adrienball commented 5 years ago

Description This PR adds an API to inject entity values for both gazetteer builtin entities and custom entities.

use std::collections::HashMap;
use std::iter::FromIterator;

use injection::inject_entity_values;
use nlu_engine::SnipsNluEngine;

fn showcase_injection() {
    // values to inject
    let entity_values = HashMap::from_iter(vec![
        (
            "snips/musicArtist".to_string(),
            vec!["Artist 1".to_string(), "Artist 2".to_string()],
        ),
        (
            "snips/musicAlbum".to_string(),
            vec!["Thisisthebestalbum".to_string()],
        ),
        (
            "playlist".to_string(),
            vec!["jazzy jazzy".to_string()],
        )
    ]);

    // perform injection
    inject_entity_values("/path/to/existing/engine", &entity_values, true).unwrap();

    // use nlu engine with injected values
    let nlu_engine = SnipsNluEngine::from_path("/path/to/existing/engine").unwrap();
    nlu_engine.parse("Je voudrais ecouter la playlist jazzy jazzy", None).unwrap();
}