Skip to content

Commit 212a5a3

Browse files
committed
2 parents 7182523 + 4c36f6c commit 212a5a3

Some content is hidden

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

74 files changed

+7283
-1246
lines changed

.github/workflows/pr-e2e-tests.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@ concurrency:
1313
jobs:
1414
e2e-tests:
1515
runs-on: ubuntu-latest
16+
strategy:
17+
max-parallel: 1
1618
strategy:
1719
matrix:
1820
python-version: ['3.8', '3.12']

CHANGELOG.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,18 @@
22

33
## Next
44

5+
## 0.4.0
6+
7+
### Added
8+
- Add optional custom_prompt arg to the Text2CypherRetriever class.
9+
- Introduced support for Component/Pipeline flexible architecture.
10+
- Added new components for knowledge graph construction, including text splitters, schema builders, entity-relation extractors, and Neo4j writers.
11+
- Implemented end-to-end tests for the new knowledge graph builder pipeline.
12+
13+
### Changed
14+
- `GraphRAG.search` method first parameter has been renamed `query_text` (was `query`) for consistency with the retrievers interface.
15+
- Made `GraphRAG.search` method backwards compatible with the query parameter, raising warnings to encourage using query_text instead.
16+
517
## 0.3.1
618

719
### Fixed

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ Assumption: Neo4j running with a defined vector index
6868

6969
```python
7070
from neo4j import GraphDatabase
71-
from neo4j_genai.indexes import upsert_query
71+
from neo4j_genai.indexes import upsert_vector
7272

7373
URI = "neo4j://localhost:7687"
7474
AUTH = ("neo4j", "password")
@@ -78,7 +78,7 @@ driver = GraphDatabase.driver(URI, auth=AUTH)
7878

7979
# Upsert the vector
8080
vector = ...
81-
upsert_query(
81+
upsert_vector(
8282
driver,
8383
node_id=1,
8484
embedding_property="vectorProperty",

docs/source/api.rst

Lines changed: 116 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,75 @@
33
API Documentation
44
#################
55

6+
.. _components-section:
7+
8+
**********
9+
Components
10+
**********
11+
12+
KGWriter
13+
========
14+
15+
.. autoclass:: neo4j_genai.experimental.components.kg_writer.KGWriter
16+
:members: run
17+
18+
Neo4jWriter
19+
===========
20+
21+
.. autoclass:: neo4j_genai.experimental.components.kg_writer.Neo4jWriter
22+
:members: run
23+
24+
TextSplitter
25+
============
26+
27+
.. autoclass:: neo4j_genai.experimental.components.text_splitters.base.TextSplitter
28+
:members: run
29+
30+
LangChainTextSplitterAdapter
31+
============================
32+
33+
.. autoclass:: neo4j_genai.experimental.components.text_splitters.langchain.LangChainTextSplitterAdapter
34+
:members: run
35+
36+
LlamaIndexTextSplitterAdapter
37+
=============================
38+
39+
.. autoclass:: neo4j_genai.experimental.components.text_splitters.llamaindex.LlamaIndexTextSplitterAdapter
40+
:members: run
41+
42+
TextChunkEmbedder
43+
=================
44+
45+
.. autoclass:: neo4j_genai.experimental.components.embedder.TextChunkEmbedder
46+
:members: run
47+
48+
SchemaBuilder
49+
=============
50+
51+
.. autoclass:: neo4j_genai.experimental.components.schema.SchemaBuilder
52+
:members: run
53+
54+
EntityRelationExtractor
55+
=======================
56+
57+
.. autoclass:: neo4j_genai.experimental.components.entity_relation_extractor.EntityRelationExtractor
58+
:members:
59+
:undoc-members: component_inputs, component_outputs
60+
61+
LLMEntityRelationExtractor
62+
==========================
63+
64+
.. autoclass:: neo4j_genai.experimental.components.entity_relation_extractor.LLMEntityRelationExtractor
65+
:members: run
66+
667
.. _retrievers-section:
768

869
**********
970
Retrievers
1071
**********
1172

1273
RetrieverInterface
13-
===================
74+
==================
1475

1576
.. autoclass:: neo4j_genai.retrievers.base.Retriever
1677
:members:
@@ -70,43 +131,57 @@ PineconeNeo4jRetriever
70131
:members: search
71132

72133

73-
**********
134+
********
74135
Embedder
75-
**********
136+
********
76137

77138
.. autoclass:: neo4j_genai.embedder.Embedder
78139
:members:
79140

80141
SentenceTransformerEmbeddings
81-
================================
142+
=============================
82143

83-
.. autoclass:: neo4j_genai.embeddings.SentenceTransformerEmbeddings
144+
.. autoclass:: neo4j_genai.embeddings.sentence_transformers.SentenceTransformerEmbeddings
84145
:members:
85146

86147
**********
87148
Generation
88149
**********
89150

90151
LLMInterface
91-
======================
152+
============
92153

93154
.. autoclass:: neo4j_genai.llm.LLMInterface
94155
:members:
95156

96157

97158
OpenAILLM
98-
======================
159+
=========
99160

100161
.. autoclass:: neo4j_genai.llm.OpenAILLM
101162
:members:
102163

103164

104165
PromptTemplate
105-
======================
166+
==============
106167

107168
.. autoclass:: neo4j_genai.generation.prompts.PromptTemplate
108169
:members:
109170

171+
172+
RagTemplate
173+
-----------
174+
175+
.. autoclass:: neo4j_genai.generation.prompts.RagTemplate
176+
:members:
177+
178+
ERExtractionTemplate
179+
--------------------
180+
181+
.. autoclass:: neo4j_genai.generation.prompts.ERExtractionTemplate
182+
:members:
183+
184+
110185
.. _database-interaction-section:
111186

112187
********************
@@ -125,6 +200,8 @@ Database Interaction
125200

126201
.. autofunction:: neo4j_genai.indexes.upsert_vector
127202

203+
.. autofunction:: neo4j_genai.indexes.upsert_vector_on_relationship
204+
128205

129206
******
130207
Errors
@@ -157,6 +234,12 @@ Errors
157234

158235
* :class:`neo4j_genai.exceptions.LLMGenerationError`
159236

237+
* :class:`neo4j_genai.experimental.pipeline.exceptions.PipelineDefinitionError`
238+
239+
* :class:`neo4j_genai.experimental.pipeline.exceptions.PipelineMissingDependencyError`
240+
241+
* :class:`neo4j_genai.experimental.pipeline.exceptions.PipelineStatusUpdateError`
242+
160243

161244
Neo4jGenAiError
162245
===============
@@ -222,7 +305,7 @@ Neo4jVersionError
222305

223306

224307
Text2CypherRetrievalError
225-
==========================
308+
=========================
226309

227310
.. autoclass:: neo4j_genai.exceptions.Text2CypherRetrievalError
228311
:show-inheritance:
@@ -236,21 +319,42 @@ SchemaFetchError
236319

237320

238321
RagInitializationError
239-
==========================
322+
======================
240323

241324
.. autoclass:: neo4j_genai.exceptions.RagInitializationError
242325
:show-inheritance:
243326

244327

245328
PromptMissingInputError
246-
==========================
329+
=======================
247330

248331
.. autoclass:: neo4j_genai.exceptions.PromptMissingInputError
249332
:show-inheritance:
250333

251334

252335
LLMGenerationError
253-
==========================
336+
==================
254337

255338
.. autoclass:: neo4j_genai.exceptions.LLMGenerationError
256339
:show-inheritance:
340+
341+
342+
PipelineDefinitionError
343+
=======================
344+
345+
.. autoclass:: neo4j_genai.experimental.pipeline.exceptions.PipelineDefinitionError
346+
:show-inheritance:
347+
348+
349+
PipelineMissingDependencyError
350+
==============================
351+
352+
.. autoclass:: neo4j_genai.experimental.pipeline.exceptions.PipelineMissingDependencyError
353+
:show-inheritance:
354+
355+
356+
PipelineStatusUpdateError
357+
=========================
358+
359+
.. autoclass:: neo4j_genai.experimental.pipeline.exceptions.PipelineStatusUpdateError
360+
:show-inheritance:
136 KB
Loading

docs/source/index.rst

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,9 @@ Python versions supported:
3030
Topics
3131
******
3232

33-
+ :ref:`user-guide`
33+
+ :ref:`user-guide-rag`
34+
+ :ref:`user-guide-kg-builder`
35+
+ :ref:`user-guide-pipeline`
3436
+ :ref:`api-documentation`
3537
+ :ref:`types-documentation`
3638

@@ -39,7 +41,9 @@ Topics
3941
:caption: Contents:
4042
:hidden:
4143

42-
user_guide.rst
44+
user_guide_rag.rst
45+
user_guide_kg_builder.rst
46+
user_guide_pipeline.rst
4347
api.rst
4448
types.rst
4549

@@ -113,7 +117,7 @@ Note that the below example is not the only way you can upsert data into your Ne
113117
.. code:: python
114118
115119
from neo4j import GraphDatabase
116-
from neo4j_genai.indexes import upsert_query
120+
from neo4j_genai.indexes import upsert_vector
117121
118122
URI = "neo4j://localhost:7687"
119123
AUTH = ("neo4j", "password")
@@ -123,7 +127,7 @@ Note that the below example is not the only way you can upsert data into your Ne
123127
124128
# Upsert the vector
125129
vector = ...
126-
upsert_query(
130+
upsert_vector(
127131
driver,
128132
node_id=1,
129133
embedding_property="vectorProperty",

docs/source/types.rst

Lines changed: 55 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,30 +5,80 @@ Types
55
*****
66

77
RawSearchResult
8-
==================
8+
===============
99

1010
.. autoclass:: neo4j_genai.types.RawSearchResult
1111

1212

1313
RetrieverResult
14-
==================
14+
===============
1515

1616
.. autoclass:: neo4j_genai.types.RetrieverResult
1717

1818

1919
RetrieverResultItem
20-
====================
20+
===================
2121

2222
.. autoclass:: neo4j_genai.types.RetrieverResultItem
2323

2424

2525
LLMResponse
26-
====================
26+
===========
2727

2828
.. autoclass:: neo4j_genai.llm.types.LLMResponse
2929

3030

3131
RagResultModel
32-
====================
32+
==============
3333

3434
.. autoclass:: neo4j_genai.generation.types.RagResultModel
35+
36+
TextChunk
37+
=========
38+
39+
.. autoclass:: neo4j_genai.experimental.components.types.TextChunk
40+
41+
TextChunks
42+
==========
43+
44+
.. autoclass:: neo4j_genai.experimental.components.types.TextChunks
45+
46+
Neo4jNode
47+
=========
48+
49+
.. autoclass:: neo4j_genai.experimental.components.types.Neo4jNode
50+
51+
Neo4jRelationship
52+
=================
53+
54+
.. autoclass:: neo4j_genai.experimental.components.types.Neo4jRelationship
55+
56+
Neo4jGraph
57+
==========
58+
59+
.. autoclass:: neo4j_genai.experimental.components.types.Neo4jGraph
60+
61+
KGWriterModel
62+
=============
63+
64+
.. autoclass:: neo4j_genai.experimental.components.kg_writer.KGWriterModel
65+
66+
SchemaProperty
67+
==============
68+
69+
.. autoclass:: neo4j_genai.experimental.components.schema.SchemaProperty
70+
71+
SchemaEntity
72+
============
73+
74+
.. autoclass:: neo4j_genai.experimental.components.schema.SchemaEntity
75+
76+
SchemaRelation
77+
==============
78+
79+
.. autoclass:: neo4j_genai.experimental.components.schema.SchemaEntity
80+
81+
SchemaConfig
82+
============
83+
84+
.. autoclass:: neo4j_genai.experimental.components.schema.SchemaConfig

0 commit comments

Comments
 (0)