2

I am developing a chat bot using api.ai. Api ai has no built in solution for version control, does anyone know about a solution for versioning the chat bot and for managing multiple environments(dev,test,stage,prod)?

Thanks

Edit: I am looking for version control of the actual bot(intents, entities etc.).

Eliahu Horwitz
  • 499
  • 3
  • 17
  • 1
    There is no any way to do it programmatically, but you can export your agent manually and save in git repository or in other places. – Aren Hovsepyan Apr 16 '17 at 17:49
  • Thanks, the problem with this approach is it gets very messy to merge all the training data from the different environments, do you have any solution? – Eliahu Horwitz Apr 18 '17 at 06:59
  • Unfortunately they don't have any API which could give us agent as zip file and we could save it in git, so I guess only thing is manual saving. – Aren Hovsepyan Apr 18 '17 at 16:48
  • version control is really important thing, how they can ignore it on googles api.ai, they should must do something soon – Inzamam Malik Jul 22 '17 at 05:06

2 Answers2

1

Since api.ai has no IDE for git to do version control, so you cannot versioning chatbot directly, you need to use api.ai SDK’s IDE to do version control.

Such as if you use C# as the api.ai SDK, you can combine viusal studio with git to do version control. If you use ios SDK, you can combine xcode with git to do version control.

For intents, entities, logs etc, because they are stored on api.ai itself and no IDE is support to do version control. So they can’t be version controlled by git.

Community
  • 1
  • 1
Marina Liu
  • 36,876
  • 5
  • 61
  • 74
  • Let me rephrase that, my api ai backend is on nodejs, it is fully versioned. I want to version the actual bot, meaning the intents and entities from api ai. – Eliahu Horwitz Feb 21 '17 at 09:43
  • ok, for intents, entities, logs etc from api.ai can't be version controlled by git. – Marina Liu Feb 21 '17 at 09:54
0

This was asked a while ago so you've probably all organised yourselves by now, but this was also asked over on the API.ai forums recently and there is still no GIT way of doing this.

There are however youtube videos (see api forum for post, don't have it to hand) showing large projects being built in which the devs set up a sequence of agents and linked them by using the export-import feature to move intents and entities along the process and into the production version. They insist that the agent trains itself very quickly so nothing is lost during this transfer.

So I have a couple of conversationalist creating User Says and Text Responses based on the bot personality. Each one has their own agent to play with and are assigned intents to complete.

Then these are imported into Dev Bot where things are tested with the backend, other media responses and integration responses are added. Dev Bot exports itself as versions, and also into Test Bot where everyone gets to play with it. Test Bot does the same, exports to versions and

then when everyone is happy Test Bot gets exported into Prod Bot.

Its not ideal. Its not the way you would imagine a product owned by google to be forcing us to work, its a manual process, but it does sort of work.

macasas
  • 497
  • 6
  • 20