com.innovaphone.assistant

This API is used for communication with a large language model (LLM) and text translation (HTML payload is also supported) against an externally hosted service.

Messages

Question
Translate
GetTargetLanguages
DetectLanguage

Question

Transfers the specified question to the LLM in order to receice a response.

{
    mt:   "Question",
    messages: [{ role: "user", content: "The actual question comes here..." }]
}

Parameters

string mtmessage type [mandatory]
array of objects messagesan array of messages to be transfered [mandatory]
string temperaturea number between 0 and 1 which determines the creativity of the response (defaults to 0) [optional]

Response

{
    mt:        "QuestionResult",
    message:   { role: "assistant", content: "The answer to your question is....!" }
}

Parameters

string mtmessage type (is "QuestionResult")
object messagethe response object of the LLM

Error Response

If you run into an error you will receive the following response.
{
    mt:    "QuestionResult",
   message:   { content: "The actual error message" },
    error: true
}

Parameters

string mtmessage type (is "TranslateResult")
string objectEnglish error message which can be shown to the User
bool errorlabelling whether error was send. Only sent if true [optional]

Translate

Translate a specific payload to requested language.

{
    mt:   "Translate",
    html: "Payload we want translated",
    langDst: "de"
}

Parameters

string mtmessage type [mandatory]
string htmlpayload to be translated [mandatory]
string langSrc2 letter source language. If not set, the language will be detected. [optional]
string langDst2 letter target language. If not set, the current myApps language will be used. [optional]

If you want to exclude some content from translation, you can wrap them in an HTML tag with the parameter translate="no". (Example: "Bananas are <span translate="no">yellow</span> fruits.)

Response

{
    mt:        "TranslateResult",
    html:      "Nutzdaten, die übersetzt werden sollen",
    langSrc:   "en"
    langDst:   "de"
    unchanged: false
}

Parameters

string mtmessage type (is "TranslateResult")
string htmltranslated payload
string langSrc2 letter source language
string langDst2 letter target language
bool unchangedlabelling if the payload in html have been changed

Error Response

If you run into an error you will receive the following response.
{
    mt:    "TranslateResult",
    html:  "Error: [English error message which can be shown to the User]",
    error: true
}

Parameters

string mtmessage type (is "TranslateResult")
string htmlEnglish error message which can be shown to the User
bool errorlabelling whether error was send. Only sent if true [optional]

GetTargetLanguages

Get all possible target languages.

{
    mt:   "GetTargetLanguages"
}

Parameters

string mtmessage type (is "GetTargetLanguages")

Response

{
    mt:        "GetTargetLanguagesResult",
    languages: [
        { language: "bg", name: "Bulgarian" },
        { language: "cs", name: "Czech" },
        { language: "da", name: "Danish" },
        { language: "de", name: "German" },
        { language: "el", name: "Greek" },
        ...
    ]
}

Parameters

string mtmessage type (is "GetTargetLanguagesResult")
array languagesarray of all supported target languages

DetectLanguage

Detect langiage from given string.

{
    mt:   "DetectLanguage",
    html: "Payload that should be detected"
}

Parameters

string mtmessage type (is "DetectLanguage")
string htmlpayload

Response

{
    mt:   "DetectLanguageResult",
    lang: "en"
}

Parameters

string mtmessage type (is "DetectLanguageResult")
array lang2-letter detected language, empty if no match
bool errorlabelling whether error was send. Only sent if true [optional]

Example

You can consume the API com.innovaphone.assistant and send request to it. Inside the callback you can access the response text via recv.msg.message.content


    var assistantApi = start.consumeApi("com.innovaphone.assistant");
    let messages = [];
    messages.push({ role: "system", content: "Answer in the language of the input!" });
    messages.push({ role: "user", content: "What do you know about innovaphone?" });

    assistantApi.sendSrc({ mt: "Question", messages: messages }, assistantApi.providers[0], (recv) => {
        if (recv.msg?.message?.content) {
            console.log('response text: ' + recv.msg.message.content);
        }
    });