explaingit

one-million-lines/intent-service

Analysis updated 2026-05-18

0PythonAudience · developerComplexity · 3/5LicenseSetup · moderate

TLDR

An open-source service that matches user text to predefined intents from CSV files, using pluggable AI embedding models and multiple storage backends.

Mindmap

mindmap
  root((intent-service))
    What it does
      Match user phrases
      Define intents in CSV
      Return top matches
    Tech Stack
      Python FastAPI
      Pydantic v2
      OpenAI Gemma HuggingFace
      Chroma Qdrant Postgres
    Use Cases
      Chatbot intent routing
      Multilingual NLP apps
      Cron sync pipelines
    Audience
      Bot developers
      NLP engineers
    Setup
      CLI or REST API
      Docker compose included
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Build a chatbot that routes user messages to the right action based on meaning, not exact keyword matches.

USE CASE 2

Add multilingual intent detection to a support tool by defining all intents in a simple spreadsheet.

USE CASE 3

Run a scheduled sync job that keeps your bot's intent list in sync as your CSV files change over time.

What is it built with?

PythonFastAPIPydanticOpenAIGemmasentence-transformersQdrantPostgreSQL

How does it compare?

one-million-lines/intent-service0xhassaan/nn-from-scratcha-little-hoof/dsr
Stars000
LanguagePythonPythonPython
Setup difficultymoderatemoderatehard
Complexity3/54/55/5
Audiencedeveloperdeveloperresearcher

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · moderate Time to first run · 30min

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.

MIT license, use, modify, and distribute freely for any purpose, including commercial projects.

In plain English

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.

Copy-paste prompts

Prompt 1
I have a CSV of user intents for my chatbot. How do I use intent-service to set up a local intent matching API with SQLite storage?
Prompt 2
How do I switch intent-service from the default dummy embedding provider to OpenAI text-embedding-3-small?
Prompt 3
I want to deploy intent-service with Qdrant and Postgres for production. Walk me through the docker-compose setup.
Prompt 4
How do I add French and German intents to my intent-service CSV and verify that multilingual matching works correctly?

Frequently asked questions

What is intent-service?

An open-source service that matches user text to predefined intents from CSV files, using pluggable AI embedding models and multiple storage backends.

What language is intent-service written in?

Mainly Python. The stack also includes Python, FastAPI, Pydantic.

What license does intent-service use?

MIT license, use, modify, and distribute freely for any purpose, including commercial projects.

How hard is intent-service to set up?

Setup difficulty is rated moderate, with roughly 30min to a first successful run.

Who is intent-service for?

Mainly developer.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Scan in gitsafehub Deploy in gitdeployhub one-million-lines on gitmyhub

Verify against the repo before relying on details.