Skip to content

Commit 48503c0

Browse files
committed
Moves the KG builder code to the experimental folder
1 parent cc48eef commit 48503c0

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

42 files changed

+133
-110
lines changed

docs/source/api.rst

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -12,55 +12,55 @@ Components
1212
KGWriter
1313
========
1414

15-
.. autoclass:: neo4j_genai.components.kg_writer.KGWriter
15+
.. autoclass:: neo4j_genai.experimental.components.kg_writer.KGWriter
1616
:members: run
1717

1818
Neo4jWriter
1919
===========
2020

21-
.. autoclass:: neo4j_genai.components.kg_writer.Neo4jWriter
21+
.. autoclass:: neo4j_genai.experimental.components.kg_writer.Neo4jWriter
2222
:members: run
2323

2424
TextSplitter
2525
============
2626

27-
.. autoclass:: neo4j_genai.components.text_splitters.base.TextSplitter
27+
.. autoclass:: neo4j_genai.experimental.components.text_splitters.base.TextSplitter
2828
:members: run
2929

3030
LangChainTextSplitterAdapter
3131
============================
3232

33-
.. autoclass:: neo4j_genai.components.text_splitters.langchain.LangChainTextSplitterAdapter
33+
.. autoclass:: neo4j_genai.experimental.components.text_splitters.langchain.LangChainTextSplitterAdapter
3434
:members: run
3535

3636
LlamaIndexTextSplitterAdapter
3737
=============================
3838

39-
.. autoclass:: neo4j_genai.components.text_splitters.llamaindex.LlamaIndexTextSplitterAdapter
39+
.. autoclass:: neo4j_genai.experimental.components.text_splitters.llamaindex.LlamaIndexTextSplitterAdapter
4040
:members: run
4141

4242
TextChunkEmbedder
4343
=================
4444

45-
.. autoclass:: neo4j_genai.components.embedder.TextChunkEmbedder
45+
.. autoclass:: neo4j_genai.experimental.components.embedder.TextChunkEmbedder
4646
:members: run
4747

4848
SchemaBuilder
4949
=============
5050

51-
.. autoclass:: neo4j_genai.components.schema.SchemaBuilder
51+
.. autoclass:: neo4j_genai.experimental.components.schema.SchemaBuilder
5252
:members: run
5353

5454
EntityRelationExtractor
5555
=======================
5656

57-
.. autoclass:: neo4j_genai.components.entity_relation_extractor.EntityRelationExtractor
57+
.. autoclass:: neo4j_genai.experimental.components.entity_relation_extractor.EntityRelationExtractor
5858
:members: run
5959

6060
LLMEntityRelationExtractor
6161
==========================
6262

63-
.. autoclass:: neo4j_genai.components.entity_relation_extractor.LLMEntityRelationExtractor
63+
.. autoclass:: neo4j_genai.experimental.components.entity_relation_extractor.LLMEntityRelationExtractor
6464
:members: run
6565

6666
.. _retrievers-section:
@@ -219,11 +219,11 @@ Errors
219219

220220
* :class:`neo4j_genai.exceptions.LLMGenerationError`
221221

222-
* :class:`neo4j_genai.pipeline.exceptions.PipelineDefinitionError`
222+
* :class:`neo4j_genai.experimental.pipeline.exceptions.PipelineDefinitionError`
223223

224-
* :class:`neo4j_genai.pipeline.exceptions.PipelineMissingDependencyError`
224+
* :class:`neo4j_genai.experimental.pipeline.exceptions.PipelineMissingDependencyError`
225225

226-
* :class:`neo4j_genai.pipeline.exceptions.PipelineStatusUpdateError`
226+
* :class:`neo4j_genai.experimental.pipeline.exceptions.PipelineStatusUpdateError`
227227

228228

229229
Neo4jGenAiError
@@ -327,19 +327,19 @@ LLMGenerationError
327327
PipelineDefinitionError
328328
=======================
329329

330-
.. autoclass:: neo4j_genai.pipeline.exceptions.PipelineDefinitionError
330+
.. autoclass:: neo4j_genai.experimental.pipeline.exceptions.PipelineDefinitionError
331331
:show-inheritance:
332332

333333

334334
PipelineMissingDependencyError
335335
==============================
336336

337-
.. autoclass:: neo4j_genai.pipeline.exceptions.PipelineMissingDependencyError
337+
.. autoclass:: neo4j_genai.experimental.pipeline.exceptions.PipelineMissingDependencyError
338338
:show-inheritance:
339339

340340

341341
PipelineStatusUpdateError
342342
=========================
343343

344-
.. autoclass:: neo4j_genai.pipeline.exceptions.PipelineStatusUpdateError
344+
.. autoclass:: neo4j_genai.experimental.pipeline.exceptions.PipelineStatusUpdateError
345345
:show-inheritance:

docs/source/types.rst

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -36,49 +36,49 @@ RagResultModel
3636
TextChunk
3737
=========
3838

39-
.. autoclass:: neo4j_genai.components.types.TextChunk
39+
.. autoclass:: neo4j_genai.experimental.components.types.TextChunk
4040

4141
TextChunks
4242
==========
4343

44-
.. autoclass:: neo4j_genai.components.types.TextChunks
44+
.. autoclass:: neo4j_genai.experimental.components.types.TextChunks
4545

4646
Neo4jNode
4747
=========
4848

49-
.. autoclass:: neo4j_genai.components.types.Neo4jNode
49+
.. autoclass:: neo4j_genai.experimental.components.types.Neo4jNode
5050

5151
Neo4jRelationship
5252
=================
5353

54-
.. autoclass:: neo4j_genai.components.types.Neo4jRelationship
54+
.. autoclass:: neo4j_genai.experimental.components.types.Neo4jRelationship
5555

5656
Neo4jGraph
5757
==========
5858

59-
.. autoclass:: neo4j_genai.components.types.Neo4jGraph
59+
.. autoclass:: neo4j_genai.experimental.components.types.Neo4jGraph
6060

6161
KGWriterModel
6262
=============
6363

64-
.. autoclass:: neo4j_genai.components.kg_writer.KGWriterModel
64+
.. autoclass:: neo4j_genai.experimental.components.kg_writer.KGWriterModel
6565

6666
SchemaProperty
6767
==============
6868

69-
.. autoclass:: neo4j_genai.components.schema.SchemaProperty
69+
.. autoclass:: neo4j_genai.experimental.components.schema.SchemaProperty
7070

7171
SchemaEntity
7272
============
7373

74-
.. autoclass:: neo4j_genai.components.schema.SchemaEntity
74+
.. autoclass:: neo4j_genai.experimental.components.schema.SchemaEntity
7575

7676
SchemaRelation
7777
==============
7878

79-
.. autoclass:: neo4j_genai.components.schema.SchemaEntity
79+
.. autoclass:: neo4j_genai.experimental.components.schema.SchemaEntity
8080

8181
SchemaConfig
8282
============
8383

84-
.. autoclass:: neo4j_genai.components.schema.SchemaConfig
84+
.. autoclass:: neo4j_genai.experimental.components.schema.SchemaConfig

docs/source/user_guide_pipeline.rst

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@ such as chunking documents or saving results to Neo4j.
1919
This package includes a few default components, but developers can create
2020
their own by following these steps:
2121

22-
1. Create a subclass of the Pydantic `neo4j_genai.pipeline.DataModel` to represent the data being returned by the component
23-
2. Create a subclass of `neo4j_genai.pipeline.Component`
22+
1. Create a subclass of the Pydantic `neo4j_genai.experimental.pipeline.DataModel` to represent the data being returned by the component
23+
2. Create a subclass of `neo4j_genai.experimental.pipeline.Component`
2424
3. Create a run method in this new class and specify the required inputs and output model using the just created `DataModel`
2525
4. Implement the run method: it's an `async` method, allowing tasks to be parallelized and awaited within this method.
2626

@@ -29,7 +29,7 @@ the resulting sum:
2929

3030
.. code:: python
3131
32-
from neo4j_genai.pipeline import Component, DataModel
32+
from neo4j_genai.experimental.pipeline import Component, DataModel
3333
3434
class IntResultModel(DataModel):
3535
result: int
@@ -53,7 +53,7 @@ Here's how to create a simple pipeline and propagate results from one component
5353
.. code:: python
5454
5555
import asyncio
56-
from neo4j_genai.pipeline import Pipeline
56+
from neo4j_genai.experimental.pipeline import Pipeline
5757
5858
pipe = Pipeline()
5959
pipe.add_component("a", ComponentAdd())

examples/pipeline/kg_builder.py

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -20,22 +20,24 @@
2020

2121
import neo4j
2222
from langchain_text_splitters import CharacterTextSplitter
23-
from neo4j_genai.components.embedder import TextChunkEmbedder
24-
from neo4j_genai.components.entity_relation_extractor import (
23+
from neo4j_genai.embeddings.openai import OpenAIEmbeddings
24+
from neo4j_genai.experimental.components.embedder import TextChunkEmbedder
25+
from neo4j_genai.experimental.components.entity_relation_extractor import (
2526
LLMEntityRelationExtractor,
2627
OnError,
2728
)
28-
from neo4j_genai.components.kg_writer import Neo4jWriter
29-
from neo4j_genai.components.schema import (
29+
from neo4j_genai.experimental.components.kg_writer import Neo4jWriter
30+
from neo4j_genai.experimental.components.schema import (
3031
SchemaBuilder,
3132
SchemaEntity,
3233
SchemaProperty,
3334
SchemaRelation,
3435
)
35-
from neo4j_genai.components.text_splitters.langchain import LangChainTextSplitterAdapter
36-
from neo4j_genai.embeddings.openai import OpenAIEmbeddings
36+
from neo4j_genai.experimental.components.text_splitters.langchain import (
37+
LangChainTextSplitterAdapter,
38+
)
39+
from neo4j_genai.experimental.pipeline import Pipeline
3740
from neo4j_genai.llm import OpenAILLM
38-
from neo4j_genai.pipeline import Pipeline
3941

4042
# set log level to DEBUG for all neo4j_genai.* loggers
4143
logging.config.dictConfig(

examples/pipeline/kg_builder_with_schema.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,12 @@
1818
import logging
1919
from typing import Any
2020

21-
from neo4j_genai.components.schema import (
21+
from neo4j_genai.experimental.components.schema import (
2222
SchemaBuilder,
2323
SchemaEntity,
2424
SchemaRelation,
2525
)
26-
from neo4j_genai.pipeline import Component, DataModel
26+
from neo4j_genai.experimental.pipeline import Component, DataModel
2727
from pydantic import BaseModel, validate_call
2828

2929
logging.basicConfig(level=logging.DEBUG)
@@ -87,7 +87,7 @@ async def run(self, graph: Neo4jGraph) -> WriterModel:
8787

8888

8989
if __name__ == "__main__":
90-
from neo4j_genai.pipeline import Pipeline
90+
from neo4j_genai.experimental.pipeline import Pipeline
9191

9292
# Instantiate Entity and Relation objects
9393
entities = [

examples/pipeline/rag.py

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,15 @@
2424

2525
import neo4j
2626
from neo4j_genai.embeddings.openai import OpenAIEmbeddings
27+
from neo4j_genai.experimental.pipeline import Component, Pipeline
28+
from neo4j_genai.experimental.pipeline.component import DataModel
29+
from neo4j_genai.experimental.pipeline.types import (
30+
ComponentConfig,
31+
ConnectionConfig,
32+
PipelineConfig,
33+
)
2734
from neo4j_genai.generation import PromptTemplate, RagTemplate
2835
from neo4j_genai.llm import LLMInterface, OpenAILLM
29-
from neo4j_genai.pipeline import Component, Pipeline
30-
from neo4j_genai.pipeline.component import DataModel
31-
from neo4j_genai.pipeline.types import ComponentConfig, ConnectionConfig, PipelineConfig
3236
from neo4j_genai.retrievers import VectorRetriever
3337
from neo4j_genai.retrievers.base import Retriever
3438

src/neo4j_genai/components/embedder.py renamed to src/neo4j_genai/experimental/components/embedder.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,9 @@
1414
# limitations under the License.
1515
from pydantic import validate_call
1616

17-
from neo4j_genai.components.types import TextChunk, TextChunks
1817
from neo4j_genai.embedder import Embedder
19-
from neo4j_genai.pipeline.component import Component
18+
from neo4j_genai.experimental.components.types import TextChunk, TextChunks
19+
from neo4j_genai.experimental.pipeline.component import Component
2020

2121

2222
class TextChunkEmbedder(Component):
@@ -29,9 +29,9 @@ class TextChunkEmbedder(Component):
2929
3030
.. code-block:: python
3131
32-
from neo4j_genai.components.embedder import TextChunkEmbedder
32+
from neo4j_genai.experimental.components.embedder import TextChunkEmbedder
3333
from neo4j_genai.embeddings.openai import OpenAIEmbeddings
34-
from neo4j_genai.pipeline import Pipeline
34+
from neo4j_genai.experimental.pipeline import Pipeline
3535
3636
embedder = OpenAIEmbeddings(model="text-embedding-3-large")
3737
chunk_embedder = TextChunkEmbedder(embedder)

src/neo4j_genai/components/entity_relation_extractor.py renamed to src/neo4j_genai/experimental/components/entity_relation_extractor.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -24,18 +24,18 @@
2424

2525
from pydantic import ValidationError, validate_call
2626

27-
from neo4j_genai.components.schema import SchemaConfig
28-
from neo4j_genai.components.types import (
27+
from neo4j_genai.exceptions import LLMGenerationError
28+
from neo4j_genai.experimental.components.schema import SchemaConfig
29+
from neo4j_genai.experimental.components.types import (
2930
Neo4jGraph,
3031
Neo4jNode,
3132
Neo4jRelationship,
3233
TextChunk,
3334
TextChunks,
3435
)
35-
from neo4j_genai.exceptions import LLMGenerationError
36+
from neo4j_genai.experimental.pipeline.component import Component
3637
from neo4j_genai.generation.prompts import ERExtractionTemplate, PromptTemplate
3738
from neo4j_genai.llm import LLMInterface
38-
from neo4j_genai.pipeline.component import Component
3939

4040
logger = logging.getLogger(__name__)
4141

@@ -163,9 +163,9 @@ class LLMEntityRelationExtractor(EntityRelationExtractor):
163163
164164
.. code-block:: python
165165
166-
from neo4j_genai.components.entity_relation_extractor import LLMEntityRelationExtractor
166+
from neo4j_genai.experimental.components.entity_relation_extractor import LLMEntityRelationExtractor
167167
from neo4j_genai.llm import OpenAILLM
168-
from neo4j_genai.pipeline import Pipeline
168+
from neo4j_genai.experimental.pipeline import Pipeline
169169
170170
llm = OpenAILLM(model_name="gpt-4o", model_params={"temperature": 0, "response_format": {"type": "object"}})
171171

src/neo4j_genai/components/kg_writer.py renamed to src/neo4j_genai/experimental/components/kg_writer.py

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,14 @@
2121
import neo4j
2222
from pydantic import validate_call
2323

24-
from neo4j_genai.components.types import Neo4jGraph, Neo4jNode, Neo4jRelationship
24+
from neo4j_genai.experimental.components.types import (
25+
Neo4jGraph,
26+
Neo4jNode,
27+
Neo4jRelationship,
28+
)
29+
from neo4j_genai.experimental.pipeline.component import Component, DataModel
2530
from neo4j_genai.indexes import upsert_vector, upsert_vector_on_relationship
2631
from neo4j_genai.neo4j_queries import UPSERT_NODE_QUERY, UPSERT_RELATIONSHIP_QUERY
27-
from neo4j_genai.pipeline.component import Component, DataModel
2832

2933
logger = logging.getLogger(__name__)
3034

@@ -66,8 +70,8 @@ class Neo4jWriter(KGWriter):
6670
.. code-block:: python
6771
6872
from neo4j import GraphDatabase
69-
from neo4j_genai.components.kg_writer import Neo4jWriter
70-
from neo4j_genai.pipeline import Pipeline
73+
from neo4j_genai.experimental.components.kg_writer import Neo4jWriter
74+
from neo4j_genai.experimental.pipeline import Pipeline
7175
7276
URI = "neo4j://localhost:7687"
7377
AUTH = ("neo4j", "password")

src/neo4j_genai/components/schema.py renamed to src/neo4j_genai/experimental/components/schema.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
from pydantic import BaseModel, ValidationError, model_validator, validate_call
2020

2121
from neo4j_genai.exceptions import SchemaValidationError
22-
from neo4j_genai.pipeline import Component, DataModel
22+
from neo4j_genai.experimental.pipeline import Component, DataModel
2323

2424

2525
class SchemaProperty(BaseModel):
@@ -107,13 +107,13 @@ class SchemaBuilder(Component):
107107
108108
.. code-block:: python
109109
110-
from neo4j_genai.components.schema import (
110+
from neo4j_genai.experimental.components.schema import (
111111
SchemaBuilder,
112112
SchemaEntity,
113113
SchemaProperty,
114114
SchemaRelation,
115115
)
116-
from neo4j_genai.pipeline import Pipeline
116+
from neo4j_genai.experimental.pipeline import Pipeline
117117
118118
entities = [
119119
SchemaEntity(

src/neo4j_genai/components/text_splitters/base.py renamed to src/neo4j_genai/experimental/components/text_splitters/base.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@
1616

1717
from abc import abstractmethod
1818

19-
from neo4j_genai.components.types import TextChunks
20-
from neo4j_genai.pipeline.component import Component
19+
from neo4j_genai.experimental.components.types import TextChunks
20+
from neo4j_genai.experimental.pipeline.component import Component
2121

2222

2323
class TextSplitter(Component):

0 commit comments

Comments
 (0)