-
Notifications
You must be signed in to change notification settings - Fork 3
Open
Labels
Description
Given W as the worked entity extracted via LUIS from the user's sentence, the project recognition flow is structured as follows:
- Retrieves all the Clockify projects of the user workspace
- Search for an exact match of W in the projects list
- Search for the best match of W in the projects list using a string distance algorithm
Add another step in the project recognition flow where if no match is found, try to infer the Clockify project by assuming that W is a task. In detail:
- Retrieve all Clockify tasks per project
- Make tasks unique and keep duplicate values
- Search for an exact match of W in the tasks duplicate values, if it exists then throw an AmbiguousRecognizableProjectException
- Search for the best match of W in the tasks duplicate values using string distance algorithm and handle ambiguous cases
- Search for an exact match of W in the tasks unique list
- Search for the best match of W in the tasks unique list using a string distance algorithm (ambiguous cases must be handled as for the search in the project list)
All Clockify tasks per project could be retrieved via the global Clockify API at the following endpoint https://global.api.clockify.me/workspaces/{WORKSPACE_ID}/projects/tasks/report-filters