From 071f3cefd34e2a0a439393de8dc9d624ee369693 Mon Sep 17 00:00:00 2001 From: Steven Silvester Date: Fri, 3 Jan 2025 10:13:44 -0600 Subject: [PATCH 1/6] INTPYTHON-316 Add Haystack to AI/ML Testing Pipelines --- .evergreen/config.yml | 48 +++++++++++++++++++ .evergreen/setup-remote.sh | 3 ++ .evergreen/utils.sh | 5 +- .gitignore | 4 ++ README.md | 1 + haystack-embeddings/config.env | 3 ++ .../database/test_embeddings_collection.json | 17 +++++++ haystack-embeddings/indexes/cosine_index.json | 18 +++++++ .../indexes/dot_product_index.json | 18 +++++++ .../indexes/euclidean_index.json | 18 +++++++ .../indexes/full_text_index.json | 16 +++++++ haystack-embeddings/run.sh | 25 ++++++++++ haystack-fulltext/config.env | 3 ++ .../database/synonym_mapping_collection.json | 8 ++++ .../database/test_collection.json | 2 + haystack-fulltext/indexes/cosine_index.json | 18 +++++++ .../indexes/full_text_index.json | 26 ++++++++++ haystack-fulltext/run.sh | 25 ++++++++++ 18 files changed, 257 insertions(+), 1 deletion(-) create mode 100644 haystack-embeddings/config.env create mode 100644 haystack-embeddings/database/test_embeddings_collection.json create mode 100644 haystack-embeddings/indexes/cosine_index.json create mode 100644 haystack-embeddings/indexes/dot_product_index.json create mode 100644 haystack-embeddings/indexes/euclidean_index.json create mode 100644 haystack-embeddings/indexes/full_text_index.json create mode 100644 haystack-embeddings/run.sh create mode 100644 haystack-fulltext/config.env create mode 100644 haystack-fulltext/database/synonym_mapping_collection.json create mode 100644 haystack-fulltext/database/test_collection.json create mode 100644 haystack-fulltext/indexes/cosine_index.json create mode 100644 haystack-fulltext/indexes/full_text_index.json create mode 100644 haystack-fulltext/run.sh diff --git a/.evergreen/config.yml b/.evergreen/config.yml index 205c62c..bd3268d 100644 --- a/.evergreen/config.yml +++ b/.evergreen/config.yml @@ -177,6 +177,34 @@ tasks: - func: "setup remote atlas" - func: "execute tests" + - name: test-haystack-embeddings-local + tags: [local] + commands: + - func: "fetch repo" + - func: "setup local atlas" + - func: "execute tests" + + - name: test-haystack-embeddings-remote + tags: [remote] + commands: + - func: "fetch repo" + - func: "setup remote atlas" + - func: "execute tests" + + - name: test-haystack-fulltext-local + tags: [local] + commands: + - func: "fetch repo" + - func: "setup local atlas" + - func: "execute tests" + + - name: test-haystack-fulltext-remote + tags: [remote] + commands: + - func: "fetch repo" + - func: "setup remote atlas" + - func: "execute tests" + buildvariants: - name: test-llama-index-kvstore-rhel # TODO - Maintainer has pushed back on this. @@ -267,3 +295,23 @@ buildvariants: tasks: - name: test-docarray-local - name: test-docarray-remote + + - name: test-haystack-embeddings-rhel + display_name: Haystack Embeddings RHEL + expansions: + DIR: haystack-embeddings + run_on: + - rhel87-small + tasks: + - name: test-haystack-embeddings-local + - name: test-haystack-embeddings-remote + + - name: test-haystack-fulltext-rhel + display_name: Haystack FullText RHEL + expansions: + DIR: haystack-fulltext + run_on: + - rhel87-small + tasks: + - name: test-haystack-embeddings-local + - name: test-haystack-embeddings-remote diff --git a/.evergreen/setup-remote.sh b/.evergreen/setup-remote.sh index 1f77a0c..20dcda5 100644 --- a/.evergreen/setup-remote.sh +++ b/.evergreen/setup-remote.sh @@ -38,6 +38,9 @@ case $DIR in docarray) MONGODB_URI=$DOCARRAY_MONGODB_URI ;; + haystack-embeddings | haystack-fulltext) + MONGODB_URI=$HAYSTACK_MONGODB_URI + ;; *) echo "Missing config in fetch-secrets.sh for DIR: $DIR" exit 1 diff --git a/.evergreen/utils.sh b/.evergreen/utils.sh index 3a2398d..3eb6c5a 100644 --- a/.evergreen/utils.sh +++ b/.evergreen/utils.sh @@ -65,14 +65,17 @@ retry() { setup_local_atlas() { echo "Starting the container" - IMAGE=artifactory.corp.mongodb.com/dockerhub/mongodb/mongodb-atlas-local:latest + IMAGE=mongodb/mongodb-atlas-local:latest retry podman pull $IMAGE + podman kill mongodb_atlas_local || true + CONTAINER_ID=$(podman run --rm -d -e DO_NOT_TRACK=1 -P --health-cmd "/usr/local/bin/runner healthcheck" $IMAGE) echo "waiting for container to become healthy..." function wait() { CONTAINER_ID=$1 + podman rename $1 mongodb_atlas_local echo "waiting for container to become healthy..." podman healthcheck run "$CONTAINER_ID" for _ in $(seq 600); do diff --git a/.gitignore b/.gitignore index 6e63670..53a045c 100644 --- a/.gitignore +++ b/.gitignore @@ -56,3 +56,7 @@ atlas # Secrets secrets-export.sh env.sh + +# Repo checkouts +haystack-fulltext/haystack-core-integrations +haystack-embeddings/haystack-core-integrations diff --git a/README.md b/README.md index b24f68a..7c6d949 100644 --- a/README.md +++ b/README.md @@ -76,6 +76,7 @@ For example, to run the `docarray` tests using local atlas: ```bash export DIR=docarray +bash .evergreen/fetch-secrets.sh bash .evergreen/fetch-repo.sh bash .evergreen/provision-atlas.sh bash .evergreen/execute-tests.sh diff --git a/haystack-embeddings/config.env b/haystack-embeddings/config.env new file mode 100644 index 0000000..c4aefd7 --- /dev/null +++ b/haystack-embeddings/config.env @@ -0,0 +1,3 @@ +REPO_NAME=haystack-core-integrations +CLONE_URL="https://github.com/deepset-ai/haystack-core-integrations.git" +DATABASE=haystack_integration_test diff --git a/haystack-embeddings/database/test_embeddings_collection.json b/haystack-embeddings/database/test_embeddings_collection.json new file mode 100644 index 0000000..f2cbebd --- /dev/null +++ b/haystack-embeddings/database/test_embeddings_collection.json @@ -0,0 +1,17 @@ +[ + { + "_id": "7", + "content": "Document A", + "embedding": [0.5, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25] + }, + { + "_id": "1", + "content": "Document B", + "embedding": [0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23, 0.23] + }, + { + "_id": "2", + "content": "Document C", + "embedding": [0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15] + } +] \ No newline at end of file diff --git a/haystack-embeddings/indexes/cosine_index.json b/haystack-embeddings/indexes/cosine_index.json new file mode 100644 index 0000000..3df36f3 --- /dev/null +++ b/haystack-embeddings/indexes/cosine_index.json @@ -0,0 +1,18 @@ +{ + "fields": [ + { + "numDimensions": 768, + "path": "embedding", + "similarity": "cosine", + "type": "vector" + }, + { + "type": "filter", + "path": "content" + } + ], + "name": "cosine_index", + "type": "vectorSearch", + "database": "haystack_integration_test", + "collectionName": "test_embeddings_collection" +} \ No newline at end of file diff --git a/haystack-embeddings/indexes/dot_product_index.json b/haystack-embeddings/indexes/dot_product_index.json new file mode 100644 index 0000000..0ab9e57 --- /dev/null +++ b/haystack-embeddings/indexes/dot_product_index.json @@ -0,0 +1,18 @@ +{ + "fields": [ + { + "numDimensions": 768, + "path": "embedding", + "similarity": "dotProduct", + "type": "vector" + }, + { + "type": "filter", + "path": "content" + } + ], + "name": "dotProduct_index", + "type": "vectorSearch", + "database": "haystack_integration_test", + "collectionName": "test_embeddings_collection" +} \ No newline at end of file diff --git a/haystack-embeddings/indexes/euclidean_index.json b/haystack-embeddings/indexes/euclidean_index.json new file mode 100644 index 0000000..1372b71 --- /dev/null +++ b/haystack-embeddings/indexes/euclidean_index.json @@ -0,0 +1,18 @@ +{ + "fields": [ + { + "numDimensions": 768, + "path": "embedding", + "similarity": "euclidean", + "type": "vector" + }, + { + "type": "filter", + "path": "content" + } + ], + "name": "euclidean_index", + "type": "vectorSearch", + "database": "haystack_integration_test", + "collectionName": "test_embeddings_collection" +} \ No newline at end of file diff --git a/haystack-embeddings/indexes/full_text_index.json b/haystack-embeddings/indexes/full_text_index.json new file mode 100644 index 0000000..d029b44 --- /dev/null +++ b/haystack-embeddings/indexes/full_text_index.json @@ -0,0 +1,16 @@ +{ + "mappings": { + "dynamic": false, + "fields": { + "content": [ + { + "type": "string" + } + ] + } + }, + "name": "full_text_index", + "type": "search", + "database": "haystack_integration_test", + "collectionName": "test_embeddings_collection" +} \ No newline at end of file diff --git a/haystack-embeddings/run.sh b/haystack-embeddings/run.sh new file mode 100644 index 0000000..1ee0cf6 --- /dev/null +++ b/haystack-embeddings/run.sh @@ -0,0 +1,25 @@ +#!/bin/bash + +# haystack-core-integrations is a hatch run project + +set -eu + +# Get the MONGODB_URI. +SCRIPT_DIR=$(realpath "$(dirname ${BASH_SOURCE[0]})") +ROOT_DIR=$(dirname $SCRIPT_DIR) +. $ROOT_DIR/env.sh + +. $ROOT_DIR/.evergreen/utils.sh + +PYTHON_BINARY=$(find_python3) +$PYTHON_BINARY -c "import sys; print(f'Python version found: {sys.version_info}')" + +# Installation +cd integrations/mongodb_atlas +$PYTHON_BINARY -m venv .venv +. .venv/bin/activate +PYTHON_BINARY=$(which python) +$PYTHON_BINARY -m pip install -U pip hatch + +# Run tests. +MONGO_CONNECTION_STRING="$MONGODB_URI" hatch run test diff --git a/haystack-fulltext/config.env b/haystack-fulltext/config.env new file mode 100644 index 0000000..4b84856 --- /dev/null +++ b/haystack-fulltext/config.env @@ -0,0 +1,3 @@ +REPO_NAME=haystack-core-integrations +CLONE_URL="https://github.com/deepset-ai/haystack-core-integrations.git" +DATABASE=haystack_test diff --git a/haystack-fulltext/database/synonym_mapping_collection.json b/haystack-fulltext/database/synonym_mapping_collection.json new file mode 100644 index 0000000..9816a12 --- /dev/null +++ b/haystack-fulltext/database/synonym_mapping_collection.json @@ -0,0 +1,8 @@ +[ + + { + "mappingType": "explicit", + "input": ["reynard"], + "synonyms": ["fox"] + } +] \ No newline at end of file diff --git a/haystack-fulltext/database/test_collection.json b/haystack-fulltext/database/test_collection.json new file mode 100644 index 0000000..32960f8 --- /dev/null +++ b/haystack-fulltext/database/test_collection.json @@ -0,0 +1,2 @@ +[ +] \ No newline at end of file diff --git a/haystack-fulltext/indexes/cosine_index.json b/haystack-fulltext/indexes/cosine_index.json new file mode 100644 index 0000000..71e2c34 --- /dev/null +++ b/haystack-fulltext/indexes/cosine_index.json @@ -0,0 +1,18 @@ +{ + "fields": [ + { + "numDimensions": 768, + "path": "embedding", + "similarity": "cosine", + "type": "vector" + }, + { + "type": "filter", + "path": "content" + } + ], + "name": "cosine_index", + "type": "vectorSearch", + "database": "haystack_test", + "collectionName": "test_collection" +} \ No newline at end of file diff --git a/haystack-fulltext/indexes/full_text_index.json b/haystack-fulltext/indexes/full_text_index.json new file mode 100644 index 0000000..fadccc3 --- /dev/null +++ b/haystack-fulltext/indexes/full_text_index.json @@ -0,0 +1,26 @@ +{ + "mappings": { + "dynamic": false, + "fields": { + "content": [ + { + "type": "string", + "analyzer": "lucene.english" + } + ] + } + }, + "synonyms": [ + { + "analyzer": "lucene.english", + "name": "synonym_mapping", + "source": { + "collection": "synonym_mapping_collection" + } + } + ], + "name": "full_text_index", + "type": "search", + "database": "haystack_test", + "collectionName": "test_collection" +} \ No newline at end of file diff --git a/haystack-fulltext/run.sh b/haystack-fulltext/run.sh new file mode 100644 index 0000000..3ed1223 --- /dev/null +++ b/haystack-fulltext/run.sh @@ -0,0 +1,25 @@ +#!/bin/bash + +# haystack-core-integrations is a hatch run project + +set -eu + +# Get the MONGODB_URI. +SCRIPT_DIR=$(realpath "$(dirname ${BASH_SOURCE[0]})") +ROOT_DIR=$(dirname $SCRIPT_DIR) +. $ROOT_DIR/env.sh + +. $ROOT_DIR/.evergreen/utils.sh + +PYTHON_BINARY=$(find_python3) +$PYTHON_BINARY -c "import sys; print(f'Python version found: {sys.version_info}')" + +# Installation +cd integrations/mongodb_atlas +$PYTHON_BINARY -m venv .venv +. .venv/bin/activate +PYTHON_BINARY=$(which python) +$PYTHON_BINARY -m pip install -U pip hatch + +# Run tests. +MONGO_CONNECTION_STRING_2="$MONGODB_URI" hatch run test From 1721287d07f592cda65a6fa5e585b7b5d0ad3832 Mon Sep 17 00:00:00 2001 From: Steven Silvester Date: Fri, 3 Jan 2025 10:14:26 -0600 Subject: [PATCH 2/6] fix names --- .evergreen/config.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.evergreen/config.yml b/.evergreen/config.yml index bd3268d..5087955 100644 --- a/.evergreen/config.yml +++ b/.evergreen/config.yml @@ -313,5 +313,5 @@ buildvariants: run_on: - rhel87-small tasks: - - name: test-haystack-embeddings-local - - name: test-haystack-embeddings-remote + - name: test-haystack-fullstack-local + - name: test-haystack-fullstack-remote From 924dc5b24296fff5c2ea2f55acffca967f08705d Mon Sep 17 00:00:00 2001 From: Steven Silvester Date: Fri, 3 Jan 2025 10:15:15 -0600 Subject: [PATCH 3/6] fix names --- .evergreen/config.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.evergreen/config.yml b/.evergreen/config.yml index 5087955..6cf6d79 100644 --- a/.evergreen/config.yml +++ b/.evergreen/config.yml @@ -313,5 +313,5 @@ buildvariants: run_on: - rhel87-small tasks: - - name: test-haystack-fullstack-local - - name: test-haystack-fullstack-remote + - name: test-haystack-fulltext-local + - name: test-haystack-fulltext-remote From 7c956997c649b522b7253d34f04494f6673dbf08 Mon Sep 17 00:00:00 2001 From: Steven Silvester Date: Fri, 3 Jan 2025 10:26:07 -0600 Subject: [PATCH 4/6] cleanup --- .evergreen/config.yml | 4 ++-- .evergreen/utils.sh | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/.evergreen/config.yml b/.evergreen/config.yml index 6cf6d79..11f5d87 100644 --- a/.evergreen/config.yml +++ b/.evergreen/config.yml @@ -304,7 +304,7 @@ buildvariants: - rhel87-small tasks: - name: test-haystack-embeddings-local - - name: test-haystack-embeddings-remote + # - name: test-haystack-embeddings-remote - name: test-haystack-fulltext-rhel display_name: Haystack FullText RHEL @@ -314,4 +314,4 @@ buildvariants: - rhel87-small tasks: - name: test-haystack-fulltext-local - - name: test-haystack-fulltext-remote + # - name: test-haystack-fulltext-remote diff --git a/.evergreen/utils.sh b/.evergreen/utils.sh index 3eb6c5a..a4b7a4e 100644 --- a/.evergreen/utils.sh +++ b/.evergreen/utils.sh @@ -71,11 +71,12 @@ setup_local_atlas() { podman kill mongodb_atlas_local || true CONTAINER_ID=$(podman run --rm -d -e DO_NOT_TRACK=1 -P --health-cmd "/usr/local/bin/runner healthcheck" $IMAGE) + podman rename $CONTAINER_ID mongodb_atlas_local echo "waiting for container to become healthy..." function wait() { CONTAINER_ID=$1 - podman rename $1 mongodb_atlas_local + echo "waiting for container to become healthy..." podman healthcheck run "$CONTAINER_ID" for _ in $(seq 600); do From dfc28891184ce8adf015d03cb91807513a6936ff Mon Sep 17 00:00:00 2001 From: Steven Silvester Date: Fri, 3 Jan 2025 10:29:25 -0600 Subject: [PATCH 5/6] cleanup --- .evergreen/utils.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.evergreen/utils.sh b/.evergreen/utils.sh index a4b7a4e..f163066 100644 --- a/.evergreen/utils.sh +++ b/.evergreen/utils.sh @@ -71,7 +71,7 @@ setup_local_atlas() { podman kill mongodb_atlas_local || true CONTAINER_ID=$(podman run --rm -d -e DO_NOT_TRACK=1 -P --health-cmd "/usr/local/bin/runner healthcheck" $IMAGE) - podman rename $CONTAINER_ID mongodb_atlas_local + podman rename $CONTAINER_ID mongodb_atlas_local || true echo "waiting for container to become healthy..." function wait() { From c0d073502a47126d0d559b0e4373842d81f7ec1f Mon Sep 17 00:00:00 2001 From: Steven Silvester Date: Fri, 3 Jan 2025 10:36:41 -0600 Subject: [PATCH 6/6] add notes --- .evergreen/config.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.evergreen/config.yml b/.evergreen/config.yml index 11f5d87..4f6208c 100644 --- a/.evergreen/config.yml +++ b/.evergreen/config.yml @@ -304,6 +304,7 @@ buildvariants: - rhel87-small tasks: - name: test-haystack-embeddings-local + # TODO: INTPYTHON-465 # - name: test-haystack-embeddings-remote - name: test-haystack-fulltext-rhel @@ -314,4 +315,5 @@ buildvariants: - rhel87-small tasks: - name: test-haystack-fulltext-local + # TODO: INTPYTHON-465 # - name: test-haystack-fulltext-remote