neo4j / docker-neo4j

Docker Images for the Neo4j Graph Database
Apache License 2.0
331 stars 172 forks source link

Plugins for "genai","n10s","graphql","graph-algorithms" missing after docker install neo4j:5.18 #489

Closed JorisLemay closed 1 month ago

JorisLemay commented 6 months ago

Issue

When running a local docker install for a training, the proposed function genai.vector.encode can not be executed.

Training: Knowledge Graphs for RAG by Neo4J by Andreas Kollegger https://learn.deeplearning.ai/courses/knowledge-graphs-rag/lesson/2/knowledge-graph-fundamentals

The plugin genai is missing in the plugin directory. The plugin apoc.jar is available.

Steps to reproduce.

1. create docker Graph DB in Ubuntu WSL

###########
## .env
###########

# GraphDB
OPENAI_API_KEY=Help!WeAreSurroundedByIdiots
EHEALTHO_GRAPHDB_CONTAINER_NAME="graphdb-container"
EHEALTHO_NEO4J_HOST_PATH=/home/ehealtho/data/test/db/neo4j
EHEALTHO_NEO4J_DB=neo4j
EHEALTHO_NEO4J_URI=bolt://localhost:7687
EHEALTHO_NEO4J_USER=neo4j
EHEALTHO_NEO4J_PASSWORD=DontEvenThinkAboutIt
EHEALTHO_NEO4J_HOST_PORT=7474
EHEALTHO_NEO4J_HOST_PORT_SSL=7473
EHEALTHO_NEO4J_BOLT_PORT=7687

###########
## start_docker_neo4j_graphdb.sh
###########

#!/bin/bash

echo "start the Neo4j GraphDB on docker..."
. .env

# start service
sudo service docker start

sleep 5

# https://neo4j.com/docs/operations-manual/current/docker/introduction/

echo "Creating data and logs folders at ${EHEALTHO_NEO4J_HOST_PATH}"
sudo mkdir -p "${EHEALTHO_NEO4J_HOST_PATH}/data"
sudo mkdir -p "${EHEALTHO_NEO4J_HOST_PATH}/logs"
sudo mkdir -p "${EHEALTHO_NEO4J_HOST_PATH}/backup"
sudo mkdir -p "${EHEALTHO_NEO4J_HOST_PATH}/conf"
sudo mkdir -p "${EHEALTHO_NEO4J_HOST_PATH}/plugins"

echo "Downloading the dump file..."
curl -L -o "${EHEALTHO_NEO4J_HOST_PATH}/backup/${EHEALTHO_NEO4J_DB}.dump" "https://github.com/neo4j-graph-examples/recommendations/blob/main/data/recommendations-50.dump?raw=true"

# Use official Neo4j image from Docker Hub
# https://hub.docker.com/_/neo4j
# https://neo4j.com/docs/operations-manual/current/docker/introduction/
# plugins: https://neo4j.com/docs/operations-manual/5/configuration/plugins/
# plugins in docker: https://neo4j.com/docs/operations-manual/5/docker/plugins/
docker start ${EHEALTHO_GRAPHDB_CONTAINER_NAME} &> /dev/null || docker run \
  --rm \
  --name ${EHEALTHO_GRAPHDB_CONTAINER_NAME} \
  -e NEO4J_AUTH=${EHEALTHO_NEO4J_USER}/${EHEALTHO_NEO4J_PASSWORD} \
  -e NEO4J_apoc_export_file_enabled=true \
  -e NEO4J_apoc_import_file_enabled=true \
  -e NEO4J_apoc_import_file_use__neo4j__config=true \
  -e NEO4J_PLUGINS='["apoc","genai","n10s","graphql","graph-algorithms"]' \
  -v "${EHEALTHO_NEO4J_HOST_PATH}/data":/data \
  -v "${EHEALTHO_NEO4J_HOST_PATH}/logs":/logs \
  -v "${EHEALTHO_NEO4J_HOST_PATH}/backup":/backup \
  -v "${EHEALTHO_NEO4J_HOST_PATH}/conf":/var/lib/neo4j/conf \
  -v "${EHEALTHO_NEO4J_HOST_PATH}/plugins":/plugins \
  -p "${EHEALTHO_NEO4J_HOST_PORT}":7474 \
  -p "${EHEALTHO_NEO4J_HOST_PORT_SSL}":7473 \
  -p "${EHEALTHO_NEO4J_BOLT_PORT}":7687 \
  -d neo4j:5.18-community

echo "Checking if Neo4j is ready..."
until $(curl --output /dev/null --silent --head --fail http://localhost:${EHEALTHO_NEO4J_HOST_PORT}); do
    printf '.'
    sleep 5
done
echo "Neo4j is up and running!"

2. after a successful install

dbms.security.procedures.unrestricted=algo.,graphql.,semantics.,genai.,apoc.*

dbms.unmanaged_extension_classes=org.neo4j.graphql=/graphql

server.memory.pagecache.size=512M

server.default_listen_address=0.0.0.0 server.directories.plugins=/plugins server.directories.logs=/logs

- logs > debug.log 

root@LAPTOP20210403:/home/ehealtho/data/test/db/neo4j/logs# more debug.log | grep plug [classpath] /plugins/apoc.jar server.directories.plugins=/plugins server.directories.plugins=/plugins 2024-03-18 12:41:15.991+0000 WARN [o.n.k.a.p.GlobalProcedures] Failed to load com.opencsv.bean.BeanFieldJoinStringIndex from plugin jar /plugins/apoc.jar: java.lang.NoClassDefFoundError: org/apache/commons/collections4/MultiValuedMap 2024-03-18 12:41:15.997+0000 WARN [o.n.k.a.p.GlobalProcedures] Failed to load com.jayway.jsonpath.spi.mapper.JakartaMappingProvider from plugin jar /plugins/apoc.jar: java.lang.NoClassDefFoundError: jakarta/json/stream/JsonParser 2024-03-18 12:41:16.045+0000 WARN [o.n.k.a.p.GlobalProcedures] Failed to load com.opencsv.bean.AbstractMappingStrategy from plugin jar /plugins/apoc.jar: java.lang.NoClassDefFoundError: org/apache/commons/collections4/MultiValuedMap 2024-03-18 12:41:16.054+0000 WARN [o.n.k.a.p.GlobalProcedures] Failed to load com.opencsv.bean.concurrent.BeanExecutor from plugin jar /plugins/apoc.jar: java.lang.NoClassDefFoundError: org/apache/commons/collections4/ListValuedMap 2024-03-18 12:41:16.077+0000 WARN [o.n.k.a.p.GlobalProcedures] Failed to load com.opencsv.bean.HeaderIndex from plugin jar /plugins/apoc.jar: java.lang.NoClassDefFoundError: org/apache/commons/collections4/MultiValuedMap 2024-03-18 12:41:16.079+0000 WARN [o.n.k.a.p.GlobalProcedures] Failed to load com.opencsv.bean.FuzzyMappingStrategy from plugin jar /plugins/apoc.jar: java.lang.NoClassDefFoundError: org/apache/commons/collections4/MultiValuedMap 2024-03-18 12:41:16.090+0000 WARN [o.n.k.a.p.GlobalProcedures] Failed to load net.minidev.asm.ASMUtil from plugin jar /plugins/apoc.jar: java.lang.NoClassDefFoundError: org/objectweb/asm/MethodVisitor 2024-03-18 12:41:16.091+0000 WARN [o.n.k.a.p.GlobalProcedures] Failed to load apoc.util.hdfs.HDFSUtils$1 from plugin jar /plugins/apoc.jar: java.lang.NoClassDefFoundError: org/apache/hadoop/fs/FSDataInputStream 2024-03-18 12:41:16.092+0000 WARN [o.n.k.a.p.GlobalProcedures] Failed to load com.opencsv.bean.BeanFieldJoin from plugin jar /plugins/apoc.jar: java.lang.NoClassDefFoundError: org/apache/commons/collections4/MultiValuedMap 2024-03-18 12:41:16.094+0000 WARN [o.n.k.a.p.GlobalProcedures] Failed to load META-INF.versions.9.module-info from plugin jar /plugins/apoc.jar: java.lang.NoClassDefFoundError: META-INF/versions/9/module-info is not a class because access_flag ACC_MODULE is set 2024-03-18 12:41:16.112+0000 WARN [o.n.k.a.p.GlobalProcedures] Failed to load com.jayway.jsonpath.spi.json.JakartaJsonProvider$JsonObjectProxy$1 from plugin jar /plugins/apoc.jar: java.lang.NoClassDefFoundError: jakarta/json/JsonObject 2024-03-18 12:41:16.116+0000 WARN [o.n.k.a.p.GlobalProcedures] Failed to load com.opencsv.bean.customconverter.ConvertGermanToBoolean from plugin jar /plugins/apoc.jar: java.lang.NoClassDefFoundError: org/apache/commons/beanutils/ConversionException 2024-03-18 12:41:16.125+0000 WARN [o.n.k.a.p.GlobalProcedures] Failed to load com.opencsv.bean.StatefulBeanToCsv from plugin jar /plugins/apoc.jar: java.lang.NoClassDefFoundError: org/apache/commons/collections4/MultiValuedMap 2024-03-18 12:41:16.128+0000 WARN [o.n.k.a.p.GlobalProcedures] Failed to load com.opencsv.bean.HeaderNameBaseMappingStrategy from plugin jar /plugins/apoc.jar: java.lang.NoClassDefFoundError: org/apache/commons/collections4/MultiValuedMap 2024-03-18 12:41:16.130+0000 WARN [o.n.k.a.p.GlobalProcedures] Failed to load com.jayway.jsonpath.spi.mapper.JakartaMappingProvider$JsonStructureScope from plugin jar /plugins/apoc.jar: java.lang.NoClassDefFoundError: jakarta/json/JsonValue 2024-03-18 12:41:16.132+0000 WARN [o.n.k.a.p.GlobalProcedures] Failed to load com.opencsv.bean.concurrent.IntolerantThreadPoolExecutor from plugin jar /plugins/apoc.jar: java.lang.NoClassDefFoundError: org/apache/commons/collections4/ListValuedMap 2024-03-18 12:41:16.154+0000 WARN [o.n.k.a.p.GlobalProcedures] Failed to load com.opencsv.bean.customconverter.ConverterLanguageToBoolean from plugin jar /plugins/apoc.jar: java.lang.NoClassDefFoundError: org/apache/commons/beanutils/ConversionException 2024-03-18 12:41:16.192+0000 WARN [o.n.k.a.p.GlobalProcedures] Failed to load com.opencsv.bean.customconverter.ConvertFrenchToBoolean from plugin jar /plugins/apoc.jar: java.lang.NoClassDefFoundError: org/apache/commons/beanutils/ConversionException 2024-03-18 12:41:16.193+0000 WARN [o.n.k.a.p.GlobalProcedures] Failed to load com.opencsv.bean.ColumnPositionMappingStrategy from plugin jar /plugins/apoc.jar: java.lang.NoClassDefFoundError: org/apache/commons/collections4/MultiValuedMap 2024-03-18 12:41:16.199+0000 WARN [o.n.k.a.p.GlobalProcedures] Failed to load com.jayway.jsonpath.spi.mapper.JakartaMappingProvider$JsonObjectScope from plugin jar /plugins/apoc.jar: java.lang.NoClassDefFoundError: jakarta/json/JsonValue 2024-03-18 12:41:16.205+0000 WARN [o.n.k.a.p.GlobalProcedures] Failed to load apoc.util.google.cloud.GCStorageURLConnection from plugin jar /plugins/apoc.jar: java.lang.NoClassDefFoundError: com/google/cloud/storage/Storage 2024-03-18 12:41:16.211+0000 WARN [o.n.k.a.p.GlobalProcedures] Failed to load com.jayway.jsonpath.spi.json.JakartaJsonProvider from plugin jar /plugins/apoc.jar: java.lang.NoClassDefFoundError: jakarta/json/JsonObject 2024-03-18 12:41:16.219+0000 WARN [o.n.k.a.p.GlobalProcedures] Failed to load com.opencsv.bean.CsvToBeanBuilder from plugin jar /plugins/apoc.jar: java.lang.NoClassDefFoundError: org/apache/commons/collections4/ListValuedMap 2024-03-18 12:41:16.233+0000 WARN [o.n.k.a.p.GlobalProcedures] Failed to load com.jayway.jsonpath.spi.json.JakartaJsonProvider$JsonArrayProxy from plugin jar /plugins/apoc.jar: java.lang.NoClassDefFoundError: jakarta/json/JsonArray 2024-03-18 12:41:16.247+0000 WARN [o.n.k.a.p.GlobalProcedures] Failed to load com.opencsv.bean.FieldMapByPosition$1 from plugin jar /plugins/apoc.jar: java.lang.NoClassDefFoundError: org/apache/commons/collections4/iterators/LazyIteratorChain 2024-03-18 12:41:16.249+0000 WARN [o.n.k.a.p.GlobalProcedures] Failed to load com.opencsv.bean.HeaderColumnNameMappingStrategy from plugin jar /plugins/apoc.jar: java.lang.NoClassDefFoundError: org/apache/commons/collections4/MultiValuedMap 2024-03-18 12:41:16.252+0000 WARN [o.n.k.a.p.GlobalProcedures] Failed to load apoc.util.hdfs.HDFSUtils from plugin jar /plugins/apoc.jar: java.lang.NoClassDefFoundError: org/apache/hadoop/fs/FSDataOutputStream 2024-03-18 12:41:16.265+0000 WARN [o.n.k.a.p.GlobalProcedures] Failed to load com.jayway.jsonpath.spi.json.JakartaJsonProvider$JsonArrayProxy$1 from plugin jar /plugins/apoc.jar: java.lang.NoClassDefFoundError: jakarta/json/JsonValue 2024-03-18 12:41:16.265+0000 WARN [o.n.k.a.p.GlobalProcedures] Failed to load com.jayway.jsonpath.spi.json.JakartaJsonProvider$JsonArrayProxy$2 from plugin jar /plugins/apoc.jar: java.lang.NoClassDefFoundError: jakarta/json/JsonValue 2024-03-18 12:41:16.277+0000 WARN [o.n.k.a.p.GlobalProcedures] Failed to load com.opencsv.bean.StatefulBeanToCsvBuilder from plugin jar /plugins/apoc.jar: java.lang.NoClassDefFoundError: org/apache/commons/collections4/ListValuedMap 2024-03-18 12:41:16.281+0000 WARN [o.n.k.a.p.GlobalProcedures] Failed to load com.opencsv.bean.HeaderColumnNameTranslateMappingStrategy from plugin jar /plugins/apoc.jar: java.lang.NoClassDefFoundError: org/apache/commons/collections4/MultiValuedMap 2024-03-18 12:41:16.293+0000 WARN [o.n.k.a.p.GlobalProcedures] Failed to load apoc.util.s3.S3URLConnection from plugin jar /plugins/apoc.jar: java.lang.NoClassDefFoundError: com/amazonaws/ClientConfiguration 2024-03-18 12:41:16.295+0000 WARN [o.n.k.a.p.GlobalProcedures] Failed to load com.opencsv.bean.BeanFieldJoinIntegerIndex from plugin jar /plugins/apoc.jar: java.lang.NoClassDefFoundError: org/apache/commons/collections4/MultiValuedMap 2024-03-18 12:41:16.296+0000 WARN [o.n.k.a.p.GlobalProcedures] Failed to load com.jayway.jsonpath.spi.json.JsonOrgJsonProvider from plugin jar /plugins/apoc.jar: java.lang.NoClassDefFoundError: org/json/JSONException 2024-03-18 12:41:16.298+0000 WARN [o.n.k.a.p.GlobalProcedures] Failed to load com.opencsv.bean.concurrent.LineExecutor from plugin jar /plugins/apoc.jar: java.lang.NoClassDefFoundError: org/apache/commons/collections4/ListValuedMap 2024-03-18 12:41:16.313+0000 WARN [o.n.k.a.p.GlobalProcedures] Failed to load net.minidev.asm.BeansAccessBuilder from plugin jar /plugins/apoc.jar: java.lang.NoClassDefFoundError: org/objectweb/asm/MethodVisitor 2024-03-18 12:41:16.321+0000 WARN [o.n.k.a.p.GlobalProcedures] Failed to load com.jayway.jsonpath.spi.json.JakartaJsonProvider$JsonObjectProxy from plugin jar /plugins/apoc.jar: java.lang.NoClassDefFoundError: jakarta/json/JsonObject 2024-03-18 12:41:16.324+0000 WARN [o.n.k.a.p.GlobalProcedures] Failed to load com.opencsv.bean.MappingStrategy from plugin jar /plugins/apoc.jar: java.lang.NoClassDefFoundError: org/apache/commons/collections4/MultiValuedMap 2024-03-18 12:41:16.360+0000 WARN [o.n.k.a.p.GlobalProcedures] Failed to load apoc.util.s3.S3OutputStream$S3UploadManager from plugin jar /plugins/apoc.jar: java.lang.NoClassDefFoundError: com/amazonaws/services/s3/AmazonS3 2024-03-18 12:41:16.369+0000 WARN [o.n.k.a.p.GlobalProcedures] Failed to load com.jayway.jsonpath.spi.mapper.JakartaMappingProvider$JsonArrayScope from plugin jar /plugins/apoc.jar: java.lang.NoClassDefFoundError: jakarta/json/JsonValue 2024-03-18 12:41:16.371+0000 WARN [o.n.k.a.p.GlobalProcedures] Failed to load com.opencsv.bean.ConverterPrimitiveTypes from plugin jar /plugins/apoc.jar: java.lang.NoClassDefFoundError: org/apache/commons/beanutils/ConversionException 2024-03-18 12:41:16.373+0000 WARN [o.n.k.a.p.GlobalProcedures] Failed to load apoc.util.s3.S3Aws from plugin jar /plugins/apoc.jar: java.lang.NoClassDefFoundError: com/amazonaws/auth/AWSCredentials 2024-03-18 12:41:16.375+0000 WARN [o.n.k.a.p.GlobalProcedures] Failed to load com.jayway.jsonpath.spi.mapper.JakartaMappingProvider$JsonStructureToParserAdapter from plugin jar /plugins/apoc.jar: java.lang.NoClassDefFoundError: jakarta/json/stream/JsonParser 2024-03-18 12:41:16.383+0000 WARN [o.n.k.a.p.GlobalProcedures] Failed to load com.opencsv.bean.concurrent.AccumulateCsvResults from plugin jar /plugins/apoc.jar: java.lang.NoClassDefFoundError: org/apache/commons/collections4/ListValuedMap 2024-03-18 12:41:16.385+0000 WARN [o.n.k.a.p.GlobalProcedures] Failed to load apoc.util.s3.S3Aws$1 from plugin jar /plugins/apoc.jar: java.lang.NoClassDefFoundError: com/amazonaws/services/s3/model/S3ObjectInputStream

- apoc.jar is available in the plugins, but algo.*,graphql.*,semantics.*,genai.* are missing

(venv) root@LAPTOP20210403:/home/ehealtho/data/test/db/neo4j/plugins# ls -la total 2828 drwxr-xr-x 2 7474 7474 4096 Mar 18 13:40 . drwxr-xr-x 7 root root 4096 Mar 18 13:40 .. -rwxr--r-- 1 7474 7474 2885593 Mar 7 14:56 apoc.jar


### 3. Expected behaviour

Need to create a embedding on Node attribute movie.tagline via OpenAI API via the plugin genai.vector.encode
```Python
kg.query("""
    MATCH (movie:Movie) WHERE movie.tagline IS NOT NULL
    WITH movie, genai.vector.encode(movie.tagline, "OpenAI", {token: $openAiApiKey}) AS vector
    CALL db.create.setNodeVectorProperty(movie, "taglineEmbedding", vector)
    """, params={"openAiApiKey":OPENAI_API_KEY} )

4. Actual behaviour

ValueError: Generated Cypher Statement is not valid
{code: Neo.ClientError.Statement.SyntaxError} {message: Unknown function 'genai.vector.encode' (line 3, column 21 (offset: 73))
"    WITH movie, genai.vector.encode(movie.tagline, "OpenAI", {token: $openAiApiKey}) AS vector"}

5. Neo4j image tag being used

6. The output of the docker version command

(venv) root@LAPTOP20210403:/home/ehealtho/elu/data/test/db/neo4j/plugins# docker version
Client: Docker Engine - Community
 Version:           24.0.7
 API version:       1.43
 Go version:        go1.20.10
 Git commit:        afdd53b
 Built:             Thu Oct 26 09:07:41 2023
 OS/Arch:           linux/amd64
 Context:           default

Server: Docker Engine - Community
 Engine:
  Version:          24.0.7
  API version:      1.43 (minimum version 1.12)
  Go version:       go1.20.10
  Git commit:       311b9ff
  Built:            Thu Oct 26 09:07:41 2023
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.6.26
  GitCommit:        3dd1e886e55dd695541fdcd67420c2888645a495
 runc:
  Version:          1.1.10
  GitCommit:        v1.1.10-0-g18a0cb0
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0

7. Operating system: (for example Windows 95/Ubuntu 16.04)

Ubuntu 22.04.3 LTS on Windows 11

(venv) root@LAPTOP20210403:/home/ehealtho/data/test/db/neo4j/plugins# cat /etc/os-release
PRETTY_NAME="Ubuntu 22.04.3 LTS"
NAME="Ubuntu"
VERSION_ID="22.04"
VERSION="22.04.3 LTS (Jammy Jellyfish)"
VERSION_CODENAME=jammy
ID=ubuntu
ID_LIKE=debian
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
UBUNTU_CODENAME=jammy
jennyowen commented 6 months ago

Thank you for taking the time to write a thorough bug report! It looks as though there are a few issues happening all at once.

  1. GenAI is missing.

Yes unfortunately GenAI is only available in the enterprise edition of Neo4j. It's available in aura and aura free, which is probably what the training is using for the neo4j backend. The error message could definitely be better though.

  1. APOC is putting a lot of errors into the debug.log.

I know you didn't raise that as a problem but it looks bad. Plus anyone googling the error messages might find this issue. I asked the APOC developers and they said all the Failed to load * errors are because APOC doesn't ship with some optional dependencies to keep the size down. The relevant documentation (including how to fix) is here: https://neo4j.com/docs/apoc/current/installation/#additional_dependencies

  1. "n10s","graphql","graph-algorithms" are not loaded.

The neosemantics plugin can be quite slow in getting updates and releases. It looks as though the most recent one was 5.17.0, so the error here is correct because there is not a compatible 5.18 version. https://github.com/neo4j-labs/neosemantics

The graphql and graph-algorithms plugins seem to be quite out of date. This is a bug in the docker image. Either these aren't supported in 5.x or the image is checking the wrong place for compatibility information.

TLDR:

JorisLemay commented 6 months ago

Thank you, Jennyowen, for the update. Learning that the GenAI plugin, essential for integrating AI services like OpenAI to generate vector embeddings, is exclusive to Neo4j's Enterprise Edition is profoundly disappointing for several reasons:

1. Functionality Misrepresented: The error messages imply a technical issue rather than a clear licensing restriction, misleading users, especially when educational materials suggest open-source access. This misalignment between the Aura Free service used in training and the inaccessibility in similar self-hosted setups creates barriers, particularly troubling for projects in sectors like healthcare.

2. Community Impact: Limiting GenAI to the Enterprise Edition curtails the Neo4j AI community's growth. New developers rely on such essential tools being accessible and affordable for their proof-of-concept projects. This restriction stifles innovation and could alienate a large part of the community looking for low-cost solutions.

3. Missed Opportunity: The paywall potentially pushes developers towards other technologies, overlooking Neo4j for AI-based projects. This could limit the adoption and innovation in the field, a short-sighted move given the potential for open access to drive widespread engagement and development in AI and graph technology.

Moreover, this situation underscores the need for transparency in educational resources like those offered by Deeplearning.AI. Accurate representation of tool availability and licensing would help set realistic expectations, guiding learners more effectively through their educational journey in AI and graph databases. This approach is vital for fostering an informed, prepared, and inclusive community.

As stated on https://neo4j.com/licensing , "Neo4j Loves Open Source. Neo4j is committed to open source." I, and I believe many others, hope this AI API call plugin can reflect this commitment.

Regards, Joris

Documentation Plugin: https://neo4j.com/docs/cypher-manual/current/genai-integrations/

image fig. showing the used training with genai.vector.encode plugin and the database is {'name': 'Neo4j Kernel', 'versions': ['5.17.0'], 'edition': 'community'} Source: https://learn.deeplearning.ai/courses/knowledge-graphs-rag/lesson/4/preparing-text-for-rag

LiJianmin6706 commented 5 months ago

I spent a lot of time in the course named Knowledge Graphs for RAG by Neo4J, and I meet the same issue. Now you tell me GenAI is only available in the enterprise edition of Neo4j, I have no choice but to give up on using and learning this tool.

stefgia commented 1 month ago

We've addressed the issue of having unsupported plugins in the list. Also you will be able to get GenAI plugin on the neo4j community edition for versions after 5.23.0 :)