enfer_core 0.1.2

Feakin is a architecture design and visual collaboration tool. This is the parser for Feakin.
Documentation
namespace inference {
    [Throws=SemanticError]
    Semantic init_semantic(sequence<u8> model, sequence<u8> tokenizer_data);
    [Throws=SemanticError]
    Semantic init_semantic_with_path([ByRef] string model_path, [ByRef] string tokenizer_path);
    Similarity get_cosine_similarity();
};

[Custom]
typedef sequence<f32> Embedding;

[Trait]
interface Similarity {
    float similarity_score([ByRef] Embedding set1, [ByRef] Embedding set2);
};

dictionary Metadata {
    record<string, string> metadata;
};

dictionary Document {
    string id;
    Metadata metadata;
    string text;
    Embedding vector;
};

[Error]
enum SemanticError {
  "TokenizeEncodeError",
  "TokenizeEncodeByteError",
  "ShapeError",
  "InitSessionBuilder",
  "InitSessionOptimization",
  "InitBuildOrtEnv",
  "InitSessionThreads",
  "InitModelReadError",
  "InitTokenizerReadError"
};

interface Semantic {
    [Throws=SemanticError]
    Embedding embed([ByRef] string sequence);
};

dictionary DocumentMatch {
    float score;
    string embedding_id;
    Embedding embedding;
    Document embedded;
};

interface InMemoryEmbeddingStore {
    [Name=new]
    constructor();

    string add(string id, Embedding embedding, Document document);
    sequence<string> add_all(sequence<Embedding> embeddings, sequence<Document> documents);
    sequence<DocumentMatch> find_relevant(Embedding reference_embedding, i8 max_results, float min_score);
};