{"id":19860332,"url":"https://github.com/danielgolabek/rasahost","last_synced_at":"2025-05-02T04:30:24.584Z","repository":{"id":50201953,"uuid":"151840229","full_name":"danielgolabek/RasaHost","owner":"danielgolabek","description":"ui and host for Rasa Nlu and Rasa Core","archived":false,"fork":false,"pushed_at":"2022-12-27T15:34:53.000Z","size":37037,"stargazers_count":58,"open_issues_count":6,"forks_count":28,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-04-06T22:11:20.477Z","etag":null,"topics":["chatbot","flask","nlu","python3","rasa","rasa-chat","rasa-conversations","rasa-core","rasa-logs","rasa-nlu","rasa-ui","vuejs"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/danielgolabek.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-10-06T12:59:52.000Z","updated_at":"2024-10-17T07:29:07.000Z","dependencies_parsed_at":"2023-01-31T05:30:53.475Z","dependency_job_id":null,"html_url":"https://github.com/danielgolabek/RasaHost","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/danielgolabek%2FRasaHost","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danielgolabek%2FRasaHost/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danielgolabek%2FRasaHost/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danielgolabek%2FRasaHost/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/danielgolabek","download_url":"https://codeload.github.com/danielgolabek/RasaHost/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251986607,"owners_count":21675950,"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":["chatbot","flask","nlu","python3","rasa","rasa-chat","rasa-conversations","rasa-core","rasa-logs","rasa-nlu","rasa-ui","vuejs"],"created_at":"2024-11-12T15:04:03.593Z","updated_at":"2025-05-02T04:30:20.710Z","avatar_url":"https://github.com/danielgolabek.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# RasaHost\n\nA user interfaces for Rasa NLU and Rasa Core, that simplify bot development.\n\n### Features\n- Editor for MD files (intents, stories, domain) in Rasa format\n  - Getting started is beyond easy, you just have to specify paths to your MD files. \n  - No migration is needed. The tool uses standard Rasa format.\n  - It does not have a dependency on the Rasa version.\n- Logs conversations\n  - All logs and conversations are saved in SQLite.\n  - You just have to create an agent and bind it to the host.\n  - The logging can be mixed with standard logging to files and console-like Rasa does by default.\n  - It does not have a dependency on the Rasa version.\n- Testing\n  - Chat control\n  - Memoization Policy visualization\n\n### Tech\n- python\n- flask\n- vuejs\n\n### Installation\n[https://pypi.org/project/rasa-host](https://pypi.org/project/rasa-host/)\n```python\npip install rasa-host\n```\n\n\n### Running\nRasa-Host does not have a dependency on Rasa(in fact does not have Rasa packages dependency) and will work with all versions.\n```python\nfrom rasa_core.interpreter import RasaNLUInterpreter\nfrom rasa_core.agent import Agent\ninterpreter = RasaNLUInterpreter('models/current/nlu')\nagent = Agent.load(\"models/current/dialogue\", interpreter=interpreter)\n\nfrom RasaHost import host\nhost.nlu_path = os.path.join(current_dir, \"data/nlu/\")\nhost.stories_path = os.path.join(current_dir, \"data/stories/\")\nhost.domain_path = os.path.join(current_dir, \"data/domain.yml\")\nhost.agent = agent\nif __name__ == '__main__':    \n    host.run()\n    # werkzeug  -  * Running on http://0.0.0.0:5005/ (Press CTRL+C to quit)\n    \n    # GET http://localhost:5005/conversations/daniel/respond?q={{message}}\n```\n\n\n\n## NLU - md files\n```python\nfrom RasaHost import host\nhost.nlu_path = os.path.join(current_dir, \"data/nlu/\")\nif __name__ == '__main__':    \n    host.run()\n```\n![NLU - md files](doc/nlu-md_files.PNG \"NLU - md files\")\n\n## Core - stories files\n```python\nfrom RasaHost import host\nhost.stories_path = os.path.join(current_dir, \"data/stories/\")\nif __name__ == '__main__':    \n    host.run()\n```\n![Core - md stories](doc/core-stories_files.PNG \"Core - stories files\")\n\n## Core - domain file\n```python\nfrom RasaHost import host\nhost.domain_path = os.path.join(current_dir, \"data/domain.yml\")\nif __name__ == '__main__':    \n    host.run()\n```\n![Core - domain file](doc/core-domain_file.PNG \"Core - domain file\")\n\n## Core - chat\nChat interface for testing Rasa. By default, does GET http://{{host}}/conversations/{{sender_id}}/respond?q={{message}}\n```python\nfrom RasaHost import host\nhost.agent = agent\nif __name__ == '__main__':    \n    host.run()\n```\n![Core - chat](doc/core-chat.PNG \"Core - chat\")\n\n## Core - conversations\nConversations are saved in SQLite.\n```python\nfrom RasaHost import host\nhost.agent = agent\nif __name__ == '__main__':    \n    host.run()\n```\n![Core - conversations](doc/core-conversations.PNG \"Core - conversations\")\n\n## Core - logs\nLogs are saved in SQLite.\n```python\nfrom RasaHost import host\nhost.agent = agent\nif __name__ == '__main__':    \n    host.run()\n```\n![Core - logs](doc/core-logs.PNG \"Core - logs\")\n\n## Core - analyze\nAnalyze intents, stories, and domains. Shows warnings and suggestions.\n```python\nfrom RasaHost import host\nhost.nlu_path = os.path.join(current_dir, \"data/nlu/\")\nhost.stories_path = os.path.join(current_dir, \"data/stories/\")\nhost.domain_path = os.path.join(current_dir, \"data/domain.yml\")\nif __name__ == '__main__':    \n    host.run()\n```\n![Core - analyze](doc/core-analyze.PNG \"Core - analyze\")\n\n## Core - memoization policy\nDecode memoization policy data.\n```python\nfrom RasaHost import host\nhost.memoization_policy_path = os.path.join(current_dir, \"models\\current\\dialogue\\policy_1_MemoizationPolicy\")\nif __name__ == '__main__':    \n    host.run()\n```\n![Core - memoization policy](doc/core-memoization_policy.PNG \"Core - memoization policy\")\n\n## Actions\nYou can also host actions, with or without the agent.\n```python\nfrom rasa_core_sdk.executor import ActionExecutor\nactionExecutor = ActionExecutor()\nactionExecutor.register_package('actions')\n\nfrom RasaHost import host\nhost.actionExecutor = actionExecutor\nif __name__ == '__main__':    \n    host.run()\n    # werkzeug  -  * Running on http://0.0.0.0:5005/ (Press CTRL+C to quit)\n    # POST http://localhost:5005/actions\n```\n\n## Agent with actions\nExample of running the app with agent and custom actions.\n```python\nfrom rasa_core.interpreter import RasaNLUInterpreter\nfrom rasa_core.agent import Agent\nfrom rasa_core import utils, server\nfrom rasa_core_sdk.executor import ActionExecutor\n#  #rasa-host.endpoints.yml\n#  action_endpoint:\n#  url: \"http://localhost:5005/actions\"\naction_endpoint_conf = utils.read_endpoint_config(\"rasa-host.endpoints.yml\", endpoint_type=\"action_endpoint\")\ninterpreter = RasaNLUInterpreter('models/current/nlu')\nagent = Agent.load(\"models/current/dialogue\", interpreter=interpreter, action_endpoint=action_endpoint_conf)\n\nactionExecutor = ActionExecutor()\nactionExecutor.register_package('actions')\n\nfrom RasaHost import host\nhost.nlu_path = os.path.join(current_dir, \"data/nlu/\")\nhost.stories_path = os.path.join(current_dir, \"data/stories/\")\nhost.domain_path = os.path.join(current_dir, \"data/domain.yml\")\nhost.agent = agent\nhost.actionExecutor = actionExecutor\nif __name__ == '__main__':    \n    host.run()\n    # werkzeug  -  * Running on http://0.0.0.0:5005/ (Press CTRL+C to quit)\n    \n    # GET http://localhost:5005/conversations/daniel/respond?q={{message}}\n    # POST http://localhost:5005/actions\n```\n\n## Channels\nSupports channels. All the conversations will be logged.\n```python\nfrom rasa_core.channels.botframework import BotFrameworkInput\ninput_channel = BotFrameworkInput(\n        app_id=\"\",\n        app_password=\"\"\n)\n\nfrom RasaHost import host\nhost.agent = agent\nhost.channels = [input_channel]\nif __name__ == '__main__':    \n    host.run()\n```\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdanielgolabek%2Frasahost","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdanielgolabek%2Frasahost","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdanielgolabek%2Frasahost/lists"}