From 2d66030bb2d06b8b6e4cef9f1ce90e32ee1450c7 Mon Sep 17 00:00:00 2001 From: Duda Nogueira Date: Fri, 1 Sep 2023 10:18:37 -0300 Subject: [PATCH 1/7] read.ne typo --- readme.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/readme.md b/readme.md index e0f7931..79f22be 100644 --- a/readme.md +++ b/readme.md @@ -54,7 +54,7 @@ In this step, we will run an Angular app, which allows us to search through our 1. Go to the web project ``` -cd wep-app +cd web-app ``` 2. Install packages @@ -75,4 +75,4 @@ Run the app with the Angular CLI, which will automatically open the app in your ``` ng serve -o -``` \ No newline at end of file +``` From 4335b637fba7041a2260a2dde9f166ba40c3ef6e Mon Sep 17 00:00:00 2001 From: Duda Nogueira Date: Tue, 5 Sep 2023 11:01:37 -0300 Subject: [PATCH 2/7] Move images to source folder --- .../{input_images => image}/Christian_wedding1.jfif | Bin .../{input_images => image}/Christian_wedding2.jfif | Bin .../{input_images => image}/Indian_wedding1.jfif | Bin .../{input_images => image}/Indian_wedding2.jfif | Bin .../source/{input_images => image}/Lion_pride1.jfif | Bin .../source/{input_images => image}/Lion_pride2.jfif | Bin .../source/{input_images => image}/Lion_pride3.jfif | Bin .../{input_images => image}/badminton_players1.jfif | Bin .../source/{input_images => image}/bird_image.jpg | Bin .../source/{input_images => image}/building1.jfif | Bin .../{input_images => image}/businesswoman1.jfif | Bin .../{input_images => image}/businesswoman2.jfif | Bin .../source/{input_images => image}/car_image.jpg | Bin node-app/source/{input_images => image}/city1.jfif | Bin node-app/source/{input_images => image}/city2.jfif | Bin .../source/{input_images => image}/college1.jfif | Bin .../source/{input_images => image}/college2.jfif | Bin .../source/{input_images => image}/college3.jfif | Bin .../{input_images => image}/crowded_market1.jfif | Bin .../{input_images => image}/crowded_market2.jfif | Bin .../{input_images => image}/crowded_market3.jfif | Bin .../{input_images => image}/crowded_market4.jfif | Bin node-app/source/{input_images => image}/dog1.jfif | Bin node-app/source/{input_images => image}/dog2.jfif | Bin .../source/{input_images => image}/dog_image.jpg | Bin .../source/{input_images => image}/forest1.jfif | Bin .../source/{input_images => image}/forest2.jfif | Bin .../source/{input_images => image}/graduation1.jfif | Bin node-app/source/{input_images => image}/lion1.jfif | Bin node-app/source/{input_images => image}/lion2.jfif | Bin .../market_less_people1.jfif | Bin .../market_less_people2.jfif | Bin .../source/{input_images => image}/person1.jfif | Bin .../source/{input_images => image}/school1.jfif | Bin .../source/{input_images => image}/school2.jfif | Bin .../source/{input_images => image}/school3.jfif | Bin .../source/{input_images => image}/universe1.jfif | Bin .../source/{input_images => image}/universe2.jfif | Bin node-app/source/{input_images => image}/woman1.jfif | Bin node-app/source/{input_images => image}/women1.jfif | Bin node-app/source/{input_images => image}/women2.jfif | Bin 41 files changed, 0 insertions(+), 0 deletions(-) rename node-app/source/{input_images => image}/Christian_wedding1.jfif (100%) rename node-app/source/{input_images => image}/Christian_wedding2.jfif (100%) rename node-app/source/{input_images => image}/Indian_wedding1.jfif (100%) rename node-app/source/{input_images => image}/Indian_wedding2.jfif (100%) rename node-app/source/{input_images => image}/Lion_pride1.jfif (100%) rename node-app/source/{input_images => image}/Lion_pride2.jfif (100%) rename node-app/source/{input_images => image}/Lion_pride3.jfif (100%) rename node-app/source/{input_images => image}/badminton_players1.jfif (100%) rename node-app/source/{input_images => image}/bird_image.jpg (100%) rename node-app/source/{input_images => image}/building1.jfif (100%) rename node-app/source/{input_images => image}/businesswoman1.jfif (100%) rename node-app/source/{input_images => image}/businesswoman2.jfif (100%) rename node-app/source/{input_images => image}/car_image.jpg (100%) rename node-app/source/{input_images => image}/city1.jfif (100%) rename node-app/source/{input_images => image}/city2.jfif (100%) rename node-app/source/{input_images => image}/college1.jfif (100%) rename node-app/source/{input_images => image}/college2.jfif (100%) rename node-app/source/{input_images => image}/college3.jfif (100%) rename node-app/source/{input_images => image}/crowded_market1.jfif (100%) rename node-app/source/{input_images => image}/crowded_market2.jfif (100%) rename node-app/source/{input_images => image}/crowded_market3.jfif (100%) rename node-app/source/{input_images => image}/crowded_market4.jfif (100%) rename node-app/source/{input_images => image}/dog1.jfif (100%) rename node-app/source/{input_images => image}/dog2.jfif (100%) rename node-app/source/{input_images => image}/dog_image.jpg (100%) rename node-app/source/{input_images => image}/forest1.jfif (100%) rename node-app/source/{input_images => image}/forest2.jfif (100%) rename node-app/source/{input_images => image}/graduation1.jfif (100%) rename node-app/source/{input_images => image}/lion1.jfif (100%) rename node-app/source/{input_images => image}/lion2.jfif (100%) rename node-app/source/{input_images => image}/market_less_people1.jfif (100%) rename node-app/source/{input_images => image}/market_less_people2.jfif (100%) rename node-app/source/{input_images => image}/person1.jfif (100%) rename node-app/source/{input_images => image}/school1.jfif (100%) rename node-app/source/{input_images => image}/school2.jfif (100%) rename node-app/source/{input_images => image}/school3.jfif (100%) rename node-app/source/{input_images => image}/universe1.jfif (100%) rename node-app/source/{input_images => image}/universe2.jfif (100%) rename node-app/source/{input_images => image}/woman1.jfif (100%) rename node-app/source/{input_images => image}/women1.jfif (100%) rename node-app/source/{input_images => image}/women2.jfif (100%) diff --git a/node-app/source/input_images/Christian_wedding1.jfif b/node-app/source/image/Christian_wedding1.jfif similarity index 100% rename from node-app/source/input_images/Christian_wedding1.jfif rename to node-app/source/image/Christian_wedding1.jfif diff --git a/node-app/source/input_images/Christian_wedding2.jfif b/node-app/source/image/Christian_wedding2.jfif similarity index 100% rename from node-app/source/input_images/Christian_wedding2.jfif rename to node-app/source/image/Christian_wedding2.jfif diff --git a/node-app/source/input_images/Indian_wedding1.jfif b/node-app/source/image/Indian_wedding1.jfif similarity index 100% rename from node-app/source/input_images/Indian_wedding1.jfif rename to node-app/source/image/Indian_wedding1.jfif diff --git a/node-app/source/input_images/Indian_wedding2.jfif b/node-app/source/image/Indian_wedding2.jfif similarity index 100% rename from node-app/source/input_images/Indian_wedding2.jfif rename to node-app/source/image/Indian_wedding2.jfif diff --git a/node-app/source/input_images/Lion_pride1.jfif b/node-app/source/image/Lion_pride1.jfif similarity index 100% rename from node-app/source/input_images/Lion_pride1.jfif rename to node-app/source/image/Lion_pride1.jfif diff --git a/node-app/source/input_images/Lion_pride2.jfif b/node-app/source/image/Lion_pride2.jfif similarity index 100% rename from node-app/source/input_images/Lion_pride2.jfif rename to node-app/source/image/Lion_pride2.jfif diff --git a/node-app/source/input_images/Lion_pride3.jfif b/node-app/source/image/Lion_pride3.jfif similarity index 100% rename from node-app/source/input_images/Lion_pride3.jfif rename to node-app/source/image/Lion_pride3.jfif diff --git a/node-app/source/input_images/badminton_players1.jfif b/node-app/source/image/badminton_players1.jfif similarity index 100% rename from node-app/source/input_images/badminton_players1.jfif rename to node-app/source/image/badminton_players1.jfif diff --git a/node-app/source/input_images/bird_image.jpg b/node-app/source/image/bird_image.jpg similarity index 100% rename from node-app/source/input_images/bird_image.jpg rename to node-app/source/image/bird_image.jpg diff --git a/node-app/source/input_images/building1.jfif b/node-app/source/image/building1.jfif similarity index 100% rename from node-app/source/input_images/building1.jfif rename to node-app/source/image/building1.jfif diff --git a/node-app/source/input_images/businesswoman1.jfif b/node-app/source/image/businesswoman1.jfif similarity index 100% rename from node-app/source/input_images/businesswoman1.jfif rename to node-app/source/image/businesswoman1.jfif diff --git a/node-app/source/input_images/businesswoman2.jfif b/node-app/source/image/businesswoman2.jfif similarity index 100% rename from node-app/source/input_images/businesswoman2.jfif rename to node-app/source/image/businesswoman2.jfif diff --git a/node-app/source/input_images/car_image.jpg b/node-app/source/image/car_image.jpg similarity index 100% rename from node-app/source/input_images/car_image.jpg rename to node-app/source/image/car_image.jpg diff --git a/node-app/source/input_images/city1.jfif b/node-app/source/image/city1.jfif similarity index 100% rename from node-app/source/input_images/city1.jfif rename to node-app/source/image/city1.jfif diff --git a/node-app/source/input_images/city2.jfif b/node-app/source/image/city2.jfif similarity index 100% rename from node-app/source/input_images/city2.jfif rename to node-app/source/image/city2.jfif diff --git a/node-app/source/input_images/college1.jfif b/node-app/source/image/college1.jfif similarity index 100% rename from node-app/source/input_images/college1.jfif rename to node-app/source/image/college1.jfif diff --git a/node-app/source/input_images/college2.jfif b/node-app/source/image/college2.jfif similarity index 100% rename from node-app/source/input_images/college2.jfif rename to node-app/source/image/college2.jfif diff --git a/node-app/source/input_images/college3.jfif b/node-app/source/image/college3.jfif similarity index 100% rename from node-app/source/input_images/college3.jfif rename to node-app/source/image/college3.jfif diff --git a/node-app/source/input_images/crowded_market1.jfif b/node-app/source/image/crowded_market1.jfif similarity index 100% rename from node-app/source/input_images/crowded_market1.jfif rename to node-app/source/image/crowded_market1.jfif diff --git a/node-app/source/input_images/crowded_market2.jfif b/node-app/source/image/crowded_market2.jfif similarity index 100% rename from node-app/source/input_images/crowded_market2.jfif rename to node-app/source/image/crowded_market2.jfif diff --git a/node-app/source/input_images/crowded_market3.jfif b/node-app/source/image/crowded_market3.jfif similarity index 100% rename from node-app/source/input_images/crowded_market3.jfif rename to node-app/source/image/crowded_market3.jfif diff --git a/node-app/source/input_images/crowded_market4.jfif b/node-app/source/image/crowded_market4.jfif similarity index 100% rename from node-app/source/input_images/crowded_market4.jfif rename to node-app/source/image/crowded_market4.jfif diff --git a/node-app/source/input_images/dog1.jfif b/node-app/source/image/dog1.jfif similarity index 100% rename from node-app/source/input_images/dog1.jfif rename to node-app/source/image/dog1.jfif diff --git a/node-app/source/input_images/dog2.jfif b/node-app/source/image/dog2.jfif similarity index 100% rename from node-app/source/input_images/dog2.jfif rename to node-app/source/image/dog2.jfif diff --git a/node-app/source/input_images/dog_image.jpg b/node-app/source/image/dog_image.jpg similarity index 100% rename from node-app/source/input_images/dog_image.jpg rename to node-app/source/image/dog_image.jpg diff --git a/node-app/source/input_images/forest1.jfif b/node-app/source/image/forest1.jfif similarity index 100% rename from node-app/source/input_images/forest1.jfif rename to node-app/source/image/forest1.jfif diff --git a/node-app/source/input_images/forest2.jfif b/node-app/source/image/forest2.jfif similarity index 100% rename from node-app/source/input_images/forest2.jfif rename to node-app/source/image/forest2.jfif diff --git a/node-app/source/input_images/graduation1.jfif b/node-app/source/image/graduation1.jfif similarity index 100% rename from node-app/source/input_images/graduation1.jfif rename to node-app/source/image/graduation1.jfif diff --git a/node-app/source/input_images/lion1.jfif b/node-app/source/image/lion1.jfif similarity index 100% rename from node-app/source/input_images/lion1.jfif rename to node-app/source/image/lion1.jfif diff --git a/node-app/source/input_images/lion2.jfif b/node-app/source/image/lion2.jfif similarity index 100% rename from node-app/source/input_images/lion2.jfif rename to node-app/source/image/lion2.jfif diff --git a/node-app/source/input_images/market_less_people1.jfif b/node-app/source/image/market_less_people1.jfif similarity index 100% rename from node-app/source/input_images/market_less_people1.jfif rename to node-app/source/image/market_less_people1.jfif diff --git a/node-app/source/input_images/market_less_people2.jfif b/node-app/source/image/market_less_people2.jfif similarity index 100% rename from node-app/source/input_images/market_less_people2.jfif rename to node-app/source/image/market_less_people2.jfif diff --git a/node-app/source/input_images/person1.jfif b/node-app/source/image/person1.jfif similarity index 100% rename from node-app/source/input_images/person1.jfif rename to node-app/source/image/person1.jfif diff --git a/node-app/source/input_images/school1.jfif b/node-app/source/image/school1.jfif similarity index 100% rename from node-app/source/input_images/school1.jfif rename to node-app/source/image/school1.jfif diff --git a/node-app/source/input_images/school2.jfif b/node-app/source/image/school2.jfif similarity index 100% rename from node-app/source/input_images/school2.jfif rename to node-app/source/image/school2.jfif diff --git a/node-app/source/input_images/school3.jfif b/node-app/source/image/school3.jfif similarity index 100% rename from node-app/source/input_images/school3.jfif rename to node-app/source/image/school3.jfif diff --git a/node-app/source/input_images/universe1.jfif b/node-app/source/image/universe1.jfif similarity index 100% rename from node-app/source/input_images/universe1.jfif rename to node-app/source/image/universe1.jfif diff --git a/node-app/source/input_images/universe2.jfif b/node-app/source/image/universe2.jfif similarity index 100% rename from node-app/source/input_images/universe2.jfif rename to node-app/source/image/universe2.jfif diff --git a/node-app/source/input_images/woman1.jfif b/node-app/source/image/woman1.jfif similarity index 100% rename from node-app/source/input_images/woman1.jfif rename to node-app/source/image/woman1.jfif diff --git a/node-app/source/input_images/women1.jfif b/node-app/source/image/women1.jfif similarity index 100% rename from node-app/source/input_images/women1.jfif rename to node-app/source/image/women1.jfif diff --git a/node-app/source/input_images/women2.jfif b/node-app/source/image/women2.jfif similarity index 100% rename from node-app/source/input_images/women2.jfif rename to node-app/source/image/women2.jfif From cfacd34fd44560ad07e51d48d1164dd0d2d7ca05 Mon Sep 17 00:00:00 2001 From: Duda Nogueira Date: Tue, 5 Sep 2023 11:02:42 -0300 Subject: [PATCH 3/7] Node-App and Web-App dockerfiles --- node-app/Dockerfile | 6 ++++++ web-app/Dockerfile | 9 +++++++++ 2 files changed, 15 insertions(+) create mode 100644 node-app/Dockerfile create mode 100644 web-app/Dockerfile diff --git a/node-app/Dockerfile b/node-app/Dockerfile new file mode 100644 index 0000000..89db1f8 --- /dev/null +++ b/node-app/Dockerfile @@ -0,0 +1,6 @@ +FROM node +WORKDIR /app +COPY . . +RUN npm install +RUN npm run compile-ts +CMD node build/index.js && exit 1 \ No newline at end of file diff --git a/web-app/Dockerfile b/web-app/Dockerfile new file mode 100644 index 0000000..5ee8fc2 --- /dev/null +++ b/web-app/Dockerfile @@ -0,0 +1,9 @@ +FROM node as build +WORKDIR /app +COPY . . +RUN npm install +RUN npm install -g @angular/cli +RUN ng build --output-path=/tmp/app +# BASE IMAGE +FROM nginx as runtime +COPY --from=build /tmp/app /usr/share/nginx/html \ No newline at end of file From 8838333be8160cf787b8b7dcb8889c82297d02f7 Mon Sep 17 00:00:00 2001 From: Duda Nogueira Date: Tue, 5 Sep 2023 11:04:39 -0300 Subject: [PATCH 4/7] add volume to weaviate, node and web apps add healthchecks and depends_on policy --- docker-compose.yml | 49 ++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 47 insertions(+), 2 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 07cb407..4b64c51 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,5 +1,9 @@ --- version: '3.4' + +volumes: + weaviate_data: {} + services: weaviate: command: @@ -13,6 +17,8 @@ services: ports: - 8080:8080 restart: on-failure:0 + volumes: + - weaviate_data:/var/lib/weaviate environment: QUERY_DEFAULTS_LIMIT: 25 AUTHENTICATION_ANONYMOUS_ACCESS_ENABLED: 'true' @@ -21,8 +27,47 @@ services: ENABLE_MODULES: 'multi2vec-bind' BIND_INFERENCE_API: 'http://multi2vec-bind:8080' CLUSTER_HOSTNAME: 'node1' + BACKUP_FILESYSTEM_PATH: '/mnt/blockstorage' + depends_on: + multi2vec-bind: + condition: service_healthy + healthcheck: + test: wget --no-verbose --tries=3 --spider http://localhost:8080/v1/.well-known/ready || exit 1 + interval: 5s + timeout: 30s + retries: 5 + start_period: 10s multi2vec-bind: - image: semitechnologies/multi2vec-bind:imagebind + #image: semitechnologies/multi2vec-bind:imagebind + image: multi2vec-bind:imagebind environment: ENABLE_CUDA: '0' -... \ No newline at end of file + healthcheck: + test: wget --no-verbose --tries=3 --spider http://localhost:8080/.well-known/ready || exit 1 + interval: 20s + retries: 5 + start_period: 15s + timeout: 10s + ports: + - 8081:8080 + web-app: + build: + context: ./web-app + ports: + - 4200:80 + - 80:80 + environment: + - WEAVIATE_HOST="weaviate:8080" + healthcheck: + test: curl --fail http://localhost:80 || exit 1 + interval: 20s + retries: 5 + start_period: 10s + timeout: 10s + node-app: + build: + context: ./node-app + depends_on: + weaviate: + condition: service_healthy +... From d246e292eb4daced083e30d893626882f1b513e2 Mon Sep 17 00:00:00 2001 From: Duda Nogueira Date: Tue, 5 Sep 2023 11:05:18 -0300 Subject: [PATCH 5/7] Allow WEAVIATE_HOST env var --- node-app/src/client.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/node-app/src/client.ts b/node-app/src/client.ts index 101aa16..3ebf3af 100644 --- a/node-app/src/client.ts +++ b/node-app/src/client.ts @@ -3,10 +3,11 @@ import weaviate, { WeaviateClient } from 'weaviate-ts-client'; let client: WeaviateClient; export const getWeaviateClient = () => { + if (!client) { client = weaviate.client({ scheme: 'http', - host: 'localhost:8080', + host: process.env.WEAVIATE_HOST || 'localhost:8080', }); }; From cbfad375b10e1f14fc9f596544e2aa39292e1822 Mon Sep 17 00:00:00 2001 From: Duda Nogueira Date: Tue, 5 Sep 2023 11:06:14 -0300 Subject: [PATCH 6/7] point import to soruce folder add finish message --- node-app/src/import.ts | 2 +- node-app/src/index.ts | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/node-app/src/import.ts b/node-app/src/import.ts index 2cfa9d4..e70b0c3 100644 --- a/node-app/src/import.ts +++ b/node-app/src/import.ts @@ -7,7 +7,7 @@ import { FileInfo, getBase64, listFiles } from './util'; // const sourceImages = 'source/input_images/'; // const sourceAudio = 'source/audio/'; // const sourceVideo = 'source/video/'; -const sourceBase = '../web-app/src/assets'; +const sourceBase = '/app/source'; const sourceImages = sourceBase + '/image/' const sourceAudio = sourceBase + '/audio/'; const sourceVideo = sourceBase + '/video/'; diff --git a/node-app/src/index.ts b/node-app/src/index.ts index 6a55c7e..107cd1f 100644 --- a/node-app/src/index.ts +++ b/node-app/src/index.ts @@ -7,6 +7,12 @@ const run = async () => { // await deleteCollection(collectionName); await createBindCollection(collectionName); await importMediaFiles(collectionName); + console.log("######################") + console.log("######################") + console.log("All set! You can now browse to http://localhost:4200") + console.log("######################") + console.log("######################") + } run(); From 852c102077c315cfa912b42ec973b12b3c668b66 Mon Sep 17 00:00:00 2001 From: Duda Nogueira Date: Tue, 19 Sep 2023 10:27:10 -0300 Subject: [PATCH 7/7] change healthcheck for multi2vec api --- docker-compose.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 4b64c51..dd46636 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -38,16 +38,16 @@ services: retries: 5 start_period: 10s multi2vec-bind: - #image: semitechnologies/multi2vec-bind:imagebind - image: multi2vec-bind:imagebind + image: semitechnologies/multi2vec-bind:imagebind + #image: multi2vec-bind:imagebind environment: ENABLE_CUDA: '0' healthcheck: test: wget --no-verbose --tries=3 --spider http://localhost:8080/.well-known/ready || exit 1 - interval: 20s + interval: 10s retries: 5 start_period: 15s - timeout: 10s + timeout: 30s ports: - 8081:8080 web-app: