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).

How can I report an incident?

You can open a thread in our Technical Forum and our team will be pleased to help you. Describe how can we reproduce your problem with much detail as possible (code, expected result, comparative using other tools, etc.) and include any required file (e.g. images, audio, etc). It will be very helpful if you provide an XPZ file ready to reproduce. 
Also, feel free to contact our support team.

Troubleshooting


I get an error when I use a local multimedia file to be processed from a mobile application

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 different results 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 its 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 "Local URL is not allowed" error message

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 an "Unauthorized" (or "Not authorized") error message

Cause There is a problem trying to authorize the request made by GeneXusAI.
Some well-known causes:
1)  You did not set your provider service credentials properly
2)  You are using .NET Core generator in GeneXus16 Release (Upgrade 0) with a provider that requires username/password, but this authentication mechanism is not supported in that version.
3)  You are using GeneXusAI with IBM from different machines and the same access credentials. In this scenario, IBM responses with HTTP 403 error code because it expects every request is made from a unique machine.
4) You are using GeneXusAI from a mobile application (specifically, Audio, Image or Video submodules) and you have an authorization layer on the server-side (e.g. GAM) that denies uploading multimedia files in your server.
Solution  For the well-known causes:
1)  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.
2)  Migrate your Knowledge Base to GeneXus 16 Upgrade 1.
3)  Use your access credentials from a unique machine. Otherwise, create as many access credentials as machines are you using (e.g. credentials for development and production).
4)  Consider adding an authentication/authorization layer on your mobile app or 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.

I get an error saying I can't access to my provider's services due to be deprecated

Cause Your provider deprecates a service used by some GeneXusAI's task.
The error message could be an HTTP 500 error code response from your provider or a GXAI5100 error code with a "Deprecated" message indicating this situation.
Examples:
1) IBM's Visual Recognition service decommissioned as of September 2019.
  Documentation: IBM - Visual Recognition release ntoes
  Tasks affected: OCR, DetectFaces.
2)  SAP Leonardo services decommissioned as of June 2020 (deprecated as of August 2019).
  Documentation: SAP Leonardo Roadmap.
  Tasks affected: All.
Solution  If there is a replacement for the deprecated service, try to update your GeneXusAI module. Otherwise, since it is a deprecated feature by your provider, you must switch to another provider in order to use the affected tasks.

I get an error when referencing a local file in the 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 an "OpenSSL command failed. Is it installed?" error message

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.
Try typing the following in your command-line console.
> openssl version