Cant load custom slot in production

Hi evereyone,

I have some custom slots in my rasa project. These slots are saved in the different folder for example: CustomDomain.SubfieldSlot.SubfieldSlot

In local rasa x and local rasa it is working great, when I load to rasa x using docker deployment and then integrating with my domain, I get the domain without the special slots. the docker logs of the rasa x are :slight_smile:Failed to find slot type. my question is how can I load the custom slot to the rasa X production? or is it not possibale and I must deploy rasa and rasa x in different servers?

Thx

1 Like

Hi @GalLellouche, Did you mount your custom slot code to any of the containers? If not, that would be why it can’t find the code.

It would also be great if you could give the full traceback of the different errors in rasa-x and/or rasa-production/worker containers :slightly_smiling_face:

Hi, I did mount it into the rasa-x container and still it wrote that the path doesn’t exist . the mounting : in the volume part I added ./customDomain:/app/customDomain for the logs, all that was written is that the slot couldn’t be find( If you think the logs is important I will make the same issue again but currently I changed the slot type to keep working on the bot) Also it seems that there are few issues in the rasa-x importing - maybe it’s all an issue of PYTHONPATH?

Usually the python path should not be a problem, so long as the slot mapping is okay. Your volume mount should be on the rasa containers (production and worker) as those are the ones that will use the rasa code! Try adding it to those containers, that might help.

Ok, I will try adding to this two and post an update Thx!

1 Like

@GalLellouche did you manage to get it working?

Not yet, The directory with the code is in the volume , and yet the domain cant find the path to this class… couldn’t find any example that worked for anyone I will keep try, and post when I wil solve it

@GalLellouche if you’d like help, you can email support@rasa.com with subject “deployment help” and we can get someone of a call to help you deploy your custom slot :slight_smile:

Sounds good I will do it and post the solution

I was running into the same issue as well. Mounting the custom slot code to the rasa-x container wouldn’t be an optimal solution because it would mean maintaining two versions of the code: the custom code in the target deployment repository as well as in the rasa-x repository. I found a workaround that indeed required setting the PYTHONPATH variable to the git repo location within the rasa-x container. I had to create a custom Dockerfile with a build argument containing the repo path that creates the repo directory (e.g., /app/git/1) during the build, then adds it to the PYTHONPATH. Another possible solution would be to have GitService.set_repository update the sys.path when called.