Analysis updated 2026-05-18
Build a chatbot that routes user messages to the right action based on meaning, not exact keyword matches.
Add multilingual intent detection to a support tool by defining all intents in a simple spreadsheet.
Run a scheduled sync job that keeps your bot's intent list in sync as your CSV files change over time.
| one-million-lines/intent-service | 0xhassaan/nn-from-scratch | a-little-hoof/dsr | |
|---|---|---|---|
| Stars | 0 | 0 | 0 |
| Language | Python | Python | Python |
| Setup difficulty | moderate | moderate | hard |
| Complexity | 3/5 | 4/5 | 5/5 |
| Audience | developer | developer | researcher |
Figures from each repo's GitHub metadata at analysis time.
Defaults use a dummy embedding provider with in-memory store, so no API keys are needed to try it, but switching to a persistent store or real embeddings requires extra configuration.
This is an open-source Python service that figures out what a user meant when they typed or said something. The main idea is intent matching: you define a list of intents (descriptions of things people might want) in a simple CSV spreadsheet, and the service learns how those intents are phrased. When a real user types something, the service finds the closest matching intent from your list, even if the wording is completely different from what you wrote down. Setup is flexible. You can choose from several AI models to understand text, including OpenAI embeddings, Google Gemma, or local models downloaded from HuggingFace. You can also pick where the learned data gets stored, from a simple in-memory option for quick testing all the way up to production-grade databases like Postgres or Qdrant. Everything is accessible through a web API or a command-line tool, and a sync script lets you schedule automatic updates via cron jobs or CI pipelines. The CSV format is straightforward: each row contains an example phrase, a category group, and an action name. You can add extra columns as metadata, and mark any intent as active or inactive. When you run a sync, the service automatically removes stale or inactive intents from its store so your live data always matches your files. The code is built around pluggable interfaces, so swapping one AI model for another does not require changing any of the API code. Multiple languages work out of the box, with example files in English, French, and German. A Docker setup is included for running the service alongside Postgres and Qdrant in production. This tool is aimed at developers building chatbots, virtual assistants, or any app that needs to understand user requests without calling a large language model for every single query. The MIT license means you can use and modify it freely for any purpose.
An open-source service that matches user text to predefined intents from CSV files, using pluggable AI embedding models and multiple storage backends.
Mainly Python. The stack also includes Python, FastAPI, Pydantic.
MIT license, use, modify, and distribute freely for any purpose, including commercial projects.
Setup difficulty is rated moderate, with roughly 30min to a first successful run.
Mainly developer.
This repo across BitVibe Labs
Verify against the repo before relying on details.