# genie-app

The `genie-app` tool is a robust test application that allows for general usage of the Genie library.
This tool exposes API-level commands and related utilities to enable a wide range of various configurations that more
closely emulates developers’ Genie SDK use cases.

DESCRIPTION:
    ------------
    Tool for text to text inference of LLMs using Genie.

    REQUIRED ARGUMENTS:
    -------------------
    -s or --script                        <FILE>      Script file that contains chronological sequence of script commands
    
    OPTIONAL ARGUMENTS:
    -------------------
    -h or --help                                      Show this help message and exit. Help message contains all currently supported script commands
    
    SCRIPT COMMANDS:
    ----------------
    
    dialog config create       CONFIG_NAME FILE.json
    dialog config bind profile CONFIG_NAME PROFILE_NAME
    dialog config bind log     CONFIG_NAME LOG_NAME
    dialog config free         CONFIG_NAME
    dialog create              DIALOG_NAME CONFIG_NAME
    dialog query               DIALOG_NAME ["PROMPT_STR"/PROMPT_FILE] [OUTPUT_FILE]
    dialog rewindQuery         DIALOG_NAME ["PROMPT_STR"/PROMPT_FILE] [OUTPUT_FILE]
    dialog embeddingQuery      DIALOG_NAME EMBEDDINGS_PATH EMBEDDINGS_TABLE_PATH [OUTPUT_FILE]
    dialog embeddingTokenQuery DIALOG_NAME EMBEDDINGS_PATH EMBEDDINGS_TABLE_PATH [OUTPUT_FILE]
    dialog tokenQuery          DIALOG_NAME TOKENS_PATH [OUTPUT_FILE]
    dialog batchQuery          DIALOG_NAME ["PROMPT_STR"/PROMPT_FILE] ["PROMPT_STR"/PROMPT_FILE]... [OUTPUT_DIR]
    dialog applyLora           DIALOG_NAME ENGINE_NAME ADAPTER_NAME
    dialog setLoraStrength     DIALOG_NAME ENGINE_NAME TENSOR_NAME_1 ALPHA_1 ...
    dialog reset               DIALOG_NAME
    dialog save                DIALOG_NAME PATH
    dialog restore             DIALOG_NAME PATH
    dialog setPerformance      DIALOG_NAME PERFORMANCE_MODE
    dialog free                DIALOG_NAME
    dialog getValue            DIALOG_NAME GENIE_DIALOG_PARAM
    dialog getTokenizer        DIALOG_NAME TOKENIZER_NAME
    dialog getSampler          DIALOG_NAME SAMPLER_NAME
    dialog setMaxNumTokens     DIALOG_NAME MAX_NUM_TOKENS
    dialog setStopSequence     DIALOG_NAME ["STOP_SEQUENCE_JSON_STR"/STOP_SEQUENCE_JSON_FILE]
    dialog setOemKey           DIALOG_NAME OEM_KEY
    dialog setPriority         DIALOG_NAME ENGINE_ROLE PRIORITY
    
    embedding config create       CONFIG_NAME FILE.json
    embedding config bind profile CONFIG_NAME PROFILE_NAME
    embedding config bind log     CONFIG_NAME LOG_NAME
    embedding config free         CONFIG_NAME
    embedding create              EMBEDDING_NAME CONFIG_NAME
    embedding generate            EMBEDDING_NAME ["PROMPT_STR"/PROMPT_FILE] [OUTPUT_FILE]
    embedding setPerformance      EMBEDDING_NAME PERFORMANCE_MODE
    embedding free                EMBEDDING_NAME
    
    log create LOG_NAME LEVEL [OUTPUT_FILE.txt]
    log free   LOG_NAME
    
    node config create         CONFIG_NAME FILE.json
    node config free           CONFIG_NAME
    node config bind profile   CONFIG_NAME PROFILE_NAME
    node config bind log       CONFIG_NAME LOG_NAME
    node create                NODE_NAME CONFIG_NAME
    node set text              NODE_NAME NODE_IO TEXT_PROMPT
    node set textFile          NODE_NAME NODE_IO TEXT_PROMPT_FILE_PATH
    node set image             NODE_NAME NODE_IO IMAGE_PATH
    node set embedding         NODE_NAME NODE_IO EMBEDDING_PATH
    node set textCallback      NODE_NAME NODE_IO
    node set embeddingCallback NODE_NAME
    node getSampler            NODE_NAME SAMPLER_NAME
    node applyLora             NODE_NAME ENGINE_NAME ADAPTER_NAME
    node setLoraStrength       NODE_NAME ENGINE_NAME TENSOR_NAME_1 ALPHA_1 ...
    node free                  NODE_NAME
    
    pipeline config create       CONFIG_NAME FILE.json
    pipeline config bind profile CONFIG_NAME PROFILE_NAME
    pipeline config bind log     CONFIG_NAME LOG_NAME
    pipeline config free         CONFIG_NAME
    pipeline create              PIPELINE_NAME CONFIG_NAME
    pipeline add                 PIPELINE_NAME NODE_NAME
    pipeline connect             PIPELINE_NAME PRODUCER_NODE_NAME PRODUCER_NODE_IO CONSUMER_NODE_NAME CONSUMER_NODE_IO
    pipeline execute             PIPELINE_NAME [OUTPUT_FILE]
    pipeline reset               PIPELINE_NAME
    pipeline save                PIPELINE_NAME PATH
    pipeline restore             PIPELINE_NAME PATH
    pipeline free                PIPELINE_NAME
    pipeline setOemKey           PIPELINE_NAME OEM_KEY
    pipeline setPriority         PIPELINE_NAME ENGINE_ROLE PRIORITY
    
    profile config create CONFIG_NAME FILE.json
    profile config free   CONFIG_NAME
    profile create        PROFILE_NAME [CONFIG_NAME]
    profile save          PROFILE_NAME [OUTPUT_FILE.json]
    profile free          PROFILE_NAME
    
    tokenizer encode         TOKENIZER_NAME INPUT_STRING [OUTPUT_FILE]
    tokenizer encodeFromFile TOKENIZER_NAME INPUT_FILE [OUTPUT_FILE]
    tokenizer decode         TOKENIZER_NAME TOKEN_SIZE TOKEN_ID_1 ... [OUTPUT_FILE]
    tokenizer decodeFromFile TOKENIZER_NAME TOKENS_FILE [OUTPUT_FILE]
    
    accuracy config create CONFIG_NAME FILE.json
    accuracy config free   CONFIG_NAME
    accuracy create        ACCURACY_NAME CONFIG_NAME [dialog/node] DIALOG_NAME
    accuracy compute       ACCURACY_NAME OUTPUT_FILE.json
    accuracy free          ACCURACY_NAME
    
    sampler config create   CONFIG_NAME FILE.json
    sampler config setParam CONFIG_NAME KEY VALUE
    sampler config free     CONFIG_NAME
    sampler create          SAMPLER_NAME CONFIG_NAME
    sampler applyConfig     SAMPLER_NAME CONFIG_NAME
    sampler sampleData      SAMPLER_NAME DATA.raw DATA_CONFIG.json [OUTPUT_FILE]
    sampler free            SAMPLER_NAME
    
    history
    history clear
    history save FILE
    
    version
    help
    script FILE
    loop [NUMBER OF ITERATIONS]
    endloop
    sleep [DURATION in ms]
    ls
    exit
    Copy to clipboard

See Tutorials for a reference example on how to use the `genie-app` tool.

## Script Statement to C API Mapping

In genie-app scripts, names are used to represent Genie C API handles. Generally, DIALOG\_NAME translates to a
GenieDialog\_Handle\_t, PIPELINE\_NAME to a GeniePipeline\_Handle\_t, and so on. If there is a CONFIG\_NAME argument, it would
correspond to a configuration handle to the respective API component. For example, the “dialog create” CONFIG\_NAME would
refer to a GenieDialogConfig\_Handle\_t.

The following genie-app script statements do not have a corresponding Genie C API function:

- help
- ls
- history
- script
- loop/endloop
- sleep
- exit

The following Genie C APIs are not yet supported in genie-app:

- GenieDialog\_signal
- GenieDialog\_setPriority
- GenieDialog\_setOemKey
- GenieDialog\_bindEngine
- GenieDialog\_getEngine
- GenieDialog\_getPerformancePolicy
- GenieEmbedding\_getPerformancePolicy
- GenieNode\_bindEngine
- GenieNode\_getEngine
- GenieNode\_getTokenizer
- GeniePipeline\_setPriority
- GeniePipeline\_setOemKey
- GenieSampler\_registerCallback
- GenieSampler\_registerUserDataCallback
- GenieEngineConfig\_createFromJson
- GenieEngineConfig\_bindProfiler
- GenieEngineConfig\_bindLogger
- GenieEngineConfig\_free
- GenieEngine\_create
- GenieEngine\_free

| Statement | Genie C API |
| --- | --- |
| dialog config create | GenieDialogConfig\_createFromJson |
| dialog config bind profile | GenieDialogConfig\_bindProfiler |
| dialog config bind log | GenieDialogConfig\_bindLogger |
| dialog config free | GenieDialogConfig\_free |
| dialog create | GenieDialog\_create |
| dialog query | GenieDialog\_query |
| dialog rewindQuery | GenieDialog\_query |
| dialog embeddingQuery | GenieDialog\_embeddingQuery |
| dialog embeddingTokenQuery | GenieDialog\_embeddingTokenQuery |
| dialog tokenQuery | GenieDialog\_tokenQuery |
| dialog applyLora | GenieDialog\_applyLora |
| dialog setLoraStrength | GenieDialog\_setLoraStrength |
| dialog reset | GenieDialog\_reset |
| dialog save | GenieDialog\_save |
| dialog restore | GenieDialog\_restore |
| dialog setPerformance | GenieDialog\_setPerformancePolicy |
| dialog free | GenieDialog\_free |
| dialog getTokenizer | GenieDialog\_getTokenizer |
| dialog getSampler | GenieDialog\_getSampler |
| dialog getValue | GenieDialog\_getValue |
| dialog setMaxNumTokens | GenieDialog\_setMaxNumTokens |
| dialog setStopSequence | GenieDialog\_setStopSequence |
| embedding config create | GenieEmbeddingConfig\_createFromJson |
| embedding config bind profile | GenieEmbeddingConfig\_bindProfiler |
| embedding config bind log | GenieEmbeddingConfig\_bindLogger |
| embedding config free | GenieEmbeddingConfig\_free |
| embedding create | GenieEmbedding\_create |
| embedding generate | GenieEmbedding\_generate |
| embedding setPerformance | GenieEmbedding\_setPerformancePolicy |
| embedding free | GenieEmbedding\_free |
| log create | GenieLog\_create |
| log free | GenieLog\_free |
| node config create | GenieNodeConfig\_createFromJson |
| node config bind profile | GenieNodeConfig\_bindProfiler |
| node config bind log | GenieNodeConfig\_bindLogger |
| node config free | GenieNodeConfig\_free |
| node create | GenieNode\_create |
| node set text | GenieNode\_setData |
| node set textFile | GenieNode\_setData |
| node set image | GenieNode\_setData |
| node set embedding | GenieNode\_setData |
| node set textCallback | GenieNode\_setTextCallback |
| node set embeddingCallback | GenieNode\_setEmbeddingCallback |
| node getSampler | GenieNode\_getSampler |
| node applyLora | GenieNode\_applyLora |
| node setLoraStrength | GenieNode\_setLoraStrength |
| node free | GenieNode\_free |
| pipeline config create | GeniePipelineConfig\_createFromJson |
| pipeline config bind profile | GeniePipelineConfig\_bindProfiler |
| pipeline config bind log | GeniePipelineConfig\_bindLogger |
| pipeline config free | GeniePipelineConfig\_free |
| pipeline create | GeniePipeline\_create |
| pipeline add | GeniePipeline\_addNode |
| pipeline connect | GeniePipeline\_connect |
| pipeline execute | GeniePipeline\_execute |
| pipeline reset | GeniePipeline\_reset |
| pipeline save | GeniePipeline\_save |
| pipeline restore | GeniePipeline\_restore |
| pipeline free | GeniePipeline\_free |
| profile config create | GenieProfileConfig\_createFromJson |
| profile config free | GenieProfileConfig\_free |
| profile create | GenieProfile\_create |
| profile save | GenieProfile\_getJsonData |
| profile free | GenieProfile\_free |
| tokenizer encode | GenieTokenizer\_encode |
| tokenizer encodeFromFile | GenieTokenizer\_encode |
| tokenizer decode | GenieTokenizer\_decode |
| tokenizer decodeFromFile | GenieTokenizer\_decode |
| accuracy config create | GenieAccuracyConfig\_createFromJson |
| accuracy config free | GenieAccuracyConfig\_free |
| accuracy create | GenieAccuracy\_createFromDialog<br><br><br>GenieAccuracy\_createFromNode |
| accuracy compute | GenieAccuracy\_compute |
| accuracy free | GenieAccuracy\_free |
| sampler config create | GenieSamplerConfig\_createFromJson |
| sampler config setParam | GenieSamplerConfig\_setParam |
| sampler config free | GenieSamplerConfig\_free |
| sampler create | GenieSampler\_create |
| sampler applyConfig | GenieSampler\_applyConfig |
| sampler sampleData | GenieSampler\_sampleData |
| sampler free | GenieSampler\_free |
| version | Genie\_getApiMajorVersion<br><br><br>Genie\_getApiMinorVersion<br><br><br>Genie\_getApiPatchVersion |

Last Published: Jun 04, 2026

Previous Topic
 
genie-t2e-run Next Topic

qnn-genai-transformer-composer