{"id":19417998,"url":"https://github.com/americanexpress/gabby","last_synced_at":"2025-04-24T13:34:20.454Z","repository":{"id":66186971,"uuid":"97272639","full_name":"americanexpress/gabby","owner":"americanexpress","description":"Gabby provides a way to interface with several chatbot providers through \"adapters\". Adapters interface with different services such as api.ai and Watson Conversation.","archived":false,"fork":false,"pushed_at":"2017-08-04T23:14:19.000Z","size":107,"stargazers_count":7,"open_issues_count":0,"forks_count":5,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-04-03T06:11:11.329Z","etag":null,"topics":["ai","chatbot","conversation"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/americanexpress.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-07-14T21:04:56.000Z","updated_at":"2020-01-14T23:54:24.000Z","dependencies_parsed_at":"2023-02-22T17:45:55.982Z","dependency_job_id":null,"html_url":"https://github.com/americanexpress/gabby","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/americanexpress%2Fgabby","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/americanexpress%2Fgabby/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/americanexpress%2Fgabby/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/americanexpress%2Fgabby/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/americanexpress","download_url":"https://codeload.github.com/americanexpress/gabby/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250636569,"owners_count":21463101,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","chatbot","conversation"],"created_at":"2024-11-10T13:12:21.350Z","updated_at":"2025-04-24T13:34:20.417Z","avatar_url":"https://github.com/americanexpress.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Gabby\n\u003e Gabby provides a way to interface with several chatbot providers through \"adapters\". Adapters interface with different services such as api.ai and Watson Conversation.\n \n## Why\nMany services provide a user interface for creating your chatbot but when you start to bring more developers into the picture it starts to fall apart. Gabby provides a way to have your chatbot be code/config driven as well as platform agnostic. Having your chatbot as code/config also allows you to version it using source control which makes upgrades and rollbacks a breeze.\n \n## Examples\n[More complete/complex examples](https://github.com/americanexpress/gabby/tree/master/examples)\n##### Without JSX config:\n```javascript\nimport Gabby from 'gabby';\nimport WatsonAdapter from 'gabby-adapter-watson';\n\nconst routes = {\n  children: [\n    {\n      name: 'hello',\n      when: '#greeting',\n      handler: Hello,\n      children: [],\n    },\n    {\n      name: 'goodbye',\n      when: '#farewell',\n      handler: Goodbye,\n      children: [],\n    }\n  ],\n};\n\nconst gabby = new Gabby({\n  adapter: new WatsonAdapter({\n    name: 'my sweet chatbot',\n    username: 'xxx',\n    password: 'xxx',\n    workspaceId: 'xxx',\n    logger: console,\n  }),\n  routes,\n  intents: [\n    {\n      name: 'greeting',\n      phrases: ['hello', 'hi', 'what\\'s up'],\n    },\n    {\n      name: 'farewell',\n      phrases: ['goodbye', 'bye', 'see you tomorrow'],\n    },\n  ],\n  logger: console\n});\n\ngabby.applyChanges()\n  .then(() =\u003e {\n    console.log('all ready to go!');\n    const { msg } = await gabby.sendMessage('hello');\n    // send msg to user\n  });\n```\n \n##### With JSX config:\n```javascript\nimport Gabby, {\n  parseReactRoutes,\n  Root,\n  Route\n} from 'gabby';\nimport WatsonAdapter from 'gabby-adapter-watson';\n\nconst routes = (\n  \u003cRoot\u003e\n    \u003cRoute name=\"hello\" when=\"#greeting\" component={Hello} /\u003e\n    \u003cRoute name=\"farewell\" when=\"#farewell\" component={Goodbye} /\u003e\n  \u003c/Root\u003e\n);\n\nconst gabby = new Gabby({\n  adapter: new WatsonAdapter({\n    name: 'my sweet chatbot',\n    username: 'xxx',\n    password: 'xxx',\n    workspaceId: 'xxx',\n    logger: console,\n  }),\n  routes,\n  intents: [\n    {\n      name: 'greeting',\n      phrases: ['hello', 'hi', 'what\\'s up'],\n    },\n    {\n      name: 'farewell',\n      phrases: ['goodbye', 'bye', 'see you tomorrow'],\n    },\n  ],\n  logger: console\n});\n\ngabby.applyChanges()\n  .then(() =\u003e {\n    console.log('all ready to go!');\n    const { msg } = await gabby.sendMessage('hello');\n    // send msg to user\n  });\n```\n \n## Contributing\nWe welcome Your interest in the American Express Open Source Community on Github. Any Contributor to any Open Source Project managed by the American Express Open Source Community must accept and sign an Agreement indicating agreement to the terms below. Except for the rights granted in this Agreement to American Express and to recipients of software distributed by American Express, You reserve all right, title, and interest, if any, in and to Your Contributions. Please [fill out the Agreement](https://cla-assistant.io/americanexpress/).\n \n## License\nAny contributions made under this project will be governed by the [Apache License 2.0](https://github.com/americanexpress/gabby/blob/master/LICENSE.txt).\n \n## Code of Conduct\nThis project adheres to the [American Express Community Guidelines](https://github.com/americanexpress/gabby/wiki/Code-of-Conduct).\nBy participating, you are expected to honor these guidelines.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Famericanexpress%2Fgabby","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Famericanexpress%2Fgabby","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Famericanexpress%2Fgabby/lists"}