2
2
3
3
from llama_index .core import Document , StorageContext , VectorStoreIndex
4
4
from llama_index .embeddings .huggingface import HuggingFaceEmbedding
5
- from llama_index .vector_stores .opensearch import (
6
- OpensearchVectorClient ,
7
- OpensearchVectorStore ,
8
- )
5
+ from llama_index .vector_stores .opensearch import OpensearchVectorStore
9
6
10
7
from core .abstracts .services import AbstractLlamaIndexService
11
8
from core .utils import utils
@@ -22,43 +19,25 @@ class LlamaIndexService(AbstractLlamaIndexService):
22
19
"""
23
20
24
21
def __init__ (
25
- self ,
26
- open_search_url : str ,
27
- open_search_index : str ,
28
- open_search_user : str ,
29
- open_search_password : str ,
30
- logger : Logger ,
22
+ self ,
23
+ vector_store : OpensearchVectorStore ,
24
+ logger : Logger ,
31
25
):
32
26
"""
33
27
Initialize the LlamaIndexService.
34
28
35
29
Args:
36
- open_search_url (str): URL of the OpenSearch instance.
37
- open_search_index (str): Name of the index in OpenSearch where vectors are stored.
38
- open_search_user (str): Username for OpenSearch.
39
- open_search_password (str): Password for OpenSearch.
30
+ vector_store (OpensearchVectorStore): Elasticsearch/Opensearch vector store instance
40
31
logger (Logger): Logger instance.
41
32
"""
42
33
self .logger = logger
43
34
44
35
self .logger .info ("Initializing LlamaIndexService..." )
45
- self .client = OpensearchVectorClient (
46
- endpoint = open_search_url ,
47
- index = open_search_index ,
48
- dim = 384 ,
49
- embedding_field = EMBEDDING_FIELD ,
50
- text_field = TEXT_FIELD ,
51
- http_auth = (open_search_user , open_search_password ),
52
- )
53
-
54
- self .vector_store = OpensearchVectorStore (self .client )
55
- self .storage_context = StorageContext .from_defaults (
56
- vector_store = self .vector_store
57
- )
36
+ self .storage_context = StorageContext .from_defaults (vector_store = vector_store )
58
37
self .embed_model = HuggingFaceEmbedding (model_name = "BAAI/bge-small-en-v1.5" )
59
38
60
39
def vector_store_index (
61
- self , twin_id : str , source_name : str , file_uuid : str , documents : list
40
+ self , twin_id : str , source_name : str , file_uuid : str , documents : list
62
41
) -> str :
63
42
"""
64
43
Index documents and store vectors in OpenSearch.
@@ -109,3 +88,15 @@ def vector_store_index(
109
88
message_error = f"Error while indexing documents for { twin_id } /{ source_name } /{ file_uuid } "
110
89
self .logger .error (e )
111
90
raise ValueError (message_error )
91
+
92
+ def vectorize_string (self , text_input : str ) -> list :
93
+ """
94
+ Retrieves the embedded value (vector) for the text_input string
95
+
96
+ Args:
97
+ text_input (str): Text to vectorize
98
+
99
+ Returns:
100
+ list: a list of float values representing the text_input vector
101
+ """
102
+ return self .embed_model .get_text_embedding (text_input )
0 commit comments