diff --git a/.github/workflows/_release_docker.yml b/.github/workflows/_release_docker.yml deleted file mode 100644 index ca8e9621b32..00000000000 --- a/.github/workflows/_release_docker.yml +++ /dev/null @@ -1,62 +0,0 @@ -name: release_docker - -on: - workflow_call: - inputs: - dockerfile: - required: true - type: string - description: "Path to the Dockerfile to build" - image: - required: true - type: string - description: "Name of the image to build" - -env: - TEST_TAG: ${{ inputs.image }}:test - LATEST_TAG: ${{ inputs.image }}:latest - -jobs: - docker: - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@v4 - - name: Get git tag - uses: actions-ecosystem/action-get-latest-tag@v1 - id: get-latest-tag - - name: Set docker tag - env: - VERSION: ${{ steps.get-latest-tag.outputs.tag }} - run: | - echo "VERSION_TAG=${{ inputs.image }}:${VERSION#v}" >> $GITHUB_ENV - - name: Set up QEMU - uses: docker/setup-qemu-action@v3 - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 - - name: Login to Docker Hub - uses: docker/login-action@v3 - with: - username: ${{ secrets.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_TOKEN }} - - name: Build for Test - uses: docker/build-push-action@v5 - with: - context: . - file: ${{ inputs.dockerfile }} - load: true - tags: ${{ env.TEST_TAG }} - - name: Test - run: | - docker run --rm ${{ env.TEST_TAG }} python -c "import langchain" - - name: Build and Push to Docker Hub - uses: docker/build-push-action@v5 - with: - context: . - file: ${{ inputs.dockerfile }} - # We can only build for the intersection of platforms supported by - # QEMU and base python image, for now build only for - # linux/amd64 and linux/arm64 - platforms: linux/amd64,linux/arm64 - tags: ${{ env.LATEST_TAG }},${{ env.VERSION_TAG }} - push: true diff --git a/.github/workflows/langchain_release_docker.yml b/.github/workflows/langchain_release_docker.yml deleted file mode 100644 index 8e74afb324d..00000000000 --- a/.github/workflows/langchain_release_docker.yml +++ /dev/null @@ -1,14 +0,0 @@ ---- -name: docker/langchain/langchain Release - -on: - workflow_dispatch: # Allows to trigger the workflow manually in GitHub UI - workflow_call: # Allows triggering from another workflow - -jobs: - release: - uses: ./.github/workflows/_release_docker.yml - with: - dockerfile: docker/Dockerfile.base - image: langchain/langchain - secrets: inherit diff --git a/docker/Dockerfile.base b/docker/Dockerfile.base deleted file mode 100644 index e8d453dd9fb..00000000000 --- a/docker/Dockerfile.base +++ /dev/null @@ -1,3 +0,0 @@ -FROM python:3.11 - -RUN pip install langchain diff --git a/docker/Makefile b/docker/Makefile deleted file mode 100644 index d578580c323..00000000000 --- a/docker/Makefile +++ /dev/null @@ -1,12 +0,0 @@ -# Makefile - -build_graphdb: - docker build --tag graphdb ./graphdb - -start_graphdb: - docker-compose up -d graphdb - -down: - docker-compose down -v --remove-orphans - -.PHONY: build_graphdb start_graphdb down diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml deleted file mode 100644 index fd6a877c29b..00000000000 --- a/docker/docker-compose.yml +++ /dev/null @@ -1,84 +0,0 @@ -# docker-compose to make it easier to spin up integration tests. -# Services should use NON standard ports to avoid collision with -# any existing services that might be used for development. -# ATTENTION: When adding a service below use a non-standard port -# increment by one from the preceding port. -# For credentials always use `langchain` and `langchain` for the -# username and password. -version: "3" -name: langchain-tests - -services: - redis: - image: redis/redis-stack-server:latest - # We use non standard ports since - # these instances are used for testing - # and users may already have existing - # redis instances set up locally - # for other projects - ports: - - "6020:6379" - volumes: - - ./redis-volume:/data - graphdb: - image: graphdb - ports: - - "6021:7200" - mongo: - image: mongo:latest - container_name: mongo_container - ports: - - "6022:27017" - environment: - MONGO_INITDB_ROOT_USERNAME: langchain - MONGO_INITDB_ROOT_PASSWORD: langchain - postgres: - image: postgres:16 - environment: - POSTGRES_DB: langchain - POSTGRES_USER: langchain - POSTGRES_PASSWORD: langchain - ports: - - "6023:5432" - command: | - postgres -c log_statement=all - healthcheck: - test: - [ - "CMD-SHELL", - "psql postgresql://langchain:langchain@localhost/langchain --command 'SELECT 1;' || exit 1", - ] - interval: 5s - retries: 60 - volumes: - - postgres_data:/var/lib/postgresql/data - pgvector: - # postgres with the pgvector extension - image: ankane/pgvector - environment: - POSTGRES_DB: langchain - POSTGRES_USER: langchain - POSTGRES_PASSWORD: langchain - ports: - - "6024:5432" - command: | - postgres -c log_statement=all - healthcheck: - test: - [ - "CMD-SHELL", - "psql postgresql://langchain:langchain@localhost/langchain --command 'SELECT 1;' || exit 1", - ] - interval: 5s - retries: 60 - volumes: - - postgres_data_pgvector:/var/lib/postgresql/data - vdms: - image: intellabs/vdms:latest - container_name: vdms_container - ports: - - "6025:55555" - -volumes: - postgres_data: - postgres_data_pgvector: diff --git a/docker/graphdb/Dockerfile b/docker/graphdb/Dockerfile deleted file mode 100644 index dfcbe7e622d..00000000000 --- a/docker/graphdb/Dockerfile +++ /dev/null @@ -1,5 +0,0 @@ -FROM ontotext/graphdb:10.5.1 -RUN mkdir -p /opt/graphdb/dist/data/repositories/langchain -COPY config.ttl /opt/graphdb/dist/data/repositories/langchain/ -COPY graphdb_create.sh /run.sh -ENTRYPOINT bash /run.sh diff --git a/docker/graphdb/config.ttl b/docker/graphdb/config.ttl deleted file mode 100644 index dcbdeeebe12..00000000000 --- a/docker/graphdb/config.ttl +++ /dev/null @@ -1,46 +0,0 @@ -@prefix rdfs: . -@prefix rep: . -@prefix sr: . -@prefix sail: . -@prefix graphdb: . - -[] a rep:Repository ; - rep:repositoryID "langchain" ; - rdfs:label "" ; - rep:repositoryImpl [ - rep:repositoryType "graphdb:SailRepository" ; - sr:sailImpl [ - sail:sailType "graphdb:Sail" ; - - graphdb:read-only "false" ; - - # Inference and Validation - graphdb:ruleset "empty" ; - graphdb:disable-sameAs "true" ; - graphdb:check-for-inconsistencies "false" ; - - # Indexing - graphdb:entity-id-size "32" ; - graphdb:enable-context-index "false" ; - graphdb:enablePredicateList "true" ; - graphdb:enable-fts-index "false" ; - graphdb:fts-indexes ("default" "iri") ; - graphdb:fts-string-literals-index "default" ; - graphdb:fts-iris-index "none" ; - - # Queries and Updates - graphdb:query-timeout "0" ; - graphdb:throw-QueryEvaluationException-on-timeout "false" ; - graphdb:query-limit-results "0" ; - - # Settable in the file but otherwise hidden in the UI and in the RDF4J console - graphdb:base-URL "http://example.org/owlim#" ; - graphdb:defaultNS "" ; - graphdb:imports "" ; - graphdb:repository-type "file-repository" ; - graphdb:storage-folder "storage" ; - graphdb:entity-index-size "10000000" ; - graphdb:in-memory-literal-properties "true" ; - graphdb:enable-literal-index "true" ; - ] - ]. diff --git a/docker/graphdb/graphdb_create.sh b/docker/graphdb/graphdb_create.sh deleted file mode 100644 index 52ffe8ad74a..00000000000 --- a/docker/graphdb/graphdb_create.sh +++ /dev/null @@ -1,28 +0,0 @@ -#! /bin/bash -REPOSITORY_ID="langchain" -GRAPHDB_URI="http://localhost:7200/" - -echo -e "\nUsing GraphDB: ${GRAPHDB_URI}" - -function startGraphDB { - echo -e "\nStarting GraphDB..." - exec /opt/graphdb/dist/bin/graphdb -} - -function waitGraphDBStart { - echo -e "\nWaiting GraphDB to start..." - for _ in $(seq 1 5); do - CHECK_RES=$(curl --silent --write-out '%{http_code}' --output /dev/null ${GRAPHDB_URI}/rest/repositories) - if [ "${CHECK_RES}" = '200' ]; then - echo -e "\nUp and running" - break - fi - sleep 30s - echo "CHECK_RES: ${CHECK_RES}" - done -} - - -startGraphDB & -waitGraphDBStart -wait diff --git a/libs/langchain/Dockerfile b/libs/langchain/Dockerfile deleted file mode 100644 index b950527bb01..00000000000 --- a/libs/langchain/Dockerfile +++ /dev/null @@ -1,48 +0,0 @@ -# This is a Dockerfile for running unit tests - -ARG POETRY_HOME=/opt/poetry - -# Use the Python base image -FROM python:3.11.2-bullseye AS builder - -# Define the version of Poetry to install (default is 1.4.2) -ARG POETRY_VERSION=1.4.2 - -# Define the directory to install Poetry to (default is /opt/poetry) -ARG POETRY_HOME - -# Create a Python virtual environment for Poetry and install it -RUN python3 -m venv ${POETRY_HOME} && \ - $POETRY_HOME/bin/pip install --upgrade pip && \ - $POETRY_HOME/bin/pip install poetry==${POETRY_VERSION} - -# Test if Poetry is installed in the expected path -RUN echo "Poetry version:" && $POETRY_HOME/bin/poetry --version - -# Set the working directory for the app -WORKDIR /app - -# Use a multi-stage build to install dependencies -FROM builder AS dependencies - -ARG POETRY_HOME - -# Copy only the dependency files for installation -COPY pyproject.toml poetry.lock poetry.toml ./ - -# Install the Poetry dependencies (this layer will be cached as long as the dependencies don't change) -RUN $POETRY_HOME/bin/poetry install --no-interaction --no-ansi --with test - -# Use a multi-stage build to run tests -FROM dependencies AS tests - -# Copy the rest of the app source code (this layer will be invalidated and rebuilt whenever the source code changes) -COPY . . - -RUN /opt/poetry/bin/poetry install --no-interaction --no-ansi --with test - -# Set the entrypoint to run tests using Poetry -ENTRYPOINT ["/opt/poetry/bin/poetry", "run", "pytest"] - -# Set the default command to run all unit tests -CMD ["tests/unit_tests"] diff --git a/libs/langchain/dev.Dockerfile b/libs/langchain/dev.Dockerfile deleted file mode 100644 index 527248483fd..00000000000 --- a/libs/langchain/dev.Dockerfile +++ /dev/null @@ -1,63 +0,0 @@ -# This is a Dockerfile for the Development Container - -# Use the Python base image -ARG VARIANT="3.11-bullseye" -FROM mcr.microsoft.com/devcontainers/python:0-${VARIANT} AS langchain-dev-base - -USER vscode - -# Define the version of Poetry to install (default is 1.4.2) -# Define the directory of python virtual environment -ARG PYTHON_VIRTUALENV_HOME=/home/vscode/langchain-py-env \ - POETRY_VERSION=1.3.2 - -ENV POETRY_VIRTUALENVS_IN_PROJECT=false \ - POETRY_NO_INTERACTION=true - -# Install Poetry outside of the v`irtual environment to avoid conflicts -RUN python3 -m pip install --user pipx && \ - python3 -m pipx ensurepath && \ - pipx install poetry==${POETRY_VERSION} - -# Create a Python virtual environment for the project -RUN python3 -m venv ${PYTHON_VIRTUALENV_HOME} && \ - $PYTHON_VIRTUALENV_HOME/bin/pip install --upgrade pip - -ENV PATH="$PYTHON_VIRTUALENV_HOME/bin:$PATH" \ - VIRTUAL_ENV=$PYTHON_VIRTUALENV_HOME - -# Setup for bash -RUN poetry completions bash >> /home/vscode/.bash_completion && \ - echo "export PATH=$PYTHON_VIRTUALENV_HOME/bin:$PATH" >> ~/.bashrc - -# Set the working directory for the app -WORKDIR /workspaces/langchain - -# Use a multi-stage build to install dependencies -FROM langchain-dev-base AS langchain-dev-dependencies - -ARG PYTHON_VIRTUALENV_HOME - -# Copy only the dependency files for installation -COPY libs/langchain/pyproject.toml libs/langchain/poetry.toml libs/langchain/poetry.lock ./ - -# Copy the langchain library for installation -COPY libs/langchain/ libs/langchain/ - -# Copy the core library for installation -COPY libs/core ../core - -# Copy the community library for installation -COPY libs/community/ ../community/ - -# Copy the text-splitters library for installation -COPY libs/text-splitters/ ../text-splitters/ - -# Copy the partners library for installation -COPY libs/partners ../partners/ - -# Copy the standard-tests library for installation -COPY libs/standard-tests ../standard-tests/ - -# Install the Poetry dependencies (this layer will be cached as long as the dependencies don't change) -RUN poetry install --no-interaction --no-ansi --with dev,test,docs