Skip to content

Commit 46d8806

Browse files
committed
feat(py): Added the indexer and the retriever for the resolve_action plugin
1 parent 7b00f78 commit 46d8806

File tree

2 files changed

+36
-8
lines changed

2 files changed

+36
-8
lines changed

py/plugins/dev-local-vectorstore/src/genkit/plugins/dev_local_vectorstore/plugin_api.py

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -67,9 +67,18 @@ def resolve_action(
6767
kind: ActionKind,
6868
name: str,
6969
) -> None:
70-
...
7170

72-
def _configure_dev_local_retriever(self, ai: GenkitRegistry) -> Action:
71+
if kind is ActionKind.RETRIEVER:
72+
self._configure_dev_local_retriever(ai, name)
73+
return None
74+
75+
if kind is ActionKind.INDEXER:
76+
self._configure_dev_local_indexer(ai, name)
77+
78+
79+
return None
80+
81+
def _configure_dev_local_retriever(self, ai: GenkitRegistry, name: str | None = None) -> Action:
7382
"""Registers Local Vector Store retriever for provided parameters.
7483
7584
Args:
@@ -81,7 +90,7 @@ def _configure_dev_local_retriever(self, ai: GenkitRegistry) -> Action:
8190
"""
8291
retriever = DevLocalVectorStoreRetriever(
8392
ai=ai,
84-
index_name=self.index_name,
93+
index_name=name or self.index_name,
8594
embedder=self.embedder,
8695
embedder_options=self.embedder_options,
8796
)
@@ -92,7 +101,7 @@ def _configure_dev_local_retriever(self, ai: GenkitRegistry) -> Action:
92101
fn=retriever.retrieve,
93102
)
94103

95-
def _configure_dev_local_indexer(self, ai: GenkitRegistry) -> Action:
104+
def _configure_dev_local_indexer(self, ai: GenkitRegistry, name: str | None = None) -> Action:
96105
"""Registers Local Vector Store indexer for provided parameters.
97106
98107
Args:
@@ -104,13 +113,16 @@ def _configure_dev_local_indexer(self, ai: GenkitRegistry) -> Action:
104113
"""
105114
indexer = DevLocalVectorStoreIndexer(
106115
ai=ai,
107-
index_name=self.index_name,
116+
index_name= name or self.index_name,
108117
embedder=self.embedder,
109118
embedder_options=self.embedder_options,
110119
)
111120

112121
DevLocalVectorStore._indexers[self.index_name] = indexer
113122

123+
124+
125+
114126
@classmethod
115127
async def index(cls, index_name: str, documents: Docs) -> None:
116128
"""Lookups the Local Vector Store indexer for provided index name.

py/plugins/dev-local-vectorstore/tests/test_plugin_api.py

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,14 +27,30 @@
2727
@pytest.mark.parametrize(
2828
'kind, name',
2929
[
30-
(ActionKind.MODEL, 'test_model'),
31-
(ActionKind.EMBEDDER, 'test_embedder'),
30+
(ActionKind.INDEXER, 'test_indexer'),
31+
(ActionKind.RETRIEVER, 'test_retriever'),
3232
],
3333
)
3434
def test_action_resolve(kind, name, vectorstore_plugin_instance):
3535
"""Test initialize method of Vectorstore plugin."""
3636
ai_mock = MagicMock(spec=Genkit)
3737
assert hasattr(vectorstore_plugin_instance, "resolve_action")
38-
assert vectorstore_plugin_instance.resolve_action(ai_mock, kind, name) is None
3938

39+
if kind == ActionKind.RETRIEVER:
40+
vectorstore_plugin_instance._configure_dev_local_retriever = MagicMock()
4041

42+
assert vectorstore_plugin_instance.resolve_action(ai_mock, kind, name) is None
43+
44+
vectorstore_plugin_instance._configure_dev_local_retriever.assert_called_once_with(
45+
ai_mock,
46+
name
47+
)
48+
else:
49+
vectorstore_plugin_instance._configure_dev_local_indexer = MagicMock()
50+
51+
assert vectorstore_plugin_instance.resolve_action(ai_mock, kind, name) is None
52+
53+
vectorstore_plugin_instance._configure_dev_local_indexer.assert_called_once_with(
54+
ai_mock,
55+
name
56+
)

0 commit comments

Comments
 (0)