{"id":26090419,"url":"https://github.com/hexastack/hexabot-ludwig-nlu","last_synced_at":"2026-04-29T21:35:54.578Z","repository":{"id":268364758,"uuid":"904089568","full_name":"Hexastack/hexabot-ludwig-nlu","owner":"Hexastack","description":"Hexabot NLU Engine using the Ludwig Framework","archived":false,"fork":false,"pushed_at":"2025-04-08T16:34:36.000Z","size":56,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-08T17:34:21.015Z","etag":null,"topics":["artificial-intelligence","bert","bert-model","lstm","ludwig","machine-learning","nlu","nlu-chatbot","nlu-engine","nlu-model"],"latest_commit_sha":null,"homepage":"https://docs.hexabot.ai","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Hexastack.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":"2024-12-16T08:31:42.000Z","updated_at":"2025-01-28T08:39:16.000Z","dependencies_parsed_at":null,"dependency_job_id":"ea894ead-3b74-4172-9320-34959ad23f33","html_url":"https://github.com/Hexastack/hexabot-ludwig-nlu","commit_stats":null,"previous_names":["hexastack/hexabot-ludwig-nlu"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Hexastack/hexabot-ludwig-nlu","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Hexastack%2Fhexabot-ludwig-nlu","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Hexastack%2Fhexabot-ludwig-nlu/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Hexastack%2Fhexabot-ludwig-nlu/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Hexastack%2Fhexabot-ludwig-nlu/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Hexastack","download_url":"https://codeload.github.com/Hexastack/hexabot-ludwig-nlu/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Hexastack%2Fhexabot-ludwig-nlu/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32445542,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-29T20:22:27.477Z","status":"ssl_error","status_checked_at":"2026-04-29T20:22:26.507Z","response_time":110,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["artificial-intelligence","bert","bert-model","lstm","ludwig","machine-learning","nlu","nlu-chatbot","nlu-engine","nlu-model"],"created_at":"2025-03-09T09:08:54.162Z","updated_at":"2026-04-29T21:35:54.555Z","avatar_url":"https://github.com/Hexastack.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Hexabot NLU Engine using Ludwig \n## Overview\nThis repository contains a **Natural Language Understanding (NLU)** engine developed using **Ludwig AI**, a high-level, declarative machine learning framework. Ludwig streamlines the process of training and serving machine learning models, enabling rapid prototyping and development without requiring extensive programming skills. For more details, please refer to https://ludwig.ai/latest/. \n\nThe **Hexabot Ludwig NLU** engine is designed to process and analyze text input, extracting key information such as intent, entities, and sentiment to facilitate downstream tasks like chatbot interactions. \n\nThis project is ideal for developers, data scientists, and organizations looking to build efficient and scalable NLU capabilities for chatbots, virtual assistants, or other intelligent systems.\n\n## Features\n- **Simplified Configuration:** Configure and customize models effortlessly using YAML files, eliminating the need for complex coding.\n- **Scalable and Flexible:** Easily adaptable to various domains and use cases, ensuring efficient performance across diverse datasets and requirements.\n- **Versatile Task Support:** Capable of handling a wide range of NLU tasks, including multi-class classification, slot filling, and intent recognition.\n\n## Prerequisites \n- Python 3.8 or higher\n- Ludwig AI\n- GPU (optional but recommended for faster training)\n- Docker\n\n## Environment Variables\nThe repository uses environment variables to configure training and serving processes. Two example `.env` files are provided:\n- `.env.train.example:` Used for training models.\n- `.env.serve.example:` Used for model serving and inference\n\n## Local Setup\n### Installation \n\n#### Create a Virtual Environment \n\nSet up your virtual evironment by running the following commands: \n\n```bash \npython3 -m venv venv\nsource venv/bin/activate\n```\n\n#### Install Dependencies\n\nInstall the necessary dependencies by running the following command:\n\n```bash\npip install -r requirements.txt\n```\n\n### Training\n\nTrain your own model locally using the following command:\n\n```bash\nludwig experiment --config /src/config.yaml\n                 --dataset /data/train.csv\n                 --output_directory /results\n```\n### Inference \n\nTest out your trained model using the following command. Please remember to adjust the path to your model accordingly\nby modifying the `model_path` argument in the command below.\n\n```bash\nludwig predict\n      --model_path /results/experiment_run_0/model\n      --dataset /data/predict.csv\n      --output_directory /predictions\n```\n\n### Visualizations\n\nVisualize key metrics for your trained model using the following command. Please remember to adjust the path to your model accordingly\nby modifying the `training_statistics` argument in the command below.\n\n```bash\nludwig visualize --visualization learning_curves\n      --ground_truth_metadata /results/experiment_run_0/model/training_set_metadata.json\n      --training_statistics /results/experiment_run_0/training_statistics.json\n      --file_format png\n      --output_directory /results/visualizations\n```\n\n### Serving\n\nSet up a serve API locally using the following command. Please remember to adjust the path to your model accordingly\nby modifying the `model_path` argument in the command below.\n\n```bash\nludwig serve --model_path /results/experiment_run_0/model\n```\n\n## Dockerized Environment \n\n### Training\nThe model's name is set as an environment variable. Please modify it accordingly. Remember to adjust the path to your dataset aswell.\n\n```bash\ndocker compose -f docker-compose.train.yml up\n```\n\n### Inference \n\nUse the following command to test your trained model in a dockerized environment.\n\n```bash\ndocker compose -f docker-compose.predict.yml up\n```\n\n### Visualizations\n\nVisualize key metrics for your trained model in a dockerized environment using the following command.\n\n```bash\ndocker compose -f docker-compose.visualize.yml up\n```\n\n### Serving\n\nSet up a serve API in a dockerized environment using the following command. There are two supported modes for serving models. Either you download HuggingFace models or you use your custom locally trained models for inference.\n\n#### HuggingFace Serving\n\nPlease remember to adjust your configuration accordingly and set up the correct environment variables. \n\n```bash\ndocker compose -f docker-compose.serve-hf.yml up\n```\n\n#### Local Serving\n\nPlease remember to adjust your configuration accordingly and set up the correct environment variables. \n```bash\ndocker compose -f docker-compose.serve-local.yml up\n```\n\n## Uploading Models to HuggingFace\n\nYou can upload your trained models to the Hugging Face Hub to make them publicly accessible or to share them with collaborators. The Hugging Face Command Line Interface (CLI) simplifies the process.\n\n### Setup\n\nSet up a **SSH** key for Huggingface first. For further instructions, please refer to https://huggingface.co/docs/hub/security-git-ssh \n\n### Steps \n\n#### Create a Repository \nCreate a new repository using HuggingFace's CLI. \n\n```bash\nhuggingface-cli repo create \u003crepo-name\u003e\n```\n#### Clone your repository \nClone your newly created repository using the following command \n\n```bash\ngit clone git@hf.co:\u003cusername\u003e/\u003crepo-name\u003e.git\ncd \u003crepo-name\u003e\n```\n\n#### Track Large Files with Git LFS\n\nSet up **Git LFS** (Large File Storage) to manage large files (e.g., model weights).\n\n```bash\ngit lfs install\ngit lfs track \"model/model_weights\"\n```\n\n#### Push and Commit\nCopy all your model files to the cloned repository directory:\n\n```bash\ngit add .\ngit commit -m \"Upload trained model with weights\"\ngit push\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhexastack%2Fhexabot-ludwig-nlu","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhexastack%2Fhexabot-ludwig-nlu","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhexastack%2Fhexabot-ludwig-nlu/lists"}