langchain 0.0.203 → 0.0.204-rc.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cache/cloudflare_kv.cjs +15 -69
- package/dist/cache/cloudflare_kv.d.ts +1 -42
- package/dist/cache/cloudflare_kv.js +1 -67
- package/dist/cache/momento.cjs +15 -135
- package/dist/cache/momento.d.ts +1 -91
- package/dist/cache/momento.js +1 -133
- package/dist/cache/upstash_redis.cjs +15 -72
- package/dist/cache/upstash_redis.d.ts +1 -45
- package/dist/cache/upstash_redis.js +1 -70
- package/dist/callbacks/handlers/llmonitor.cjs +14 -238
- package/dist/callbacks/handlers/llmonitor.d.ts +1 -35
- package/dist/callbacks/handlers/llmonitor.js +1 -233
- package/dist/chains/openai_moderation.cjs +2 -2
- package/dist/chains/openai_moderation.d.ts +1 -1
- package/dist/chains/openai_moderation.js +1 -1
- package/dist/chat_models/anthropic.d.ts +4 -4
- package/dist/chat_models/baiduwenxin.cjs +15 -411
- package/dist/chat_models/baiduwenxin.d.ts +1 -150
- package/dist/chat_models/baiduwenxin.js +1 -409
- package/dist/chat_models/bedrock/index.cjs +15 -33
- package/dist/chat_models/bedrock/index.d.ts +1 -23
- package/dist/chat_models/bedrock/index.js +1 -29
- package/dist/chat_models/bedrock/web.cjs +15 -360
- package/dist/chat_models/bedrock/web.d.ts +1 -82
- package/dist/chat_models/bedrock/web.js +1 -356
- package/dist/chat_models/cloudflare_workersai.cjs +15 -216
- package/dist/chat_models/cloudflare_workersai.d.ts +1 -68
- package/dist/chat_models/cloudflare_workersai.js +1 -214
- package/dist/chat_models/fireworks.cjs +15 -89
- package/dist/chat_models/fireworks.d.ts +1 -43
- package/dist/chat_models/fireworks.js +1 -87
- package/dist/chat_models/googlepalm.cjs +15 -235
- package/dist/chat_models/googlepalm.d.ts +1 -108
- package/dist/chat_models/googlepalm.js +1 -233
- package/dist/chat_models/googlevertexai/index.cjs +15 -40
- package/dist/chat_models/googlevertexai/index.d.ts +1 -28
- package/dist/chat_models/googlevertexai/index.js +1 -38
- package/dist/chat_models/googlevertexai/web.cjs +15 -39
- package/dist/chat_models/googlevertexai/web.d.ts +1 -28
- package/dist/chat_models/googlevertexai/web.js +1 -37
- package/dist/chat_models/iflytek_xinghuo/index.cjs +14 -40
- package/dist/chat_models/iflytek_xinghuo/index.d.ts +1 -13
- package/dist/chat_models/iflytek_xinghuo/index.js +1 -36
- package/dist/chat_models/iflytek_xinghuo/web.cjs +15 -36
- package/dist/chat_models/iflytek_xinghuo/web.d.ts +1 -13
- package/dist/chat_models/iflytek_xinghuo/web.js +1 -34
- package/dist/chat_models/llama_cpp.cjs +15 -275
- package/dist/chat_models/llama_cpp.d.ts +1 -71
- package/dist/chat_models/llama_cpp.js +1 -273
- package/dist/chat_models/minimax.cjs +15 -578
- package/dist/chat_models/minimax.d.ts +1 -369
- package/dist/chat_models/minimax.js +1 -576
- package/dist/chat_models/ollama.cjs +15 -394
- package/dist/chat_models/ollama.d.ts +1 -127
- package/dist/chat_models/ollama.js +1 -392
- package/dist/chat_models/openai.cjs +4 -698
- package/dist/chat_models/openai.d.ts +4 -137
- package/dist/chat_models/openai.js +2 -695
- package/dist/chat_models/portkey.cjs +15 -167
- package/dist/chat_models/portkey.d.ts +1 -17
- package/dist/chat_models/portkey.js +1 -165
- package/dist/chat_models/yandex.cjs +15 -132
- package/dist/chat_models/yandex.d.ts +1 -30
- package/dist/chat_models/yandex.js +1 -130
- package/dist/document_loaders/fs/openai_whisper_audio.cjs +2 -2
- package/dist/document_loaders/fs/openai_whisper_audio.d.ts +1 -1
- package/dist/document_loaders/fs/openai_whisper_audio.js +1 -1
- package/dist/document_transformers/html_to_text.cjs +15 -47
- package/dist/document_transformers/html_to_text.d.ts +1 -30
- package/dist/document_transformers/html_to_text.js +1 -45
- package/dist/document_transformers/mozilla_readability.cjs +15 -53
- package/dist/document_transformers/mozilla_readability.d.ts +1 -31
- package/dist/document_transformers/mozilla_readability.js +1 -51
- package/dist/embeddings/bedrock.cjs +15 -109
- package/dist/embeddings/bedrock.d.ts +1 -71
- package/dist/embeddings/bedrock.js +1 -107
- package/dist/embeddings/cloudflare_workersai.cjs +15 -67
- package/dist/embeddings/cloudflare_workersai.d.ts +1 -28
- package/dist/embeddings/cloudflare_workersai.js +1 -65
- package/dist/embeddings/cohere.cjs +15 -124
- package/dist/embeddings/cohere.d.ts +1 -66
- package/dist/embeddings/cohere.js +1 -122
- package/dist/embeddings/googlepalm.cjs +15 -88
- package/dist/embeddings/googlepalm.d.ts +1 -61
- package/dist/embeddings/googlepalm.js +1 -86
- package/dist/embeddings/googlevertexai.cjs +15 -81
- package/dist/embeddings/googlevertexai.d.ts +1 -54
- package/dist/embeddings/googlevertexai.js +1 -79
- package/dist/embeddings/gradient_ai.cjs +15 -101
- package/dist/embeddings/gradient_ai.d.ts +1 -48
- package/dist/embeddings/gradient_ai.js +1 -99
- package/dist/embeddings/hf.cjs +15 -75
- package/dist/embeddings/hf.d.ts +1 -41
- package/dist/embeddings/hf.js +1 -73
- package/dist/embeddings/hf_transformers.cjs +15 -87
- package/dist/embeddings/hf_transformers.d.ts +1 -47
- package/dist/embeddings/hf_transformers.js +1 -85
- package/dist/embeddings/llama_cpp.cjs +15 -81
- package/dist/embeddings/llama_cpp.d.ts +1 -42
- package/dist/embeddings/llama_cpp.js +1 -79
- package/dist/embeddings/minimax.cjs +15 -165
- package/dist/embeddings/minimax.d.ts +1 -119
- package/dist/embeddings/minimax.js +1 -163
- package/dist/embeddings/ollama.cjs +15 -118
- package/dist/embeddings/ollama.d.ts +1 -34
- package/dist/embeddings/ollama.js +1 -116
- package/dist/embeddings/openai.cjs +2 -240
- package/dist/embeddings/openai.d.ts +1 -82
- package/dist/embeddings/openai.js +1 -239
- package/dist/embeddings/tensorflow.cjs +3 -96
- package/dist/embeddings/tensorflow.d.ts +1 -59
- package/dist/embeddings/tensorflow.js +1 -83
- package/dist/embeddings/voyage.cjs +15 -118
- package/dist/embeddings/voyage.d.ts +1 -66
- package/dist/embeddings/voyage.js +1 -116
- package/dist/experimental/chat_models/ollama_functions.d.ts +1 -1
- package/dist/experimental/openai_assistant/index.cjs +3 -3
- package/dist/experimental/openai_assistant/index.d.ts +1 -1
- package/dist/experimental/openai_assistant/index.js +1 -1
- package/dist/experimental/openai_assistant/schema.d.ts +1 -1
- package/dist/experimental/openai_files/index.cjs +2 -2
- package/dist/experimental/openai_files/index.d.ts +1 -1
- package/dist/experimental/openai_files/index.js +1 -1
- package/dist/graphs/neo4j_graph.cjs +3 -254
- package/dist/graphs/neo4j_graph.d.ts +1 -63
- package/dist/graphs/neo4j_graph.js +1 -241
- package/dist/llms/ai21.cjs +15 -200
- package/dist/llms/ai21.d.ts +1 -100
- package/dist/llms/ai21.js +1 -198
- package/dist/llms/aleph_alpha.cjs +15 -374
- package/dist/llms/aleph_alpha.d.ts +1 -161
- package/dist/llms/aleph_alpha.js +1 -372
- package/dist/llms/bedrock/web.cjs +15 -310
- package/dist/llms/bedrock/web.d.ts +1 -66
- package/dist/llms/bedrock/web.js +1 -308
- package/dist/llms/cloudflare_workersai.cjs +15 -168
- package/dist/llms/cloudflare_workersai.d.ts +1 -55
- package/dist/llms/cloudflare_workersai.js +1 -166
- package/dist/llms/cohere.cjs +15 -110
- package/dist/llms/cohere.d.ts +1 -54
- package/dist/llms/cohere.js +1 -108
- package/dist/llms/fireworks.cjs +15 -90
- package/dist/llms/fireworks.d.ts +1 -33
- package/dist/llms/fireworks.js +1 -88
- package/dist/llms/googlepalm.cjs +15 -134
- package/dist/llms/googlepalm.d.ts +1 -92
- package/dist/llms/googlepalm.js +1 -132
- package/dist/llms/googlevertexai/index.cjs +15 -45
- package/dist/llms/googlevertexai/index.d.ts +1 -38
- package/dist/llms/googlevertexai/index.js +1 -43
- package/dist/llms/googlevertexai/web.cjs +15 -42
- package/dist/llms/googlevertexai/web.d.ts +1 -36
- package/dist/llms/googlevertexai/web.js +1 -40
- package/dist/llms/gradient_ai.cjs +15 -110
- package/dist/llms/gradient_ai.d.ts +1 -55
- package/dist/llms/gradient_ai.js +1 -108
- package/dist/llms/hf.cjs +15 -136
- package/dist/llms/hf.d.ts +1 -68
- package/dist/llms/hf.js +1 -134
- package/dist/llms/llama_cpp.cjs +15 -111
- package/dist/llms/llama_cpp.d.ts +1 -41
- package/dist/llms/llama_cpp.js +1 -109
- package/dist/llms/ollama.cjs +15 -353
- package/dist/llms/ollama.d.ts +1 -106
- package/dist/llms/ollama.js +1 -351
- package/dist/llms/openai-chat.cjs +3 -445
- package/dist/llms/openai-chat.d.ts +4 -123
- package/dist/llms/openai-chat.js +2 -443
- package/dist/llms/openai.cjs +6 -530
- package/dist/llms/openai.d.ts +4 -123
- package/dist/llms/openai.js +2 -525
- package/dist/llms/portkey.cjs +14 -168
- package/dist/llms/portkey.d.ts +1 -57
- package/dist/llms/portkey.js +1 -162
- package/dist/llms/raycast.cjs +15 -94
- package/dist/llms/raycast.d.ts +1 -50
- package/dist/llms/raycast.js +1 -92
- package/dist/llms/replicate.cjs +15 -132
- package/dist/llms/replicate.d.ts +1 -51
- package/dist/llms/replicate.js +1 -130
- package/dist/llms/sagemaker_endpoint.cjs +15 -203
- package/dist/llms/sagemaker_endpoint.d.ts +1 -121
- package/dist/llms/sagemaker_endpoint.js +1 -200
- package/dist/llms/watsonx_ai.cjs +15 -152
- package/dist/llms/watsonx_ai.d.ts +1 -72
- package/dist/llms/watsonx_ai.js +1 -150
- package/dist/llms/writer.cjs +15 -165
- package/dist/llms/writer.d.ts +1 -60
- package/dist/llms/writer.js +1 -163
- package/dist/llms/yandex.cjs +15 -98
- package/dist/llms/yandex.d.ts +1 -40
- package/dist/llms/yandex.js +1 -96
- package/dist/load/index.cjs +3 -1
- package/dist/load/index.d.ts +1 -1
- package/dist/load/index.js +3 -1
- package/dist/retrievers/amazon_kendra.cjs +15 -273
- package/dist/retrievers/amazon_kendra.d.ts +1 -142
- package/dist/retrievers/amazon_kendra.js +1 -271
- package/dist/retrievers/chaindesk.cjs +15 -88
- package/dist/retrievers/chaindesk.d.ts +1 -31
- package/dist/retrievers/chaindesk.js +1 -86
- package/dist/retrievers/databerry.cjs +15 -82
- package/dist/retrievers/databerry.d.ts +1 -34
- package/dist/retrievers/databerry.js +1 -80
- package/dist/retrievers/metal.cjs +15 -51
- package/dist/retrievers/metal.d.ts +1 -36
- package/dist/retrievers/metal.js +1 -49
- package/dist/retrievers/supabase.cjs +15 -167
- package/dist/retrievers/supabase.d.ts +1 -82
- package/dist/retrievers/supabase.js +1 -165
- package/dist/retrievers/tavily_search_api.cjs +15 -142
- package/dist/retrievers/tavily_search_api.d.ts +1 -38
- package/dist/retrievers/tavily_search_api.js +1 -140
- package/dist/retrievers/zep.cjs +15 -150
- package/dist/retrievers/zep.d.ts +1 -76
- package/dist/retrievers/zep.js +1 -148
- package/dist/schema/document.cjs +2 -16
- package/dist/schema/document.d.ts +1 -11
- package/dist/schema/document.js +1 -16
- package/dist/schema/index.cjs +2 -7
- package/dist/schema/index.d.ts +2 -10
- package/dist/schema/index.js +1 -6
- package/dist/storage/convex.cjs +15 -143
- package/dist/storage/convex.d.ts +1 -106
- package/dist/storage/convex.js +1 -141
- package/dist/storage/ioredis.cjs +15 -158
- package/dist/storage/ioredis.d.ts +1 -71
- package/dist/storage/ioredis.js +1 -156
- package/dist/storage/upstash_redis.cjs +15 -172
- package/dist/storage/upstash_redis.d.ts +1 -78
- package/dist/storage/upstash_redis.js +1 -170
- package/dist/storage/vercel_kv.cjs +15 -161
- package/dist/storage/vercel_kv.d.ts +1 -62
- package/dist/storage/vercel_kv.js +1 -159
- package/dist/stores/doc/in_memory.cjs +15 -105
- package/dist/stores/doc/in_memory.d.ts +1 -46
- package/dist/stores/doc/in_memory.js +1 -102
- package/dist/stores/message/cassandra.cjs +15 -158
- package/dist/stores/message/cassandra.d.ts +1 -69
- package/dist/stores/message/cassandra.js +1 -156
- package/dist/stores/message/cloudflare_d1.cjs +15 -150
- package/dist/stores/message/cloudflare_d1.d.ts +1 -67
- package/dist/stores/message/cloudflare_d1.js +1 -148
- package/dist/stores/message/convex.cjs +15 -118
- package/dist/stores/message/convex.d.ts +1 -81
- package/dist/stores/message/convex.js +1 -116
- package/dist/stores/message/dynamodb.cjs +15 -159
- package/dist/stores/message/dynamodb.d.ts +1 -51
- package/dist/stores/message/dynamodb.js +1 -157
- package/dist/stores/message/firestore.cjs +15 -185
- package/dist/stores/message/firestore.d.ts +1 -68
- package/dist/stores/message/firestore.js +1 -183
- package/dist/stores/message/ioredis.cjs +15 -98
- package/dist/stores/message/ioredis.d.ts +1 -64
- package/dist/stores/message/ioredis.js +1 -96
- package/dist/stores/message/momento.cjs +15 -160
- package/dist/stores/message/momento.d.ts +1 -97
- package/dist/stores/message/momento.js +1 -158
- package/dist/stores/message/mongodb.cjs +15 -57
- package/dist/stores/message/mongodb.d.ts +1 -26
- package/dist/stores/message/mongodb.js +1 -55
- package/dist/stores/message/planetscale.cjs +15 -170
- package/dist/stores/message/planetscale.d.ts +1 -75
- package/dist/stores/message/planetscale.js +1 -168
- package/dist/stores/message/redis.cjs +15 -114
- package/dist/stores/message/redis.d.ts +1 -69
- package/dist/stores/message/redis.js +1 -112
- package/dist/stores/message/upstash_redis.cjs +15 -85
- package/dist/stores/message/upstash_redis.d.ts +1 -43
- package/dist/stores/message/upstash_redis.js +1 -83
- package/dist/stores/message/utils.cjs +3 -23
- package/dist/stores/message/utils.d.ts +1 -17
- package/dist/stores/message/utils.js +1 -21
- package/dist/stores/message/xata.cjs +15 -216
- package/dist/stores/message/xata.d.ts +1 -76
- package/dist/stores/message/xata.js +1 -214
- package/dist/tools/IFTTTWebhook.cjs +15 -87
- package/dist/tools/IFTTTWebhook.d.ts +1 -50
- package/dist/tools/IFTTTWebhook.js +1 -85
- package/dist/tools/aiplugin.cjs +15 -73
- package/dist/tools/aiplugin.d.ts +1 -34
- package/dist/tools/aiplugin.js +1 -71
- package/dist/tools/aws_sfn.cjs +15 -201
- package/dist/tools/aws_sfn.d.ts +1 -57
- package/dist/tools/aws_sfn.js +1 -197
- package/dist/tools/bingserpapi.cjs +15 -76
- package/dist/tools/bingserpapi.d.ts +1 -23
- package/dist/tools/bingserpapi.js +1 -75
- package/dist/tools/brave_search.cjs +15 -64
- package/dist/tools/brave_search.d.ts +1 -23
- package/dist/tools/brave_search.js +1 -62
- package/dist/tools/connery.cjs +15 -277
- package/dist/tools/connery.d.ts +1 -145
- package/dist/tools/connery.js +1 -274
- package/dist/tools/convert_to_openai.d.ts +1 -1
- package/dist/tools/dadjokeapi.cjs +15 -46
- package/dist/tools/dadjokeapi.d.ts +1 -15
- package/dist/tools/dadjokeapi.js +1 -45
- package/dist/tools/dataforseo_api_search.cjs +15 -280
- package/dist/tools/dataforseo_api_search.d.ts +1 -170
- package/dist/tools/dataforseo_api_search.js +1 -278
- package/dist/tools/gmail/index.cjs +15 -11
- package/dist/tools/gmail/index.d.ts +1 -11
- package/dist/tools/gmail/index.js +1 -5
- package/dist/tools/google_custom_search.cjs +15 -70
- package/dist/tools/google_custom_search.d.ts +1 -25
- package/dist/tools/google_custom_search.js +1 -68
- package/dist/tools/google_places.cjs +15 -79
- package/dist/tools/google_places.d.ts +1 -21
- package/dist/tools/google_places.js +1 -77
- package/dist/tools/searchapi.cjs +15 -164
- package/dist/tools/searchapi.d.ts +1 -91
- package/dist/tools/searchapi.js +1 -162
- package/dist/tools/searxng_search.cjs +15 -156
- package/dist/tools/searxng_search.d.ts +1 -114
- package/dist/tools/searxng_search.js +1 -154
- package/dist/tools/serpapi.cjs +15 -199
- package/dist/tools/serpapi.d.ts +1 -302
- package/dist/tools/serpapi.js +1 -197
- package/dist/tools/serper.cjs +15 -94
- package/dist/tools/serper.d.ts +1 -32
- package/dist/tools/serper.js +1 -92
- package/dist/tools/wikipedia_query_run.cjs +15 -133
- package/dist/tools/wikipedia_query_run.d.ts +1 -54
- package/dist/tools/wikipedia_query_run.js +1 -131
- package/dist/tools/wolframalpha.cjs +15 -47
- package/dist/tools/wolframalpha.d.ts +1 -21
- package/dist/tools/wolframalpha.js +1 -45
- package/dist/types/openai-types.d.ts +1 -1
- package/dist/util/convex.d.ts +1 -1
- package/dist/util/event-source-parse.cjs +15 -224
- package/dist/util/event-source-parse.d.ts +1 -39
- package/dist/util/event-source-parse.js +1 -219
- package/dist/util/math.cjs +15 -123
- package/dist/util/math.d.ts +1 -40
- package/dist/util/math.js +1 -116
- package/dist/util/openapi.d.ts +2 -2
- package/dist/vectorstores/analyticdb.cjs +3 -333
- package/dist/vectorstores/analyticdb.d.ts +1 -110
- package/dist/vectorstores/analyticdb.js +1 -317
- package/dist/vectorstores/base.cjs +15 -165
- package/dist/vectorstores/base.d.ts +1 -104
- package/dist/vectorstores/base.js +1 -161
- package/dist/vectorstores/cassandra.cjs +15 -478
- package/dist/vectorstores/cassandra.d.ts +1 -162
- package/dist/vectorstores/cassandra.js +1 -476
- package/dist/vectorstores/chroma.cjs +3 -312
- package/dist/vectorstores/chroma.d.ts +1 -133
- package/dist/vectorstores/chroma.js +1 -299
- package/dist/vectorstores/clickhouse.cjs +3 -272
- package/dist/vectorstores/clickhouse.d.ts +1 -126
- package/dist/vectorstores/clickhouse.js +1 -259
- package/dist/vectorstores/closevector/node.cjs +15 -107
- package/dist/vectorstores/closevector/node.d.ts +1 -83
- package/dist/vectorstores/closevector/node.js +1 -105
- package/dist/vectorstores/closevector/web.cjs +15 -107
- package/dist/vectorstores/closevector/web.d.ts +1 -80
- package/dist/vectorstores/closevector/web.js +1 -105
- package/dist/vectorstores/cloudflare_vectorize.cjs +3 -186
- package/dist/vectorstores/cloudflare_vectorize.d.ts +1 -90
- package/dist/vectorstores/cloudflare_vectorize.js +1 -173
- package/dist/vectorstores/convex.cjs +15 -175
- package/dist/vectorstores/convex.d.ts +1 -134
- package/dist/vectorstores/convex.js +1 -173
- package/dist/vectorstores/elasticsearch.cjs +3 -287
- package/dist/vectorstores/elasticsearch.d.ts +1 -143
- package/dist/vectorstores/elasticsearch.js +1 -274
- package/dist/vectorstores/faiss.cjs +3 -378
- package/dist/vectorstores/faiss.d.ts +1 -127
- package/dist/vectorstores/faiss.js +1 -365
- package/dist/vectorstores/googlevertexai.cjs +3 -538
- package/dist/vectorstores/googlevertexai.d.ts +1 -181
- package/dist/vectorstores/googlevertexai.js +1 -521
- package/dist/vectorstores/hnswlib.cjs +15 -273
- package/dist/vectorstores/hnswlib.d.ts +1 -122
- package/dist/vectorstores/hnswlib.js +1 -271
- package/dist/vectorstores/lancedb.cjs +15 -126
- package/dist/vectorstores/lancedb.d.ts +1 -61
- package/dist/vectorstores/lancedb.js +1 -124
- package/dist/vectorstores/memory.cjs +15 -143
- package/dist/vectorstores/memory.d.ts +1 -92
- package/dist/vectorstores/memory.js +1 -141
- package/dist/vectorstores/milvus.cjs +3 -592
- package/dist/vectorstores/milvus.d.ts +1 -139
- package/dist/vectorstores/milvus.js +1 -579
- package/dist/vectorstores/momento_vector_index.cjs +3 -305
- package/dist/vectorstores/momento_vector_index.d.ts +1 -143
- package/dist/vectorstores/momento_vector_index.js +1 -292
- package/dist/vectorstores/mongodb_atlas.cjs +15 -218
- package/dist/vectorstores/mongodb_atlas.d.ts +1 -118
- package/dist/vectorstores/mongodb_atlas.js +1 -216
- package/dist/vectorstores/myscale.cjs +3 -263
- package/dist/vectorstores/myscale.d.ts +1 -129
- package/dist/vectorstores/myscale.js +1 -250
- package/dist/vectorstores/neo4j_vector.cjs +3 -578
- package/dist/vectorstores/neo4j_vector.d.ts +1 -75
- package/dist/vectorstores/neo4j_vector.js +1 -562
- package/dist/vectorstores/opensearch.cjs +3 -274
- package/dist/vectorstores/opensearch.d.ts +1 -119
- package/dist/vectorstores/opensearch.js +1 -261
- package/dist/vectorstores/pgvector.cjs +14 -404
- package/dist/vectorstores/pgvector.d.ts +1 -160
- package/dist/vectorstores/pgvector.js +1 -400
- package/dist/vectorstores/pinecone.cjs +3 -280
- package/dist/vectorstores/pinecone.d.ts +1 -120
- package/dist/vectorstores/pinecone.js +1 -264
- package/dist/vectorstores/prisma.cjs +15 -305
- package/dist/vectorstores/prisma.d.ts +1 -180
- package/dist/vectorstores/prisma.js +1 -303
- package/dist/vectorstores/qdrant.cjs +15 -195
- package/dist/vectorstores/qdrant.d.ts +1 -95
- package/dist/vectorstores/qdrant.js +1 -193
- package/dist/vectorstores/redis.cjs +15 -333
- package/dist/vectorstores/redis.d.ts +1 -186
- package/dist/vectorstores/redis.js +1 -331
- package/dist/vectorstores/rockset.cjs +15 -351
- package/dist/vectorstores/rockset.d.ts +1 -202
- package/dist/vectorstores/rockset.js +1 -347
- package/dist/vectorstores/singlestore.cjs +15 -220
- package/dist/vectorstores/singlestore.d.ts +1 -88
- package/dist/vectorstores/singlestore.js +1 -218
- package/dist/vectorstores/supabase.cjs +15 -217
- package/dist/vectorstores/supabase.d.ts +1 -118
- package/dist/vectorstores/supabase.js +1 -215
- package/dist/vectorstores/tigris.cjs +3 -143
- package/dist/vectorstores/tigris.d.ts +1 -74
- package/dist/vectorstores/tigris.js +1 -130
- package/dist/vectorstores/typeorm.cjs +15 -259
- package/dist/vectorstores/typeorm.d.ts +1 -109
- package/dist/vectorstores/typeorm.js +1 -256
- package/dist/vectorstores/typesense.cjs +15 -223
- package/dist/vectorstores/typesense.d.ts +1 -131
- package/dist/vectorstores/typesense.js +1 -221
- package/dist/vectorstores/usearch.cjs +3 -203
- package/dist/vectorstores/usearch.d.ts +1 -85
- package/dist/vectorstores/usearch.js +1 -187
- package/dist/vectorstores/vectara.cjs +3 -409
- package/dist/vectorstores/vectara.d.ts +1 -148
- package/dist/vectorstores/vectara.js +1 -396
- package/dist/vectorstores/vercel_postgres.cjs +15 -320
- package/dist/vectorstores/vercel_postgres.d.ts +1 -145
- package/dist/vectorstores/vercel_postgres.js +1 -318
- package/dist/vectorstores/voy.cjs +15 -156
- package/dist/vectorstores/voy.d.ts +1 -73
- package/dist/vectorstores/voy.js +1 -154
- package/dist/vectorstores/weaviate.cjs +3 -347
- package/dist/vectorstores/weaviate.d.ts +1 -140
- package/dist/vectorstores/weaviate.js +1 -333
- package/dist/vectorstores/xata.cjs +15 -108
- package/dist/vectorstores/xata.d.ts +1 -70
- package/dist/vectorstores/xata.js +1 -106
- package/dist/vectorstores/zep.cjs +15 -313
- package/dist/vectorstores/zep.d.ts +1 -146
- package/dist/vectorstores/zep.js +1 -311
- package/package.json +4 -26
- package/dist/chat_models/googlevertexai/common.cjs +0 -274
- package/dist/chat_models/googlevertexai/common.d.ts +0 -123
- package/dist/chat_models/googlevertexai/common.js +0 -269
- package/dist/chat_models/iflytek_xinghuo/common.cjs +0 -340
- package/dist/chat_models/iflytek_xinghuo/common.d.ts +0 -165
- package/dist/chat_models/iflytek_xinghuo/common.js +0 -336
- package/dist/llms/googlevertexai/common.cjs +0 -168
- package/dist/llms/googlevertexai/common.d.ts +0 -82
- package/dist/llms/googlevertexai/common.js +0 -164
- package/dist/tools/gmail/base.cjs +0 -69
- package/dist/tools/gmail/base.d.ts +0 -19
- package/dist/tools/gmail/base.js +0 -65
- package/dist/tools/gmail/create_draft.cjs +0 -62
- package/dist/tools/gmail/create_draft.d.ts +0 -35
- package/dist/tools/gmail/create_draft.js +0 -58
- package/dist/tools/gmail/descriptions.cjs +0 -118
- package/dist/tools/gmail/descriptions.d.ts +0 -5
- package/dist/tools/gmail/descriptions.js +0 -115
- package/dist/tools/gmail/get_message.cjs +0 -83
- package/dist/tools/gmail/get_message.d.ts +0 -18
- package/dist/tools/gmail/get_message.js +0 -79
- package/dist/tools/gmail/get_thread.cjs +0 -89
- package/dist/tools/gmail/get_thread.d.ts +0 -18
- package/dist/tools/gmail/get_thread.js +0 -85
- package/dist/tools/gmail/search.cjs +0 -118
- package/dist/tools/gmail/search.d.ts +0 -29
- package/dist/tools/gmail/search.js +0 -114
- package/dist/tools/gmail/send_message.cjs +0 -74
- package/dist/tools/gmail/send_message.d.ts +0 -35
- package/dist/tools/gmail/send_message.js +0 -70
- package/dist/util/openai-format-fndef.cjs +0 -81
- package/dist/util/openai-format-fndef.d.ts +0 -44
- package/dist/util/openai-format-fndef.js +0 -77
- package/dist/util/openai.cjs +0 -21
- package/dist/util/openai.d.ts +0 -1
- package/dist/util/openai.js +0 -17
- package/dist/vectorstores/closevector/common.cjs +0 -128
- package/dist/vectorstores/closevector/common.d.ts +0 -82
- package/dist/vectorstores/closevector/common.js +0 -124
|
@@ -10,279 +10,8 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi
|
|
|
10
10
|
if (k2 === undefined) k2 = k;
|
|
11
11
|
o[k2] = m[k];
|
|
12
12
|
}));
|
|
13
|
-
var
|
|
14
|
-
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
24
15
|
};
|
|
25
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports
|
|
27
|
-
const opensearch_1 = require("@opensearch-project/opensearch");
|
|
28
|
-
const uuid = __importStar(require("uuid"));
|
|
29
|
-
const document_js_1 = require("../document.cjs");
|
|
30
|
-
const base_js_1 = require("./base.cjs");
|
|
31
|
-
/**
|
|
32
|
-
* Class that provides a wrapper around the OpenSearch service for vector
|
|
33
|
-
* search. It provides methods for adding documents and vectors to the
|
|
34
|
-
* OpenSearch index, searching for similar vectors, and managing the
|
|
35
|
-
* OpenSearch index.
|
|
36
|
-
*/
|
|
37
|
-
class OpenSearchVectorStore extends base_js_1.VectorStore {
|
|
38
|
-
_vectorstoreType() {
|
|
39
|
-
return "opensearch";
|
|
40
|
-
}
|
|
41
|
-
constructor(embeddings, args) {
|
|
42
|
-
super(embeddings, args);
|
|
43
|
-
Object.defineProperty(this, "client", {
|
|
44
|
-
enumerable: true,
|
|
45
|
-
configurable: true,
|
|
46
|
-
writable: true,
|
|
47
|
-
value: void 0
|
|
48
|
-
});
|
|
49
|
-
Object.defineProperty(this, "indexName", {
|
|
50
|
-
enumerable: true,
|
|
51
|
-
configurable: true,
|
|
52
|
-
writable: true,
|
|
53
|
-
value: void 0
|
|
54
|
-
});
|
|
55
|
-
Object.defineProperty(this, "engine", {
|
|
56
|
-
enumerable: true,
|
|
57
|
-
configurable: true,
|
|
58
|
-
writable: true,
|
|
59
|
-
value: void 0
|
|
60
|
-
});
|
|
61
|
-
Object.defineProperty(this, "spaceType", {
|
|
62
|
-
enumerable: true,
|
|
63
|
-
configurable: true,
|
|
64
|
-
writable: true,
|
|
65
|
-
value: void 0
|
|
66
|
-
});
|
|
67
|
-
Object.defineProperty(this, "efConstruction", {
|
|
68
|
-
enumerable: true,
|
|
69
|
-
configurable: true,
|
|
70
|
-
writable: true,
|
|
71
|
-
value: void 0
|
|
72
|
-
});
|
|
73
|
-
Object.defineProperty(this, "efSearch", {
|
|
74
|
-
enumerable: true,
|
|
75
|
-
configurable: true,
|
|
76
|
-
writable: true,
|
|
77
|
-
value: void 0
|
|
78
|
-
});
|
|
79
|
-
Object.defineProperty(this, "m", {
|
|
80
|
-
enumerable: true,
|
|
81
|
-
configurable: true,
|
|
82
|
-
writable: true,
|
|
83
|
-
value: void 0
|
|
84
|
-
});
|
|
85
|
-
this.spaceType = args.vectorSearchOptions?.spaceType ?? "l2";
|
|
86
|
-
this.engine = args.vectorSearchOptions?.engine ?? "nmslib";
|
|
87
|
-
this.m = args.vectorSearchOptions?.m ?? 16;
|
|
88
|
-
this.efConstruction = args.vectorSearchOptions?.efConstruction ?? 512;
|
|
89
|
-
this.efSearch = args.vectorSearchOptions?.efSearch ?? 512;
|
|
90
|
-
this.client = args.client;
|
|
91
|
-
this.indexName = args.indexName ?? "documents";
|
|
92
|
-
}
|
|
93
|
-
/**
|
|
94
|
-
* Method to add documents to the OpenSearch index. It first converts the
|
|
95
|
-
* documents to vectors using the embeddings, then adds the vectors to the
|
|
96
|
-
* index.
|
|
97
|
-
* @param documents The documents to be added to the OpenSearch index.
|
|
98
|
-
* @returns Promise resolving to void.
|
|
99
|
-
*/
|
|
100
|
-
async addDocuments(documents) {
|
|
101
|
-
const texts = documents.map(({ pageContent }) => pageContent);
|
|
102
|
-
return this.addVectors(await this.embeddings.embedDocuments(texts), documents);
|
|
103
|
-
}
|
|
104
|
-
/**
|
|
105
|
-
* Method to add vectors to the OpenSearch index. It ensures the index
|
|
106
|
-
* exists, then adds the vectors and associated documents to the index.
|
|
107
|
-
* @param vectors The vectors to be added to the OpenSearch index.
|
|
108
|
-
* @param documents The documents associated with the vectors.
|
|
109
|
-
* @param options Optional parameter that can contain the IDs for the documents.
|
|
110
|
-
* @returns Promise resolving to void.
|
|
111
|
-
*/
|
|
112
|
-
async addVectors(vectors, documents, options) {
|
|
113
|
-
await this.ensureIndexExists(vectors[0].length, this.engine, this.spaceType, this.efSearch, this.efConstruction, this.m);
|
|
114
|
-
const documentIds = options?.ids ?? Array.from({ length: vectors.length }, () => uuid.v4());
|
|
115
|
-
const operations = vectors.flatMap((embedding, idx) => [
|
|
116
|
-
{
|
|
117
|
-
index: {
|
|
118
|
-
_index: this.indexName,
|
|
119
|
-
_id: documentIds[idx],
|
|
120
|
-
},
|
|
121
|
-
},
|
|
122
|
-
{
|
|
123
|
-
embedding,
|
|
124
|
-
metadata: documents[idx].metadata,
|
|
125
|
-
text: documents[idx].pageContent,
|
|
126
|
-
},
|
|
127
|
-
]);
|
|
128
|
-
await this.client.bulk({ body: operations });
|
|
129
|
-
await this.client.indices.refresh({ index: this.indexName });
|
|
130
|
-
}
|
|
131
|
-
/**
|
|
132
|
-
* Method to perform a similarity search on the OpenSearch index using a
|
|
133
|
-
* query vector. It returns the k most similar documents and their scores.
|
|
134
|
-
* @param query The query vector.
|
|
135
|
-
* @param k The number of similar documents to return.
|
|
136
|
-
* @param filter Optional filter for the OpenSearch query.
|
|
137
|
-
* @returns Promise resolving to an array of tuples, each containing a Document and its score.
|
|
138
|
-
*/
|
|
139
|
-
async similaritySearchVectorWithScore(query, k, filter) {
|
|
140
|
-
const search = {
|
|
141
|
-
index: this.indexName,
|
|
142
|
-
body: {
|
|
143
|
-
query: {
|
|
144
|
-
bool: {
|
|
145
|
-
filter: { bool: { must: this.buildMetadataTerms(filter) } },
|
|
146
|
-
must: [
|
|
147
|
-
{
|
|
148
|
-
knn: {
|
|
149
|
-
embedding: { vector: query, k },
|
|
150
|
-
},
|
|
151
|
-
},
|
|
152
|
-
],
|
|
153
|
-
},
|
|
154
|
-
},
|
|
155
|
-
size: k,
|
|
156
|
-
},
|
|
157
|
-
};
|
|
158
|
-
const { body } = await this.client.search(search);
|
|
159
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
160
|
-
return body.hits.hits.map((hit) => [
|
|
161
|
-
new document_js_1.Document({
|
|
162
|
-
pageContent: hit._source.text,
|
|
163
|
-
metadata: hit._source.metadata,
|
|
164
|
-
}),
|
|
165
|
-
hit._score,
|
|
166
|
-
]);
|
|
167
|
-
}
|
|
168
|
-
/**
|
|
169
|
-
* Static method to create a new OpenSearchVectorStore from an array of
|
|
170
|
-
* texts, their metadata, embeddings, and OpenSearch client arguments.
|
|
171
|
-
* @param texts The texts to be converted into documents and added to the OpenSearch index.
|
|
172
|
-
* @param metadatas The metadata associated with the texts. Can be an array of objects or a single object.
|
|
173
|
-
* @param embeddings The embeddings used to convert the texts into vectors.
|
|
174
|
-
* @param args The OpenSearch client arguments.
|
|
175
|
-
* @returns Promise resolving to a new instance of OpenSearchVectorStore.
|
|
176
|
-
*/
|
|
177
|
-
static fromTexts(texts, metadatas, embeddings, args) {
|
|
178
|
-
const documents = texts.map((text, idx) => {
|
|
179
|
-
const metadata = Array.isArray(metadatas) ? metadatas[idx] : metadatas;
|
|
180
|
-
return new document_js_1.Document({ pageContent: text, metadata });
|
|
181
|
-
});
|
|
182
|
-
return OpenSearchVectorStore.fromDocuments(documents, embeddings, args);
|
|
183
|
-
}
|
|
184
|
-
/**
|
|
185
|
-
* Static method to create a new OpenSearchVectorStore from an array of
|
|
186
|
-
* Documents, embeddings, and OpenSearch client arguments.
|
|
187
|
-
* @param docs The documents to be added to the OpenSearch index.
|
|
188
|
-
* @param embeddings The embeddings used to convert the documents into vectors.
|
|
189
|
-
* @param dbConfig The OpenSearch client arguments.
|
|
190
|
-
* @returns Promise resolving to a new instance of OpenSearchVectorStore.
|
|
191
|
-
*/
|
|
192
|
-
static async fromDocuments(docs, embeddings, dbConfig) {
|
|
193
|
-
const store = new OpenSearchVectorStore(embeddings, dbConfig);
|
|
194
|
-
await store.addDocuments(docs).then(() => store);
|
|
195
|
-
return store;
|
|
196
|
-
}
|
|
197
|
-
/**
|
|
198
|
-
* Static method to create a new OpenSearchVectorStore from an existing
|
|
199
|
-
* OpenSearch index, embeddings, and OpenSearch client arguments.
|
|
200
|
-
* @param embeddings The embeddings used to convert the documents into vectors.
|
|
201
|
-
* @param dbConfig The OpenSearch client arguments.
|
|
202
|
-
* @returns Promise resolving to a new instance of OpenSearchVectorStore.
|
|
203
|
-
*/
|
|
204
|
-
static async fromExistingIndex(embeddings, dbConfig) {
|
|
205
|
-
const store = new OpenSearchVectorStore(embeddings, dbConfig);
|
|
206
|
-
await store.client.cat.indices({ index: store.indexName });
|
|
207
|
-
return store;
|
|
208
|
-
}
|
|
209
|
-
async ensureIndexExists(dimension, engine = "nmslib", spaceType = "l2", efSearch = 512, efConstruction = 512, m = 16) {
|
|
210
|
-
const body = {
|
|
211
|
-
settings: {
|
|
212
|
-
index: {
|
|
213
|
-
number_of_shards: 5,
|
|
214
|
-
number_of_replicas: 1,
|
|
215
|
-
knn: true,
|
|
216
|
-
"knn.algo_param.ef_search": efSearch,
|
|
217
|
-
},
|
|
218
|
-
},
|
|
219
|
-
mappings: {
|
|
220
|
-
dynamic_templates: [
|
|
221
|
-
{
|
|
222
|
-
// map all metadata properties to be keyword
|
|
223
|
-
"metadata.*": {
|
|
224
|
-
match_mapping_type: "*",
|
|
225
|
-
mapping: { type: "keyword" },
|
|
226
|
-
},
|
|
227
|
-
},
|
|
228
|
-
],
|
|
229
|
-
properties: {
|
|
230
|
-
text: { type: "text" },
|
|
231
|
-
metadata: { type: "object" },
|
|
232
|
-
embedding: {
|
|
233
|
-
type: "knn_vector",
|
|
234
|
-
dimension,
|
|
235
|
-
method: {
|
|
236
|
-
name: "hnsw",
|
|
237
|
-
engine,
|
|
238
|
-
space_type: spaceType,
|
|
239
|
-
parameters: { ef_construction: efConstruction, m },
|
|
240
|
-
},
|
|
241
|
-
},
|
|
242
|
-
},
|
|
243
|
-
},
|
|
244
|
-
};
|
|
245
|
-
const indexExists = await this.doesIndexExist();
|
|
246
|
-
if (indexExists)
|
|
247
|
-
return;
|
|
248
|
-
await this.client.indices.create({ index: this.indexName, body });
|
|
249
|
-
}
|
|
250
|
-
buildMetadataTerms(filter) {
|
|
251
|
-
if (filter == null)
|
|
252
|
-
return [];
|
|
253
|
-
const result = [];
|
|
254
|
-
for (const [key, value] of Object.entries(filter)) {
|
|
255
|
-
const aggregatorKey = Array.isArray(value) ? "terms" : "term";
|
|
256
|
-
result.push({ [aggregatorKey]: { [`metadata.${key}`]: value } });
|
|
257
|
-
}
|
|
258
|
-
return result;
|
|
259
|
-
}
|
|
260
|
-
/**
|
|
261
|
-
* Method to check if the OpenSearch index exists.
|
|
262
|
-
* @returns Promise resolving to a boolean indicating whether the index exists.
|
|
263
|
-
*/
|
|
264
|
-
async doesIndexExist() {
|
|
265
|
-
try {
|
|
266
|
-
await this.client.cat.indices({ index: this.indexName });
|
|
267
|
-
return true;
|
|
268
|
-
}
|
|
269
|
-
catch (err) {
|
|
270
|
-
// eslint-disable-next-line no-instanceof/no-instanceof
|
|
271
|
-
if (err instanceof opensearch_1.errors.ResponseError && err.statusCode === 404) {
|
|
272
|
-
return false;
|
|
273
|
-
}
|
|
274
|
-
throw err;
|
|
275
|
-
}
|
|
276
|
-
}
|
|
277
|
-
/**
|
|
278
|
-
* Method to delete the OpenSearch index if it exists.
|
|
279
|
-
* @returns Promise resolving to void.
|
|
280
|
-
*/
|
|
281
|
-
async deleteIfExists() {
|
|
282
|
-
const indexExists = await this.doesIndexExist();
|
|
283
|
-
if (!indexExists)
|
|
284
|
-
return;
|
|
285
|
-
await this.client.indices.delete({ index: this.indexName });
|
|
286
|
-
}
|
|
287
|
-
}
|
|
288
|
-
exports.OpenSearchVectorStore = OpenSearchVectorStore;
|
|
17
|
+
__exportStar(require("@langchain/community/vectorstores/opensearch"), exports);
|
|
@@ -1,119 +1 @@
|
|
|
1
|
-
|
|
2
|
-
import { Embeddings } from "../embeddings/base.js";
|
|
3
|
-
import { Document } from "../document.js";
|
|
4
|
-
import { VectorStore } from "./base.js";
|
|
5
|
-
type OpenSearchEngine = "nmslib" | "hnsw";
|
|
6
|
-
type OpenSearchSpaceType = "l2" | "cosinesimil" | "ip";
|
|
7
|
-
/**
|
|
8
|
-
* Interface defining the options for vector search in OpenSearch. It
|
|
9
|
-
* includes the engine type, space type, and parameters for the HNSW
|
|
10
|
-
* algorithm.
|
|
11
|
-
*/
|
|
12
|
-
interface VectorSearchOptions {
|
|
13
|
-
readonly engine?: OpenSearchEngine;
|
|
14
|
-
readonly spaceType?: OpenSearchSpaceType;
|
|
15
|
-
readonly m?: number;
|
|
16
|
-
readonly efConstruction?: number;
|
|
17
|
-
readonly efSearch?: number;
|
|
18
|
-
}
|
|
19
|
-
/**
|
|
20
|
-
* Interface defining the arguments required to create an instance of the
|
|
21
|
-
* OpenSearchVectorStore class. It includes the OpenSearch client, index
|
|
22
|
-
* name, and vector search options.
|
|
23
|
-
*/
|
|
24
|
-
export interface OpenSearchClientArgs {
|
|
25
|
-
readonly client: Client;
|
|
26
|
-
readonly indexName?: string;
|
|
27
|
-
readonly vectorSearchOptions?: VectorSearchOptions;
|
|
28
|
-
}
|
|
29
|
-
/**
|
|
30
|
-
* Type alias for an object. It's used to define filters for OpenSearch
|
|
31
|
-
* queries.
|
|
32
|
-
*/
|
|
33
|
-
type OpenSearchFilter = object;
|
|
34
|
-
/**
|
|
35
|
-
* Class that provides a wrapper around the OpenSearch service for vector
|
|
36
|
-
* search. It provides methods for adding documents and vectors to the
|
|
37
|
-
* OpenSearch index, searching for similar vectors, and managing the
|
|
38
|
-
* OpenSearch index.
|
|
39
|
-
*/
|
|
40
|
-
export declare class OpenSearchVectorStore extends VectorStore {
|
|
41
|
-
FilterType: OpenSearchFilter;
|
|
42
|
-
private readonly client;
|
|
43
|
-
private readonly indexName;
|
|
44
|
-
private readonly engine;
|
|
45
|
-
private readonly spaceType;
|
|
46
|
-
private readonly efConstruction;
|
|
47
|
-
private readonly efSearch;
|
|
48
|
-
private readonly m;
|
|
49
|
-
_vectorstoreType(): string;
|
|
50
|
-
constructor(embeddings: Embeddings, args: OpenSearchClientArgs);
|
|
51
|
-
/**
|
|
52
|
-
* Method to add documents to the OpenSearch index. It first converts the
|
|
53
|
-
* documents to vectors using the embeddings, then adds the vectors to the
|
|
54
|
-
* index.
|
|
55
|
-
* @param documents The documents to be added to the OpenSearch index.
|
|
56
|
-
* @returns Promise resolving to void.
|
|
57
|
-
*/
|
|
58
|
-
addDocuments(documents: Document[]): Promise<void>;
|
|
59
|
-
/**
|
|
60
|
-
* Method to add vectors to the OpenSearch index. It ensures the index
|
|
61
|
-
* exists, then adds the vectors and associated documents to the index.
|
|
62
|
-
* @param vectors The vectors to be added to the OpenSearch index.
|
|
63
|
-
* @param documents The documents associated with the vectors.
|
|
64
|
-
* @param options Optional parameter that can contain the IDs for the documents.
|
|
65
|
-
* @returns Promise resolving to void.
|
|
66
|
-
*/
|
|
67
|
-
addVectors(vectors: number[][], documents: Document[], options?: {
|
|
68
|
-
ids?: string[];
|
|
69
|
-
}): Promise<void>;
|
|
70
|
-
/**
|
|
71
|
-
* Method to perform a similarity search on the OpenSearch index using a
|
|
72
|
-
* query vector. It returns the k most similar documents and their scores.
|
|
73
|
-
* @param query The query vector.
|
|
74
|
-
* @param k The number of similar documents to return.
|
|
75
|
-
* @param filter Optional filter for the OpenSearch query.
|
|
76
|
-
* @returns Promise resolving to an array of tuples, each containing a Document and its score.
|
|
77
|
-
*/
|
|
78
|
-
similaritySearchVectorWithScore(query: number[], k: number, filter?: OpenSearchFilter | undefined): Promise<[Document, number][]>;
|
|
79
|
-
/**
|
|
80
|
-
* Static method to create a new OpenSearchVectorStore from an array of
|
|
81
|
-
* texts, their metadata, embeddings, and OpenSearch client arguments.
|
|
82
|
-
* @param texts The texts to be converted into documents and added to the OpenSearch index.
|
|
83
|
-
* @param metadatas The metadata associated with the texts. Can be an array of objects or a single object.
|
|
84
|
-
* @param embeddings The embeddings used to convert the texts into vectors.
|
|
85
|
-
* @param args The OpenSearch client arguments.
|
|
86
|
-
* @returns Promise resolving to a new instance of OpenSearchVectorStore.
|
|
87
|
-
*/
|
|
88
|
-
static fromTexts(texts: string[], metadatas: object[] | object, embeddings: Embeddings, args: OpenSearchClientArgs): Promise<OpenSearchVectorStore>;
|
|
89
|
-
/**
|
|
90
|
-
* Static method to create a new OpenSearchVectorStore from an array of
|
|
91
|
-
* Documents, embeddings, and OpenSearch client arguments.
|
|
92
|
-
* @param docs The documents to be added to the OpenSearch index.
|
|
93
|
-
* @param embeddings The embeddings used to convert the documents into vectors.
|
|
94
|
-
* @param dbConfig The OpenSearch client arguments.
|
|
95
|
-
* @returns Promise resolving to a new instance of OpenSearchVectorStore.
|
|
96
|
-
*/
|
|
97
|
-
static fromDocuments(docs: Document[], embeddings: Embeddings, dbConfig: OpenSearchClientArgs): Promise<OpenSearchVectorStore>;
|
|
98
|
-
/**
|
|
99
|
-
* Static method to create a new OpenSearchVectorStore from an existing
|
|
100
|
-
* OpenSearch index, embeddings, and OpenSearch client arguments.
|
|
101
|
-
* @param embeddings The embeddings used to convert the documents into vectors.
|
|
102
|
-
* @param dbConfig The OpenSearch client arguments.
|
|
103
|
-
* @returns Promise resolving to a new instance of OpenSearchVectorStore.
|
|
104
|
-
*/
|
|
105
|
-
static fromExistingIndex(embeddings: Embeddings, dbConfig: OpenSearchClientArgs): Promise<OpenSearchVectorStore>;
|
|
106
|
-
private ensureIndexExists;
|
|
107
|
-
private buildMetadataTerms;
|
|
108
|
-
/**
|
|
109
|
-
* Method to check if the OpenSearch index exists.
|
|
110
|
-
* @returns Promise resolving to a boolean indicating whether the index exists.
|
|
111
|
-
*/
|
|
112
|
-
doesIndexExist(): Promise<boolean>;
|
|
113
|
-
/**
|
|
114
|
-
* Method to delete the OpenSearch index if it exists.
|
|
115
|
-
* @returns Promise resolving to void.
|
|
116
|
-
*/
|
|
117
|
-
deleteIfExists(): Promise<void>;
|
|
118
|
-
}
|
|
119
|
-
export {};
|
|
1
|
+
export * from "@langchain/community/vectorstores/opensearch";
|
|
@@ -1,261 +1 @@
|
|
|
1
|
-
|
|
2
|
-
import * as uuid from "uuid";
|
|
3
|
-
import { Document } from "../document.js";
|
|
4
|
-
import { VectorStore } from "./base.js";
|
|
5
|
-
/**
|
|
6
|
-
* Class that provides a wrapper around the OpenSearch service for vector
|
|
7
|
-
* search. It provides methods for adding documents and vectors to the
|
|
8
|
-
* OpenSearch index, searching for similar vectors, and managing the
|
|
9
|
-
* OpenSearch index.
|
|
10
|
-
*/
|
|
11
|
-
export class OpenSearchVectorStore extends VectorStore {
|
|
12
|
-
_vectorstoreType() {
|
|
13
|
-
return "opensearch";
|
|
14
|
-
}
|
|
15
|
-
constructor(embeddings, args) {
|
|
16
|
-
super(embeddings, args);
|
|
17
|
-
Object.defineProperty(this, "client", {
|
|
18
|
-
enumerable: true,
|
|
19
|
-
configurable: true,
|
|
20
|
-
writable: true,
|
|
21
|
-
value: void 0
|
|
22
|
-
});
|
|
23
|
-
Object.defineProperty(this, "indexName", {
|
|
24
|
-
enumerable: true,
|
|
25
|
-
configurable: true,
|
|
26
|
-
writable: true,
|
|
27
|
-
value: void 0
|
|
28
|
-
});
|
|
29
|
-
Object.defineProperty(this, "engine", {
|
|
30
|
-
enumerable: true,
|
|
31
|
-
configurable: true,
|
|
32
|
-
writable: true,
|
|
33
|
-
value: void 0
|
|
34
|
-
});
|
|
35
|
-
Object.defineProperty(this, "spaceType", {
|
|
36
|
-
enumerable: true,
|
|
37
|
-
configurable: true,
|
|
38
|
-
writable: true,
|
|
39
|
-
value: void 0
|
|
40
|
-
});
|
|
41
|
-
Object.defineProperty(this, "efConstruction", {
|
|
42
|
-
enumerable: true,
|
|
43
|
-
configurable: true,
|
|
44
|
-
writable: true,
|
|
45
|
-
value: void 0
|
|
46
|
-
});
|
|
47
|
-
Object.defineProperty(this, "efSearch", {
|
|
48
|
-
enumerable: true,
|
|
49
|
-
configurable: true,
|
|
50
|
-
writable: true,
|
|
51
|
-
value: void 0
|
|
52
|
-
});
|
|
53
|
-
Object.defineProperty(this, "m", {
|
|
54
|
-
enumerable: true,
|
|
55
|
-
configurable: true,
|
|
56
|
-
writable: true,
|
|
57
|
-
value: void 0
|
|
58
|
-
});
|
|
59
|
-
this.spaceType = args.vectorSearchOptions?.spaceType ?? "l2";
|
|
60
|
-
this.engine = args.vectorSearchOptions?.engine ?? "nmslib";
|
|
61
|
-
this.m = args.vectorSearchOptions?.m ?? 16;
|
|
62
|
-
this.efConstruction = args.vectorSearchOptions?.efConstruction ?? 512;
|
|
63
|
-
this.efSearch = args.vectorSearchOptions?.efSearch ?? 512;
|
|
64
|
-
this.client = args.client;
|
|
65
|
-
this.indexName = args.indexName ?? "documents";
|
|
66
|
-
}
|
|
67
|
-
/**
|
|
68
|
-
* Method to add documents to the OpenSearch index. It first converts the
|
|
69
|
-
* documents to vectors using the embeddings, then adds the vectors to the
|
|
70
|
-
* index.
|
|
71
|
-
* @param documents The documents to be added to the OpenSearch index.
|
|
72
|
-
* @returns Promise resolving to void.
|
|
73
|
-
*/
|
|
74
|
-
async addDocuments(documents) {
|
|
75
|
-
const texts = documents.map(({ pageContent }) => pageContent);
|
|
76
|
-
return this.addVectors(await this.embeddings.embedDocuments(texts), documents);
|
|
77
|
-
}
|
|
78
|
-
/**
|
|
79
|
-
* Method to add vectors to the OpenSearch index. It ensures the index
|
|
80
|
-
* exists, then adds the vectors and associated documents to the index.
|
|
81
|
-
* @param vectors The vectors to be added to the OpenSearch index.
|
|
82
|
-
* @param documents The documents associated with the vectors.
|
|
83
|
-
* @param options Optional parameter that can contain the IDs for the documents.
|
|
84
|
-
* @returns Promise resolving to void.
|
|
85
|
-
*/
|
|
86
|
-
async addVectors(vectors, documents, options) {
|
|
87
|
-
await this.ensureIndexExists(vectors[0].length, this.engine, this.spaceType, this.efSearch, this.efConstruction, this.m);
|
|
88
|
-
const documentIds = options?.ids ?? Array.from({ length: vectors.length }, () => uuid.v4());
|
|
89
|
-
const operations = vectors.flatMap((embedding, idx) => [
|
|
90
|
-
{
|
|
91
|
-
index: {
|
|
92
|
-
_index: this.indexName,
|
|
93
|
-
_id: documentIds[idx],
|
|
94
|
-
},
|
|
95
|
-
},
|
|
96
|
-
{
|
|
97
|
-
embedding,
|
|
98
|
-
metadata: documents[idx].metadata,
|
|
99
|
-
text: documents[idx].pageContent,
|
|
100
|
-
},
|
|
101
|
-
]);
|
|
102
|
-
await this.client.bulk({ body: operations });
|
|
103
|
-
await this.client.indices.refresh({ index: this.indexName });
|
|
104
|
-
}
|
|
105
|
-
/**
|
|
106
|
-
* Method to perform a similarity search on the OpenSearch index using a
|
|
107
|
-
* query vector. It returns the k most similar documents and their scores.
|
|
108
|
-
* @param query The query vector.
|
|
109
|
-
* @param k The number of similar documents to return.
|
|
110
|
-
* @param filter Optional filter for the OpenSearch query.
|
|
111
|
-
* @returns Promise resolving to an array of tuples, each containing a Document and its score.
|
|
112
|
-
*/
|
|
113
|
-
async similaritySearchVectorWithScore(query, k, filter) {
|
|
114
|
-
const search = {
|
|
115
|
-
index: this.indexName,
|
|
116
|
-
body: {
|
|
117
|
-
query: {
|
|
118
|
-
bool: {
|
|
119
|
-
filter: { bool: { must: this.buildMetadataTerms(filter) } },
|
|
120
|
-
must: [
|
|
121
|
-
{
|
|
122
|
-
knn: {
|
|
123
|
-
embedding: { vector: query, k },
|
|
124
|
-
},
|
|
125
|
-
},
|
|
126
|
-
],
|
|
127
|
-
},
|
|
128
|
-
},
|
|
129
|
-
size: k,
|
|
130
|
-
},
|
|
131
|
-
};
|
|
132
|
-
const { body } = await this.client.search(search);
|
|
133
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
134
|
-
return body.hits.hits.map((hit) => [
|
|
135
|
-
new Document({
|
|
136
|
-
pageContent: hit._source.text,
|
|
137
|
-
metadata: hit._source.metadata,
|
|
138
|
-
}),
|
|
139
|
-
hit._score,
|
|
140
|
-
]);
|
|
141
|
-
}
|
|
142
|
-
/**
|
|
143
|
-
* Static method to create a new OpenSearchVectorStore from an array of
|
|
144
|
-
* texts, their metadata, embeddings, and OpenSearch client arguments.
|
|
145
|
-
* @param texts The texts to be converted into documents and added to the OpenSearch index.
|
|
146
|
-
* @param metadatas The metadata associated with the texts. Can be an array of objects or a single object.
|
|
147
|
-
* @param embeddings The embeddings used to convert the texts into vectors.
|
|
148
|
-
* @param args The OpenSearch client arguments.
|
|
149
|
-
* @returns Promise resolving to a new instance of OpenSearchVectorStore.
|
|
150
|
-
*/
|
|
151
|
-
static fromTexts(texts, metadatas, embeddings, args) {
|
|
152
|
-
const documents = texts.map((text, idx) => {
|
|
153
|
-
const metadata = Array.isArray(metadatas) ? metadatas[idx] : metadatas;
|
|
154
|
-
return new Document({ pageContent: text, metadata });
|
|
155
|
-
});
|
|
156
|
-
return OpenSearchVectorStore.fromDocuments(documents, embeddings, args);
|
|
157
|
-
}
|
|
158
|
-
/**
|
|
159
|
-
* Static method to create a new OpenSearchVectorStore from an array of
|
|
160
|
-
* Documents, embeddings, and OpenSearch client arguments.
|
|
161
|
-
* @param docs The documents to be added to the OpenSearch index.
|
|
162
|
-
* @param embeddings The embeddings used to convert the documents into vectors.
|
|
163
|
-
* @param dbConfig The OpenSearch client arguments.
|
|
164
|
-
* @returns Promise resolving to a new instance of OpenSearchVectorStore.
|
|
165
|
-
*/
|
|
166
|
-
static async fromDocuments(docs, embeddings, dbConfig) {
|
|
167
|
-
const store = new OpenSearchVectorStore(embeddings, dbConfig);
|
|
168
|
-
await store.addDocuments(docs).then(() => store);
|
|
169
|
-
return store;
|
|
170
|
-
}
|
|
171
|
-
/**
|
|
172
|
-
* Static method to create a new OpenSearchVectorStore from an existing
|
|
173
|
-
* OpenSearch index, embeddings, and OpenSearch client arguments.
|
|
174
|
-
* @param embeddings The embeddings used to convert the documents into vectors.
|
|
175
|
-
* @param dbConfig The OpenSearch client arguments.
|
|
176
|
-
* @returns Promise resolving to a new instance of OpenSearchVectorStore.
|
|
177
|
-
*/
|
|
178
|
-
static async fromExistingIndex(embeddings, dbConfig) {
|
|
179
|
-
const store = new OpenSearchVectorStore(embeddings, dbConfig);
|
|
180
|
-
await store.client.cat.indices({ index: store.indexName });
|
|
181
|
-
return store;
|
|
182
|
-
}
|
|
183
|
-
async ensureIndexExists(dimension, engine = "nmslib", spaceType = "l2", efSearch = 512, efConstruction = 512, m = 16) {
|
|
184
|
-
const body = {
|
|
185
|
-
settings: {
|
|
186
|
-
index: {
|
|
187
|
-
number_of_shards: 5,
|
|
188
|
-
number_of_replicas: 1,
|
|
189
|
-
knn: true,
|
|
190
|
-
"knn.algo_param.ef_search": efSearch,
|
|
191
|
-
},
|
|
192
|
-
},
|
|
193
|
-
mappings: {
|
|
194
|
-
dynamic_templates: [
|
|
195
|
-
{
|
|
196
|
-
// map all metadata properties to be keyword
|
|
197
|
-
"metadata.*": {
|
|
198
|
-
match_mapping_type: "*",
|
|
199
|
-
mapping: { type: "keyword" },
|
|
200
|
-
},
|
|
201
|
-
},
|
|
202
|
-
],
|
|
203
|
-
properties: {
|
|
204
|
-
text: { type: "text" },
|
|
205
|
-
metadata: { type: "object" },
|
|
206
|
-
embedding: {
|
|
207
|
-
type: "knn_vector",
|
|
208
|
-
dimension,
|
|
209
|
-
method: {
|
|
210
|
-
name: "hnsw",
|
|
211
|
-
engine,
|
|
212
|
-
space_type: spaceType,
|
|
213
|
-
parameters: { ef_construction: efConstruction, m },
|
|
214
|
-
},
|
|
215
|
-
},
|
|
216
|
-
},
|
|
217
|
-
},
|
|
218
|
-
};
|
|
219
|
-
const indexExists = await this.doesIndexExist();
|
|
220
|
-
if (indexExists)
|
|
221
|
-
return;
|
|
222
|
-
await this.client.indices.create({ index: this.indexName, body });
|
|
223
|
-
}
|
|
224
|
-
buildMetadataTerms(filter) {
|
|
225
|
-
if (filter == null)
|
|
226
|
-
return [];
|
|
227
|
-
const result = [];
|
|
228
|
-
for (const [key, value] of Object.entries(filter)) {
|
|
229
|
-
const aggregatorKey = Array.isArray(value) ? "terms" : "term";
|
|
230
|
-
result.push({ [aggregatorKey]: { [`metadata.${key}`]: value } });
|
|
231
|
-
}
|
|
232
|
-
return result;
|
|
233
|
-
}
|
|
234
|
-
/**
|
|
235
|
-
* Method to check if the OpenSearch index exists.
|
|
236
|
-
* @returns Promise resolving to a boolean indicating whether the index exists.
|
|
237
|
-
*/
|
|
238
|
-
async doesIndexExist() {
|
|
239
|
-
try {
|
|
240
|
-
await this.client.cat.indices({ index: this.indexName });
|
|
241
|
-
return true;
|
|
242
|
-
}
|
|
243
|
-
catch (err) {
|
|
244
|
-
// eslint-disable-next-line no-instanceof/no-instanceof
|
|
245
|
-
if (err instanceof errors.ResponseError && err.statusCode === 404) {
|
|
246
|
-
return false;
|
|
247
|
-
}
|
|
248
|
-
throw err;
|
|
249
|
-
}
|
|
250
|
-
}
|
|
251
|
-
/**
|
|
252
|
-
* Method to delete the OpenSearch index if it exists.
|
|
253
|
-
* @returns Promise resolving to void.
|
|
254
|
-
*/
|
|
255
|
-
async deleteIfExists() {
|
|
256
|
-
const indexExists = await this.doesIndexExist();
|
|
257
|
-
if (!indexExists)
|
|
258
|
-
return;
|
|
259
|
-
await this.client.indices.delete({ index: this.indexName });
|
|
260
|
-
}
|
|
261
|
-
}
|
|
1
|
+
export * from "@langchain/community/vectorstores/opensearch";
|