Skip to content

Commit 412ced5

Browse files
committed
Add support for new vectorstores
1 parent f36eafd commit 412ced5

File tree

2 files changed

+53
-8
lines changed

2 files changed

+53
-8
lines changed

newrelic/config.py

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2144,6 +2144,11 @@ def _process_module_builtin_defaults():
21442144
"newrelic.hooks.mlmodel_langchain",
21452145
"instrument_langchain_vectorstore_similarity_search",
21462146
)
2147+
_process_module_definition(
2148+
"langchain_community.vectorstores.aerospike",
2149+
"newrelic.hooks.mlmodel_langchain",
2150+
"instrument_langchain_vectorstore_similarity_search",
2151+
)
21472152
_process_module_definition(
21482153
"langchain_community.vectorstores.analyticdb",
21492154
"newrelic.hooks.mlmodel_langchain",
@@ -2159,6 +2164,11 @@ def _process_module_builtin_defaults():
21592164
"newrelic.hooks.mlmodel_langchain",
21602165
"instrument_langchain_vectorstore_similarity_search",
21612166
)
2167+
_process_module_definition(
2168+
"langchain_community.vectorstores.aperturedb",
2169+
"newrelic.hooks.mlmodel_langchain",
2170+
"instrument_langchain_vectorstore_similarity_search",
2171+
)
21622172
_process_module_definition(
21632173
"langchain_community.vectorstores.astradb",
21642174
"newrelic.hooks.mlmodel_langchain",
@@ -2174,6 +2184,11 @@ def _process_module_builtin_defaults():
21742184
"newrelic.hooks.mlmodel_langchain",
21752185
"instrument_langchain_vectorstore_similarity_search",
21762186
)
2187+
_process_module_definition(
2188+
"langchain_community.vectorstores.azure_cosmos_db_no_sql",
2189+
"newrelic.hooks.mlmodel_langchain",
2190+
"instrument_langchain_vectorstore_similarity_search",
2191+
)
21772192
_process_module_definition(
21782193
"langchain_community.vectorstores.azure_cosmos_db",
21792194
"newrelic.hooks.mlmodel_langchain",
@@ -2360,6 +2375,12 @@ def _process_module_builtin_defaults():
23602375
"instrument_langchain_vectorstore_similarity_search",
23612376
)
23622377

2378+
_process_module_definition(
2379+
"langchain_community.vectorstores.manticore_search",
2380+
"newrelic.hooks.mlmodel_langchain",
2381+
"instrument_langchain_vectorstore_similarity_search",
2382+
)
2383+
23632384
_process_module_definition(
23642385
"langchain_community.vectorstores.marqo",
23652386
"newrelic.hooks.mlmodel_langchain",
@@ -2408,6 +2429,12 @@ def _process_module_builtin_defaults():
24082429
"instrument_langchain_vectorstore_similarity_search",
24092430
)
24102431

2432+
_process_module_definition(
2433+
"langchain_community.vectorstores.thirdai_neuraldb",
2434+
"newrelic.hooks.mlmodel_langchain",
2435+
"instrument_langchain_vectorstore_similarity_search",
2436+
)
2437+
24112438
_process_module_definition(
24122439
"langchain_community.vectorstores.nucliadb",
24132440
"newrelic.hooks.mlmodel_langchain",
@@ -2636,6 +2663,12 @@ def _process_module_builtin_defaults():
26362663
"instrument_langchain_vectorstore_similarity_search",
26372664
)
26382665

2666+
_process_module_definition(
2667+
"langchain_community.vectorstores.zep_cloud",
2668+
"newrelic.hooks.mlmodel_langchain",
2669+
"instrument_langchain_vectorstore_similarity_search",
2670+
)
2671+
26392672
_process_module_definition(
26402673
"langchain_community.vectorstores.zep",
26412674
"newrelic.hooks.mlmodel_langchain",

newrelic/hooks/mlmodel_langchain.py

Lines changed: 20 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -30,15 +30,17 @@
3030
LANGCHAIN_VERSION = get_package_version("langchain")
3131
EXCEPTION_HANDLING_FAILURE_LOG_MESSAGE = "Exception occurred in langchain instrumentation: While reporting an exception in langchain, another exception occurred. Report this issue to New Relic Support.\n%s"
3232
RECORD_EVENTS_FAILURE_LOG_MESSAGE = "Exception occurred in langchain instrumentation: Failed to record LLM events. Report this issue to New Relic Support.\n%s"
33-
3433
VECTORSTORE_CLASSES = {
34+
"langchain_community.vectorstores.aerospike": "Aerospike",
3535
"langchain_community.vectorstores.alibabacloud_opensearch": "AlibabaCloudOpenSearch",
3636
"langchain_community.vectorstores.analyticdb": "AnalyticDB",
3737
"langchain_community.vectorstores.annoy": "Annoy",
3838
"langchain_community.vectorstores.apache_doris": "ApacheDoris",
39+
"langchain_community.vectorstores.aperturedb": "ApertureDB",
3940
"langchain_community.vectorstores.astradb": "AstraDB",
4041
"langchain_community.vectorstores.atlas": "AtlasDB",
4142
"langchain_community.vectorstores.awadb": "AwaDB",
43+
"langchain_community.vectorstores.azure_cosmos_db_no_sql": "AzureCosmosDBNoSqlVectorSearch",
4244
"langchain_community.vectorstores.azure_cosmos_db": "AzureCosmosDBVectorSearch",
4345
"langchain_community.vectorstores.azuresearch": "AzureSearch",
4446
"langchain_community.vectorstores.baiduvectordb": "BaiduVectorDB",
@@ -72,6 +74,7 @@
7274
"langchain_community.vectorstores.lancedb": "LanceDB",
7375
"langchain_community.vectorstores.lantern": "Lantern",
7476
"langchain_community.vectorstores.llm_rails": "LLMRails",
77+
"langchain_community.vectorstores.manticore_search": "ManticoreSearch",
7578
"langchain_community.vectorstores.marqo": "Marqo",
7679
"langchain_community.vectorstores.matching_engine": "MatchingEngine",
7780
"langchain_community.vectorstores.meilisearch": "Meilisearch",
@@ -80,7 +83,7 @@
8083
"langchain_community.vectorstores.mongodb_atlas": "MongoDBAtlasVectorSearch",
8184
"langchain_community.vectorstores.myscale": "MyScale",
8285
"langchain_community.vectorstores.neo4j_vector": "Neo4jVector",
83-
"langchain_community.vectorstores.thirdai_neuraldb": "NeuralDBVectorStore",
86+
"langchain_community.vectorstores.thirdai_neuraldb": ["NeuralDBClientVectorStore", "NeuralDBVectorStore"],
8487
"langchain_community.vectorstores.nucliadb": "NucliaDB",
8588
"langchain_community.vectorstores.oraclevs": "OracleVS",
8689
"langchain_community.vectorstores.opensearch_vector_search": "OpenSearchVectorSearch",
@@ -119,6 +122,7 @@
119122
"langchain_community.vectorstores.weaviate": "Weaviate",
120123
"langchain_community.vectorstores.xata": "XataVectorStore",
121124
"langchain_community.vectorstores.yellowbrick": "Yellowbrick",
125+
"langchain_community.vectorstores.zep_cloud": "ZepCloudVectorStore",
122126
"langchain_community.vectorstores.zep": "ZepVectorStore",
123127
"langchain_community.vectorstores.docarray.hnsw": "DocArrayHnswSearch",
124128
"langchain_community.vectorstores.docarray.in_memory": "DocArrayInMemorySearch",
@@ -871,12 +875,20 @@ def instrument_langchain_chains_base(module):
871875

872876

873877
def instrument_langchain_vectorstore_similarity_search(module):
874-
vector_class = VECTORSTORE_CLASSES.get(module.__name__)
875-
876-
if vector_class and hasattr(getattr(module, vector_class, ""), "similarity_search"):
877-
wrap_function_wrapper(module, "%s.similarity_search" % vector_class, wrap_similarity_search)
878-
if vector_class and hasattr(getattr(module, vector_class, ""), "asimilarity_search"):
879-
wrap_function_wrapper(module, "%s.asimilarity_search" % vector_class, wrap_asimilarity_search)
878+
def _instrument_class(module, vector_class):
879+
if hasattr(getattr(module, vector_class, ""), "similarity_search"):
880+
wrap_function_wrapper(module, "%s.similarity_search" % vector_class, wrap_similarity_search)
881+
if hasattr(getattr(module, vector_class, ""), "asimilarity_search"):
882+
wrap_function_wrapper(module, "%s.asimilarity_search" % vector_class, wrap_asimilarity_search)
883+
884+
vector_classes = VECTORSTORE_CLASSES.get(module.__name__)
885+
if vector_classes is None:
886+
return
887+
if isinstance(vector_classes, list):
888+
for vector_class in vector_classes:
889+
_instrument_class(module, vector_class)
890+
else:
891+
_instrument_class(module, vector_classes)
880892

881893

882894
def instrument_langchain_core_tools(module):

0 commit comments

Comments
 (0)