A microservice for fetching relevant softwares to a certain search term + filters input. This service will retrieve software from GraphDB and then perform a fuzzy search using Fuzon.
It's necessary to send a post
request to the API endpoint (URL/v1/search
) with a body following this example. If you want to try you can do it directly in URL/docs
by clicking in the Try it out
button.
{
"search": "deep",
"filters": [
{
"key": "programmingLanguage",
"schema_key": "schema:programmingLanguage",
"value": [
"Python"
]
},
{
"key": "featureList",
"schema_key": "schema:featureList",
"value": [
"Object detection"
]
}
]
}
The reply should looks like:
[
{
"label": "DeepLabCut",
"uri": "<https://github.com/DeepLabCut/DeepLabCut>"
},
{
"label": "stardist",
"uri": "<https://github.com/stardist/stardist>"
},
{
"label": "spotiflow",
"uri": "<https://github.com/weigertlab/spotiflow>"
},
{
"label": "DEFCoN",
"uri": "<https://github.com/LEB-EPFL/DEFCoN>"
},
{
"label": "detection-attributes-fields",
"uri": "<https://github.com/vita-epfl/detection-attributes-fields>"
},
{
"label": "butterflydetector",
"uri": "<https://github.com/vita-epfl/butterflydetector>"
}
]
First define the env variables needed to connect to graphDB. You can copy and rename .env.dist
into .env
.
If you have just available you can build and run the image as follows:
just image build
just image run
Then connect to localhost:7123
. The port is hardcoded in tools/just/image.just
If you prefer you can run this directly with docker
docker build -t imaging-plaza-search -f tools/image/Dockerfile .
And then run:
docker run --rm --name imaging-plaza-search -p 7123:15400 --env-file .env imaging-plaza-search
To develop and see changes in real time you can mount the source folder into docker like this:
docker run --rm --name imaging-plaza-search -p 7123:15400 -v ./src/:/app/src --env-file .env imaging-plaza-search
This MS has been developed by the Swiss Data Science Center.