GeneXusAI - FAQ and Troubleshooting

Official Content

FAQ

How can I debug GeneXusAI?

You can set the User Log level property and the Log output property to see messages logged by GeneXusAI.

How can I choose the appropriate provider for my business requirements?

Cloud providers usually have online demos on their official websites where you can test their services before using them. Also, every cloud provider has a section for pricing then you can compare the convenience of using one provider or another.

May I have any consideration when migrating my Knowledge Base to a higher GeneXus's upgrade?

Yes. It is highly recommended to upgrade your GeneXusAI module to be consistent with your GeneXus upgrade. GeneXusAI uses components from the GeneXus Core module and other built-in functionalities that may change between upgrades. In order to upgrade your GeneXusAI module navigate from Knowledge Manager > Manage Module References, select GeneXusAI from the list and click on the Update button (make sure you have the last version selected on the combo-box on the right dialog).

Troubleshooting


I get an error when I use a local file to be processed.

Cause Probably, you are working on GeneXus 16 Release (Upgrade 0). In this version, you can not call an AI task with a local file (e.g. by using Camera.TakePhoto(), PhotoGallery.ChooseImage(), or AudioRecorder.Stop() for Smart Devices, or FileUpload control for Web). This action will produce an error as follows:
.NET: Unable to cast object of type 'System.Net.FileWebRequest' to type 'System.Net.HttpWebRequest'
JAVA: An error occurred on the application server (404 - )
Solution  You must send the local file to the server and use a reference to it. See SAC#44045 for detailed information and solution.

I get an access error with my account credentials.

Cause You did not set your provider service credentials properly, producing a GXAI4000 or GXAI5000 error. For example, if you set your account credentials on IBM Watson (i.e. your username/password) the external provider will raise a GXAI5000 error indicating that your credentials are not valid. Also, if you set the Username/Password for a service when it requires an API Key, the task will raise a GXAI4000 error indicating that your credentials are missing.
Solution  You must provide the credentials given by the provider portal for the specific service you are using (not your access account credentials, neither any type of credentials -- it must be the specific service credentials). Refer to HowTo: Get credentials from a cloud provider for GeneXusAI for more information.

The result is different depending on the language I use

Cause GeneXusAI, in its early versions, uses the default models for each provider and may return different results depending on the language (or other input features). 
Solution  There is no solution until the external provider improves their default models or until GeneXusAI provides facilities for adding custom models. If you have doubts about selecting a provider, you can search for an online demo and test them before you use them. For example, if you are testing SentimentAnalysis, KeyPhrases and ExtractEntities tasks of GeneXusAI, you can test the online demo for IBM Natural Language Understanding service or Microsoft Text Analytics service.

I get a GXAI4020 error ("Local URL is not allowed")

Cause You are providing a local URL (on 'localhost' or '10.0.2.2') that the external provider cannot access (e.g. for sending you a notification once a video has been processed).
Solution  Deploy your application to a server that can be accessed from the Internet in order AI provider can execute the callback to your application, e.g. deploy your app to the cloud, this solution provides an appropriate environment for prototyping it (hosted on apps5.genexus.com or apps6.genexus.com).

I get a GXAI5001 error ("unauthorized" or "not authorized") using Net Core generator

Cause The service you are trying to use requires username/password credentials and this authorization mechanism is not supported on .NET Core generator yet.
Solution  Support added as of GeneXus 16 Upgrade 1.

I get a GXAI5000 error using OCR or DetectFaces procedure using IBM provider

Cause As of September 12 (2019), Text Recognition and Detect Faces were disabled from IBM's VIsual Recognition service.
Solution  Since it is a deprecated feature by IBM, you must switch to another provider in order to use any of these tasks.

I get a GXAI4000 when referencing a local file in provider's properties

Cause The web app cannot read your local file. The most common case is when you reference your service-account.json file when using the Custom module with Google as a provider. 
Solution  Copy your local file into the web app directory and update your provider's property with the new file path if that's the case.

I get GXAI5000 with detail 'OpenSSL command failed. Is it installed?'

Cause You are using a provider that requires signing certificates for authorization (e.g. Google).
Solution  You must install OpenSSL command-line tool in your environment (Windows/Linux) and ensure it is accessible by command-line typing 'openssl version' in your console.

I get a GXAI6003 with 401 code (Unauthorized) trying to use any task of the Audio, Image or Video submodules from a mobile application

Cause You are using some authentication/authorization layer on your server-side (e.g. GAM), but you are not using it on your mobile client-side. 
Solution  Alternatives:
1) Consider adding an authentication/authorization layer on your mobile app.
2) Upload the media you are trying to use with the Audio, Image or Video submodule's task, get its URL and then call the task specifying the media with its URL instead of the local file path.