Run a self-hosted voice assistant that routes spoken queries to local AI services and returns answers.
Add a new AI capability like image captioning by implementing the Thrift interface and registering it.
Deploy the full assistant stack across multiple servers using Docker and Kubernetes.
Chain multiple services so complex queries get processed by several AI models in sequence.
Requires compiling multiple services with shared dependencies, Docker and Kubernetes needed for production.
Lucida is an open-source intelligent personal assistant that responds to speech and image input. It was built as a research project inspired by an earlier system called Sirius. The idea is that a user can speak a question or provide an image, and Lucida figures out which backend processing services to call, combines the results, and returns an answer. It is designed to run as a web application that you host yourself, either on a single machine or distributed across multiple servers using containers. The system is organized as a collection of modular services. Each service handles a specific task: speech recognition converts audio to text, image classification identifies objects in photos, facial recognition identifies people, question answering generates responses based on a knowledge base, and a calendar service retrieves events. A central coordinator called the command center receives user input, decides which services are needed for that query, sends requests to them, and assembles the final response. All communication between services uses a framework called Thrift, which allows services written in different programming languages to talk to each other. Developers who want to contribute or run the system locally can build it with a single make command, which installs shared dependencies and compiles all the services. Running make start_all then launches each service in its own terminal window alongside the command center. Once everything is running, a browser interface is available on port 3000. For production or web deployment, the README describes using Docker containers coordinated by Kubernetes. One of the stated design goals is extensibility. If you have a better speech recognition tool, an image captioning model, or any other AI capability you want to plug in, the README explains how to implement the required Thrift interface and register the new service with the command center. Services can also call each other in a chain for more complex queries. The project is licensed under BSD, with some submodules carrying their own licenses. Development and user support is handled through a Google Group and a tutorial PDF included in the repository.
← claritylab on gitmyhub — every repo by this author, as a profile.
Verify against the repo before relying on details.