This Redmine plugin enables AI-based semantic search functionality using OpenAI embeddings and PostgreSQL's pgvector extension. It allows users to search for tickets using natural language queries rather than exact keyword matches.
- Semantic search across issue content (subject, description, comments, time entries)
- Vector similarity search using OpenAI embeddings
- Background processing for embedding generation
- Role-based access control (Developer and Manager roles)
- Compatible with Redmine 5.1.x and 6.0.x
For the rendered Mermaid Domain Model, have a look at this file.
- PostgreSQL installed
- Valid OpenAI API key
More information in Setup Guide.
Check out SETUP.md for a step-by-step guide on how to set the Plugin up.
- Log in as an administrator
- Go to Administration > Plugins
- Click "Configure" next to the Semantic Search plugin
- Adjust settings as needed
- Ensure your user has a Developer or Manager role in at least one project
- Click on "Semantic Search" in the top menu
- Enter a natural language query (e.g., "Issues about login problems with the mobile app")
- View the results ordered by semantic relevance
- The plugin creates embeddings for issues when they are created or updated
- Embeddings are stored in a separate database table using pgvector
- When a search is performed, the query is converted to an embedding
- PostgreSQL's vector similarity search finds the most semantically similar issues
- Results are filtered based on user permissions
Important
Make sure you are in Redmine's root directory before running the tests
The tests are written with MiniTest, the default testing framework for Ruby on Rails.
bundle exec rake redmine:plugins:test NAME=semantic_search
In order to lint the application, run the following command:
bin/lint
This project uses GitHub Actions for continuous integration and testing:
- CI Workflow: Runs linting and syntax checks on every push and pull request
- Test Workflow: Sets up a complete Redmine environment and runs all plugin tests
To run the workflows locally, you can use act.
The test workflow requires the following GitHub secret to be configured:
OPENAI_API_KEY
: A random string of characters. It does not have to be a valid OpenAI API Key.
This plugin is licensed under the MIT License.
If at any point while using this plugin you face certain problems, just open an issue.
© 2025 Renuo AG