Skip to content

docker setup to run the LangChain neo4j-advanced-rag template using langserve

License

Notifications You must be signed in to change notification settings

joshuasundance-swca/langchain-neo4j-advanced-rag-docker

Repository files navigation

langchain-neo4j-advanced-rag-docker

License: MIT python

Push to Docker Hub langchain-neo4j-advanced-rag-docker on Docker Hub Docker Image Size (tag)

pre-commit Ruff Checked with mypy Code style: black

security: bandit Known Vulnerabilities

This repo provides a docker setup to run the LangChain neo4j-advanced-rag template using langserve.

Quickstart

Docker Compose (recommended)

  1. Create a .env file:
OPENAI_API_KEY=sk-...

LANGCHAIN_API_KEY=ls__...
LANGCHAIN_ENDPOINT=https://api.smith.langchain.com
LANGCHAIN_TRACING_V2=true
LANGCHAIN_PROJECT="langchain-neo4j-advanced-rag-docker"

NEO4J_PASSWORD=langchain-neo4j-advanced-rag-docker
  1. Create a docker-compose.yml file:
version: '3.8'

services:
  neo4j:
    image: neo4j:5.14.0
    container_name: neo4j
    volumes:
      - neo4j-data:/data
    environment:
      - "NEO4J_AUTH=neo4j/${NEO4J_PASSWORD:-langchain-neo4j-advanced-rag-docker}"
      - "NEO4J_PLUGINS=[\"apoc\"]"
    networks:
      - langchain-neo4j-advanced-rag-docker
    healthcheck:
      test: wget http://localhost:7474 || exit 1
      interval: 1s
      timeout: 10s
      retries: 20
      start_period: 3s
    restart: always

  neo4j-init:
    image: joshuasundance/langchain-neo4j-advanced-rag-docker:1.0.4
    container_name: neo4j-init
    environment:
      - "OPENAI_API_KEY=${OPENAI_API_KEY:?}"
      - "NEO4J_URI=bolt://neo4j:7687"
      - "NEO4J_USERNAME=neo4j"
      - "NEO4J_PASSWORD=${NEO4J_PASSWORD:-langchain-neo4j-advanced-rag-docker}"
      - "LANGCHAIN_API_KEY=${LANGCHAIN_API_KEY-placeholder}"
      - "LANGCHAIN_TRACING_V2=${LANGCHAIN_TRACING_V2:-false}"
      - "LANGCHAIN_PROJECT=${LANGCHAIN_PROJECT:-langchain-neo4j-advanced-rag-docker}"
    depends_on:
      neo4j:
        condition: service_healthy
    networks:
      - langchain-neo4j-advanced-rag-docker
    command: ["/bin/bash", "/home/appuser/neo4j-advanced-rag/ingest.sh"]

  langchain-neo4j-advanced-rag-docker:
    image: joshuasundance/langchain-neo4j-advanced-rag-docker:1.0.4
    container_name: langchain-neo4j-advanced-rag-docker
    environment:
      - "OPENAI_API_KEY=${OPENAI_API_KEY:?}"
      - "NEO4J_URI=bolt://neo4j:7687"
      - "NEO4J_USERNAME=neo4j"
      - "NEO4J_PASSWORD=${NEO4J_PASSWORD:-langchain-neo4j-advanced-rag-docker}"
      - "LANGCHAIN_API_KEY=${LANGCHAIN_API_KEY-placeholder}"
      - "LANGCHAIN_TRACING_V2=${LANGCHAIN_TRACING_V2:-false}"
      - "LANGCHAIN_PROJECT=${LANGCHAIN_PROJECT:-langchain-neo4j-advanced-rag-docker}"
    ports:
      - "${APP_PORT:-8000}:8000"
    depends_on:
      neo4j:
        condition: service_healthy
      neo4j-init:
        condition: service_completed_successfully
    networks:
      - langchain-neo4j-advanced-rag-docker

volumes:
  neo4j-data:

networks:
  langchain-neo4j-advanced-rag-docker:
    driver: bridge
  1. Start the services using docker compose up

Using Docker with an existing Neo4j instance

docker run -d --name langchain-neo4j-advanced-rag-docker \
  -e OPENAI_API_KEY=sk-... \
  -e LANGCHAIN_API_KEY=ls__... \
  -e LANGCHAIN_TRACING_V2=true \
  -e LANGCHAIN_PROJECT=langchain-neo4j-advanced-rag-docker \
  -e NEO4J_URI=... \
  -e NEO4J_USERNAME=... \
  -e NEO4J_PASSWORD=... \
  -p 8000:8000 \
  joshuasundance/langchain-neo4j-advanced-rag-docker:1.0.4

Usage

  • The service will be available at http://localhost:8000.

  • You can access the OpenAPI documentation at http://localhost:8000/docs, http://localhost:8000/redoc, and http://localhost:8000/openapi.json.

  • Access the Research Playground at http://127.0.0.1:8000/neo4j-advanced-rag/playground/.

  • You can also use the RemoteRunnable class to interact with the service:

from langserve.client import RemoteRunnable

runnable = RemoteRunnable("http://localhost:8000/neo4j-advanced-rag")

See the LangChain docs for more information.

About

docker setup to run the LangChain neo4j-advanced-rag template using langserve

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •