langchain 0.0.203 → 0.0.204-rc.1
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/agents/toolkits/aws_sfn.cjs +3 -75
- package/dist/agents/toolkits/aws_sfn.d.ts +2 -45
- package/dist/agents/toolkits/aws_sfn.js +2 -73
- package/dist/agents/toolkits/base.cjs +15 -9
- package/dist/agents/toolkits/base.d.ts +1 -9
- package/dist/agents/toolkits/base.js +1 -7
- package/dist/agents/toolkits/connery/index.cjs +15 -37
- package/dist/agents/toolkits/connery/index.d.ts +1 -23
- package/dist/agents/toolkits/connery/index.js +1 -35
- 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/ioredis.cjs +15 -77
- package/dist/cache/ioredis.d.ts +1 -40
- package/dist/cache/ioredis.js +1 -75
- 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/memory/chat_memory.cjs +15 -61
- package/dist/memory/chat_memory.d.ts +1 -36
- package/dist/memory/chat_memory.js +1 -59
- package/dist/memory/motorhead_memory.cjs +15 -161
- package/dist/memory/motorhead_memory.d.ts +1 -63
- package/dist/memory/motorhead_memory.js +1 -159
- package/dist/memory/zep.cjs +15 -222
- package/dist/memory/zep.d.ts +1 -86
- package/dist/memory/zep.js +1 -220
- 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/in_memory.cjs +15 -49
- package/dist/stores/message/in_memory.d.ts +1 -28
- package/dist/stores/message/in_memory.js +1 -47
- 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_lambda.cjs +15 -83
- package/dist/tools/aws_lambda.d.ts +1 -25
- package/dist/tools/aws_lambda.js +1 -82
- 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/dynamic.cjs +15 -87
- package/dist/tools/dynamic.d.ts +1 -48
- package/dist/tools/dynamic.js +1 -84
- 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.cjs +15 -75
- package/dist/util/convex.d.ts +1 -26
- package/dist/util/convex.js +1 -74
- 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 +6 -6
- package/dist/vectorstores/memory.d.ts +3 -3
- package/dist/vectorstores/memory.js +2 -2
- 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 -265
- 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/chunk.cjs +0 -11
- package/dist/util/chunk.d.ts +0 -1
- package/dist/util/chunk.js +0 -7
- package/dist/util/googlevertexai-gauth.cjs +0 -36
- package/dist/util/googlevertexai-gauth.d.ts +0 -8
- package/dist/util/googlevertexai-gauth.js +0 -32
- package/dist/util/googlevertexai-webauth.cjs +0 -96
- package/dist/util/googlevertexai-webauth.d.ts +0 -22
- package/dist/util/googlevertexai-webauth.js +0 -92
- package/dist/util/iflytek_websocket_stream.cjs +0 -81
- package/dist/util/iflytek_websocket_stream.d.ts +0 -27
- package/dist/util/iflytek_websocket_stream.js +0 -77
- package/dist/util/llama_cpp.cjs +0 -34
- package/dist/util/llama_cpp.d.ts +0 -46
- package/dist/util/llama_cpp.js +0 -28
- package/dist/util/momento.cjs +0 -26
- package/dist/util/momento.d.ts +0 -9
- package/dist/util/momento.js +0 -22
- 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
|
@@ -1,186 +1 @@
|
|
|
1
|
-
|
|
2
|
-
import { VectorAlgorithms } from "redis";
|
|
3
|
-
import { Embeddings } from "../embeddings/base.js";
|
|
4
|
-
import { VectorStore } from "./base.js";
|
|
5
|
-
import { Document } from "../document.js";
|
|
6
|
-
/**
|
|
7
|
-
* Type for creating a schema vector field. It includes the algorithm,
|
|
8
|
-
* distance metric, and initial capacity.
|
|
9
|
-
*/
|
|
10
|
-
export type CreateSchemaVectorField<T extends VectorAlgorithms, A extends Record<string, unknown>> = {
|
|
11
|
-
ALGORITHM: T;
|
|
12
|
-
DISTANCE_METRIC: "L2" | "IP" | "COSINE";
|
|
13
|
-
INITIAL_CAP?: number;
|
|
14
|
-
} & A;
|
|
15
|
-
/**
|
|
16
|
-
* Type for creating a flat schema vector field. It extends
|
|
17
|
-
* CreateSchemaVectorField with a block size property.
|
|
18
|
-
*/
|
|
19
|
-
export type CreateSchemaFlatVectorField = CreateSchemaVectorField<VectorAlgorithms.FLAT, {
|
|
20
|
-
BLOCK_SIZE?: number;
|
|
21
|
-
}>;
|
|
22
|
-
/**
|
|
23
|
-
* Type for creating a HNSW schema vector field. It extends
|
|
24
|
-
* CreateSchemaVectorField with M, EF_CONSTRUCTION, and EF_RUNTIME
|
|
25
|
-
* properties.
|
|
26
|
-
*/
|
|
27
|
-
export type CreateSchemaHNSWVectorField = CreateSchemaVectorField<VectorAlgorithms.HNSW, {
|
|
28
|
-
M?: number;
|
|
29
|
-
EF_CONSTRUCTION?: number;
|
|
30
|
-
EF_RUNTIME?: number;
|
|
31
|
-
}>;
|
|
32
|
-
type CreateIndexOptions = NonNullable<Parameters<ReturnType<typeof createClient>["ft"]["create"]>[3]>;
|
|
33
|
-
export type RedisSearchLanguages = `${NonNullable<CreateIndexOptions["LANGUAGE"]>}`;
|
|
34
|
-
export type RedisVectorStoreIndexOptions = Omit<CreateIndexOptions, "LANGUAGE"> & {
|
|
35
|
-
LANGUAGE?: RedisSearchLanguages;
|
|
36
|
-
};
|
|
37
|
-
/**
|
|
38
|
-
* Interface for the configuration of the RedisVectorStore. It includes
|
|
39
|
-
* the Redis client, index name, index options, key prefix, content key,
|
|
40
|
-
* metadata key, vector key, and filter.
|
|
41
|
-
*/
|
|
42
|
-
export interface RedisVectorStoreConfig {
|
|
43
|
-
redisClient: ReturnType<typeof createClient> | ReturnType<typeof createCluster>;
|
|
44
|
-
indexName: string;
|
|
45
|
-
indexOptions?: CreateSchemaFlatVectorField | CreateSchemaHNSWVectorField;
|
|
46
|
-
createIndexOptions?: Omit<RedisVectorStoreIndexOptions, "PREFIX">;
|
|
47
|
-
keyPrefix?: string;
|
|
48
|
-
contentKey?: string;
|
|
49
|
-
metadataKey?: string;
|
|
50
|
-
vectorKey?: string;
|
|
51
|
-
filter?: RedisVectorStoreFilterType;
|
|
52
|
-
}
|
|
53
|
-
/**
|
|
54
|
-
* Interface for the options when adding documents to the
|
|
55
|
-
* RedisVectorStore. It includes keys and batch size.
|
|
56
|
-
*/
|
|
57
|
-
export interface RedisAddOptions {
|
|
58
|
-
keys?: string[];
|
|
59
|
-
batchSize?: number;
|
|
60
|
-
}
|
|
61
|
-
/**
|
|
62
|
-
* Type for the filter used in the RedisVectorStore. It is an array of
|
|
63
|
-
* strings.
|
|
64
|
-
*/
|
|
65
|
-
export type RedisVectorStoreFilterType = string[];
|
|
66
|
-
/**
|
|
67
|
-
* Class representing a RedisVectorStore. It extends the VectorStore class
|
|
68
|
-
* and includes methods for adding documents and vectors, performing
|
|
69
|
-
* similarity searches, managing the index, and more.
|
|
70
|
-
*/
|
|
71
|
-
export declare class RedisVectorStore extends VectorStore {
|
|
72
|
-
FilterType: RedisVectorStoreFilterType;
|
|
73
|
-
private redisClient;
|
|
74
|
-
indexName: string;
|
|
75
|
-
indexOptions: CreateSchemaFlatVectorField | CreateSchemaHNSWVectorField;
|
|
76
|
-
createIndexOptions: CreateIndexOptions;
|
|
77
|
-
keyPrefix: string;
|
|
78
|
-
contentKey: string;
|
|
79
|
-
metadataKey: string;
|
|
80
|
-
vectorKey: string;
|
|
81
|
-
filter?: RedisVectorStoreFilterType;
|
|
82
|
-
_vectorstoreType(): string;
|
|
83
|
-
constructor(embeddings: Embeddings, _dbConfig: RedisVectorStoreConfig);
|
|
84
|
-
/**
|
|
85
|
-
* Method for adding documents to the RedisVectorStore. It first converts
|
|
86
|
-
* the documents to texts and then adds them as vectors.
|
|
87
|
-
* @param documents The documents to add.
|
|
88
|
-
* @param options Optional parameters for adding the documents.
|
|
89
|
-
* @returns A promise that resolves when the documents have been added.
|
|
90
|
-
*/
|
|
91
|
-
addDocuments(documents: Document[], options?: RedisAddOptions): Promise<void>;
|
|
92
|
-
/**
|
|
93
|
-
* Method for adding vectors to the RedisVectorStore. It checks if the
|
|
94
|
-
* index exists and creates it if it doesn't, then adds the vectors in
|
|
95
|
-
* batches.
|
|
96
|
-
* @param vectors The vectors to add.
|
|
97
|
-
* @param documents The documents associated with the vectors.
|
|
98
|
-
* @param keys Optional keys for the vectors.
|
|
99
|
-
* @param batchSize The size of the batches in which to add the vectors. Defaults to 1000.
|
|
100
|
-
* @returns A promise that resolves when the vectors have been added.
|
|
101
|
-
*/
|
|
102
|
-
addVectors(vectors: number[][], documents: Document[], { keys, batchSize }?: RedisAddOptions): Promise<void>;
|
|
103
|
-
/**
|
|
104
|
-
* Method for performing a similarity search in the RedisVectorStore. It
|
|
105
|
-
* returns the documents and their scores.
|
|
106
|
-
* @param query The query vector.
|
|
107
|
-
* @param k The number of nearest neighbors to return.
|
|
108
|
-
* @param filter Optional filter to apply to the search.
|
|
109
|
-
* @returns A promise that resolves to an array of documents and their scores.
|
|
110
|
-
*/
|
|
111
|
-
similaritySearchVectorWithScore(query: number[], k: number, filter?: RedisVectorStoreFilterType): Promise<[Document, number][]>;
|
|
112
|
-
/**
|
|
113
|
-
* Static method for creating a new instance of RedisVectorStore from
|
|
114
|
-
* texts. It creates documents from the texts and metadata, then adds them
|
|
115
|
-
* to the RedisVectorStore.
|
|
116
|
-
* @param texts The texts to add.
|
|
117
|
-
* @param metadatas The metadata associated with the texts.
|
|
118
|
-
* @param embeddings The embeddings to use.
|
|
119
|
-
* @param dbConfig The configuration for the RedisVectorStore.
|
|
120
|
-
* @returns A promise that resolves to a new instance of RedisVectorStore.
|
|
121
|
-
*/
|
|
122
|
-
static fromTexts(texts: string[], metadatas: object[] | object, embeddings: Embeddings, dbConfig: RedisVectorStoreConfig): Promise<RedisVectorStore>;
|
|
123
|
-
/**
|
|
124
|
-
* Static method for creating a new instance of RedisVectorStore from
|
|
125
|
-
* documents. It adds the documents to the RedisVectorStore.
|
|
126
|
-
* @param docs The documents to add.
|
|
127
|
-
* @param embeddings The embeddings to use.
|
|
128
|
-
* @param dbConfig The configuration for the RedisVectorStore.
|
|
129
|
-
* @returns A promise that resolves to a new instance of RedisVectorStore.
|
|
130
|
-
*/
|
|
131
|
-
static fromDocuments(docs: Document[], embeddings: Embeddings, dbConfig: RedisVectorStoreConfig): Promise<RedisVectorStore>;
|
|
132
|
-
/**
|
|
133
|
-
* Method for checking if an index exists in the RedisVectorStore.
|
|
134
|
-
* @returns A promise that resolves to a boolean indicating whether the index exists.
|
|
135
|
-
*/
|
|
136
|
-
checkIndexExists(): Promise<boolean>;
|
|
137
|
-
/**
|
|
138
|
-
* Method for creating an index in the RedisVectorStore. If the index
|
|
139
|
-
* already exists, it does nothing.
|
|
140
|
-
* @param dimensions The dimensions of the index
|
|
141
|
-
* @returns A promise that resolves when the index has been created.
|
|
142
|
-
*/
|
|
143
|
-
createIndex(dimensions?: number): Promise<void>;
|
|
144
|
-
/**
|
|
145
|
-
* Method for dropping an index from the RedisVectorStore.
|
|
146
|
-
* @param deleteDocuments Optional boolean indicating whether to drop the associated documents.
|
|
147
|
-
* @returns A promise that resolves to a boolean indicating whether the index was dropped.
|
|
148
|
-
*/
|
|
149
|
-
dropIndex(deleteDocuments?: boolean): Promise<boolean>;
|
|
150
|
-
/**
|
|
151
|
-
* Deletes vectors from the vector store.
|
|
152
|
-
* @param params The parameters for deleting vectors.
|
|
153
|
-
* @returns A promise that resolves when the vectors have been deleted.
|
|
154
|
-
*/
|
|
155
|
-
delete(params: {
|
|
156
|
-
deleteAll: boolean;
|
|
157
|
-
}): Promise<void>;
|
|
158
|
-
private buildQuery;
|
|
159
|
-
private prepareFilter;
|
|
160
|
-
/**
|
|
161
|
-
* Escapes all '-' characters.
|
|
162
|
-
* RediSearch considers '-' as a negative operator, hence we need
|
|
163
|
-
* to escape it
|
|
164
|
-
* @see https://redis.io/docs/stack/search/reference/query_syntax
|
|
165
|
-
*
|
|
166
|
-
* @param str
|
|
167
|
-
* @returns
|
|
168
|
-
*/
|
|
169
|
-
private escapeSpecialChars;
|
|
170
|
-
/**
|
|
171
|
-
* Unescapes all '-' characters, returning the original string
|
|
172
|
-
*
|
|
173
|
-
* @param str
|
|
174
|
-
* @returns
|
|
175
|
-
*/
|
|
176
|
-
private unEscapeSpecialChars;
|
|
177
|
-
/**
|
|
178
|
-
* Converts the vector to the buffer Redis needs to
|
|
179
|
-
* correctly store an embedding
|
|
180
|
-
*
|
|
181
|
-
* @param vector
|
|
182
|
-
* @returns Buffer
|
|
183
|
-
*/
|
|
184
|
-
private getFloat32Buffer;
|
|
185
|
-
}
|
|
186
|
-
export {};
|
|
1
|
+
export * from "@langchain/community/vectorstores/redis";
|
|
@@ -1,331 +1 @@
|
|
|
1
|
-
|
|
2
|
-
import { VectorStore } from "./base.js";
|
|
3
|
-
import { Document } from "../document.js";
|
|
4
|
-
/**
|
|
5
|
-
* Class representing a RedisVectorStore. It extends the VectorStore class
|
|
6
|
-
* and includes methods for adding documents and vectors, performing
|
|
7
|
-
* similarity searches, managing the index, and more.
|
|
8
|
-
*/
|
|
9
|
-
export class RedisVectorStore extends VectorStore {
|
|
10
|
-
_vectorstoreType() {
|
|
11
|
-
return "redis";
|
|
12
|
-
}
|
|
13
|
-
constructor(embeddings, _dbConfig) {
|
|
14
|
-
super(embeddings, _dbConfig);
|
|
15
|
-
Object.defineProperty(this, "redisClient", {
|
|
16
|
-
enumerable: true,
|
|
17
|
-
configurable: true,
|
|
18
|
-
writable: true,
|
|
19
|
-
value: void 0
|
|
20
|
-
});
|
|
21
|
-
Object.defineProperty(this, "indexName", {
|
|
22
|
-
enumerable: true,
|
|
23
|
-
configurable: true,
|
|
24
|
-
writable: true,
|
|
25
|
-
value: void 0
|
|
26
|
-
});
|
|
27
|
-
Object.defineProperty(this, "indexOptions", {
|
|
28
|
-
enumerable: true,
|
|
29
|
-
configurable: true,
|
|
30
|
-
writable: true,
|
|
31
|
-
value: void 0
|
|
32
|
-
});
|
|
33
|
-
Object.defineProperty(this, "createIndexOptions", {
|
|
34
|
-
enumerable: true,
|
|
35
|
-
configurable: true,
|
|
36
|
-
writable: true,
|
|
37
|
-
value: void 0
|
|
38
|
-
});
|
|
39
|
-
Object.defineProperty(this, "keyPrefix", {
|
|
40
|
-
enumerable: true,
|
|
41
|
-
configurable: true,
|
|
42
|
-
writable: true,
|
|
43
|
-
value: void 0
|
|
44
|
-
});
|
|
45
|
-
Object.defineProperty(this, "contentKey", {
|
|
46
|
-
enumerable: true,
|
|
47
|
-
configurable: true,
|
|
48
|
-
writable: true,
|
|
49
|
-
value: void 0
|
|
50
|
-
});
|
|
51
|
-
Object.defineProperty(this, "metadataKey", {
|
|
52
|
-
enumerable: true,
|
|
53
|
-
configurable: true,
|
|
54
|
-
writable: true,
|
|
55
|
-
value: void 0
|
|
56
|
-
});
|
|
57
|
-
Object.defineProperty(this, "vectorKey", {
|
|
58
|
-
enumerable: true,
|
|
59
|
-
configurable: true,
|
|
60
|
-
writable: true,
|
|
61
|
-
value: void 0
|
|
62
|
-
});
|
|
63
|
-
Object.defineProperty(this, "filter", {
|
|
64
|
-
enumerable: true,
|
|
65
|
-
configurable: true,
|
|
66
|
-
writable: true,
|
|
67
|
-
value: void 0
|
|
68
|
-
});
|
|
69
|
-
this.redisClient = _dbConfig.redisClient;
|
|
70
|
-
this.indexName = _dbConfig.indexName;
|
|
71
|
-
this.indexOptions = _dbConfig.indexOptions ?? {
|
|
72
|
-
ALGORITHM: VectorAlgorithms.HNSW,
|
|
73
|
-
DISTANCE_METRIC: "COSINE",
|
|
74
|
-
};
|
|
75
|
-
this.keyPrefix = _dbConfig.keyPrefix ?? `doc:${this.indexName}:`;
|
|
76
|
-
this.contentKey = _dbConfig.contentKey ?? "content";
|
|
77
|
-
this.metadataKey = _dbConfig.metadataKey ?? "metadata";
|
|
78
|
-
this.vectorKey = _dbConfig.vectorKey ?? "content_vector";
|
|
79
|
-
this.filter = _dbConfig.filter;
|
|
80
|
-
this.createIndexOptions = {
|
|
81
|
-
ON: "HASH",
|
|
82
|
-
PREFIX: this.keyPrefix,
|
|
83
|
-
..._dbConfig.createIndexOptions,
|
|
84
|
-
};
|
|
85
|
-
}
|
|
86
|
-
/**
|
|
87
|
-
* Method for adding documents to the RedisVectorStore. It first converts
|
|
88
|
-
* the documents to texts and then adds them as vectors.
|
|
89
|
-
* @param documents The documents to add.
|
|
90
|
-
* @param options Optional parameters for adding the documents.
|
|
91
|
-
* @returns A promise that resolves when the documents have been added.
|
|
92
|
-
*/
|
|
93
|
-
async addDocuments(documents, options) {
|
|
94
|
-
const texts = documents.map(({ pageContent }) => pageContent);
|
|
95
|
-
return this.addVectors(await this.embeddings.embedDocuments(texts), documents, options);
|
|
96
|
-
}
|
|
97
|
-
/**
|
|
98
|
-
* Method for adding vectors to the RedisVectorStore. It checks if the
|
|
99
|
-
* index exists and creates it if it doesn't, then adds the vectors in
|
|
100
|
-
* batches.
|
|
101
|
-
* @param vectors The vectors to add.
|
|
102
|
-
* @param documents The documents associated with the vectors.
|
|
103
|
-
* @param keys Optional keys for the vectors.
|
|
104
|
-
* @param batchSize The size of the batches in which to add the vectors. Defaults to 1000.
|
|
105
|
-
* @returns A promise that resolves when the vectors have been added.
|
|
106
|
-
*/
|
|
107
|
-
async addVectors(vectors, documents, { keys, batchSize = 1000 } = {}) {
|
|
108
|
-
if (!vectors.length || !vectors[0].length) {
|
|
109
|
-
throw new Error("No vectors provided");
|
|
110
|
-
}
|
|
111
|
-
// check if the index exists and create it if it doesn't
|
|
112
|
-
await this.createIndex(vectors[0].length);
|
|
113
|
-
const info = await this.redisClient.ft.info(this.indexName);
|
|
114
|
-
const lastKeyCount = parseInt(info.numDocs, 10) || 0;
|
|
115
|
-
const multi = this.redisClient.multi();
|
|
116
|
-
vectors.map(async (vector, idx) => {
|
|
117
|
-
const key = keys && keys.length
|
|
118
|
-
? keys[idx]
|
|
119
|
-
: `${this.keyPrefix}${idx + lastKeyCount}`;
|
|
120
|
-
const metadata = documents[idx] && documents[idx].metadata
|
|
121
|
-
? documents[idx].metadata
|
|
122
|
-
: {};
|
|
123
|
-
multi.hSet(key, {
|
|
124
|
-
[this.vectorKey]: this.getFloat32Buffer(vector),
|
|
125
|
-
[this.contentKey]: documents[idx].pageContent,
|
|
126
|
-
[this.metadataKey]: this.escapeSpecialChars(JSON.stringify(metadata)),
|
|
127
|
-
});
|
|
128
|
-
// write batch
|
|
129
|
-
if (idx % batchSize === 0) {
|
|
130
|
-
await multi.exec();
|
|
131
|
-
}
|
|
132
|
-
});
|
|
133
|
-
// insert final batch
|
|
134
|
-
await multi.exec();
|
|
135
|
-
}
|
|
136
|
-
/**
|
|
137
|
-
* Method for performing a similarity search in the RedisVectorStore. It
|
|
138
|
-
* returns the documents and their scores.
|
|
139
|
-
* @param query The query vector.
|
|
140
|
-
* @param k The number of nearest neighbors to return.
|
|
141
|
-
* @param filter Optional filter to apply to the search.
|
|
142
|
-
* @returns A promise that resolves to an array of documents and their scores.
|
|
143
|
-
*/
|
|
144
|
-
async similaritySearchVectorWithScore(query, k, filter) {
|
|
145
|
-
if (filter && this.filter) {
|
|
146
|
-
throw new Error("cannot provide both `filter` and `this.filter`");
|
|
147
|
-
}
|
|
148
|
-
const _filter = filter ?? this.filter;
|
|
149
|
-
const results = await this.redisClient.ft.search(this.indexName, ...this.buildQuery(query, k, _filter));
|
|
150
|
-
const result = [];
|
|
151
|
-
if (results.total) {
|
|
152
|
-
for (const res of results.documents) {
|
|
153
|
-
if (res.value) {
|
|
154
|
-
const document = res.value;
|
|
155
|
-
if (document.vector_score) {
|
|
156
|
-
result.push([
|
|
157
|
-
new Document({
|
|
158
|
-
pageContent: document[this.contentKey],
|
|
159
|
-
metadata: JSON.parse(this.unEscapeSpecialChars(document.metadata)),
|
|
160
|
-
}),
|
|
161
|
-
Number(document.vector_score),
|
|
162
|
-
]);
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
return result;
|
|
168
|
-
}
|
|
169
|
-
/**
|
|
170
|
-
* Static method for creating a new instance of RedisVectorStore from
|
|
171
|
-
* texts. It creates documents from the texts and metadata, then adds them
|
|
172
|
-
* to the RedisVectorStore.
|
|
173
|
-
* @param texts The texts to add.
|
|
174
|
-
* @param metadatas The metadata associated with the texts.
|
|
175
|
-
* @param embeddings The embeddings to use.
|
|
176
|
-
* @param dbConfig The configuration for the RedisVectorStore.
|
|
177
|
-
* @returns A promise that resolves to a new instance of RedisVectorStore.
|
|
178
|
-
*/
|
|
179
|
-
static fromTexts(texts, metadatas, embeddings, dbConfig) {
|
|
180
|
-
const docs = [];
|
|
181
|
-
for (let i = 0; i < texts.length; i += 1) {
|
|
182
|
-
const metadata = Array.isArray(metadatas) ? metadatas[i] : metadatas;
|
|
183
|
-
const newDoc = new Document({
|
|
184
|
-
pageContent: texts[i],
|
|
185
|
-
metadata,
|
|
186
|
-
});
|
|
187
|
-
docs.push(newDoc);
|
|
188
|
-
}
|
|
189
|
-
return RedisVectorStore.fromDocuments(docs, embeddings, dbConfig);
|
|
190
|
-
}
|
|
191
|
-
/**
|
|
192
|
-
* Static method for creating a new instance of RedisVectorStore from
|
|
193
|
-
* documents. It adds the documents to the RedisVectorStore.
|
|
194
|
-
* @param docs The documents to add.
|
|
195
|
-
* @param embeddings The embeddings to use.
|
|
196
|
-
* @param dbConfig The configuration for the RedisVectorStore.
|
|
197
|
-
* @returns A promise that resolves to a new instance of RedisVectorStore.
|
|
198
|
-
*/
|
|
199
|
-
static async fromDocuments(docs, embeddings, dbConfig) {
|
|
200
|
-
const instance = new this(embeddings, dbConfig);
|
|
201
|
-
await instance.addDocuments(docs);
|
|
202
|
-
return instance;
|
|
203
|
-
}
|
|
204
|
-
/**
|
|
205
|
-
* Method for checking if an index exists in the RedisVectorStore.
|
|
206
|
-
* @returns A promise that resolves to a boolean indicating whether the index exists.
|
|
207
|
-
*/
|
|
208
|
-
async checkIndexExists() {
|
|
209
|
-
try {
|
|
210
|
-
await this.redisClient.ft.info(this.indexName);
|
|
211
|
-
}
|
|
212
|
-
catch (err) {
|
|
213
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
214
|
-
if (err?.message.includes("unknown command")) {
|
|
215
|
-
throw new Error("Failed to run FT.INFO command. Please ensure that you are running a RediSearch-capable Redis instance: https://js.langchain.com/docs/modules/data_connection/vectorstores/integrations/redis#setup");
|
|
216
|
-
}
|
|
217
|
-
// index doesn't exist
|
|
218
|
-
return false;
|
|
219
|
-
}
|
|
220
|
-
return true;
|
|
221
|
-
}
|
|
222
|
-
/**
|
|
223
|
-
* Method for creating an index in the RedisVectorStore. If the index
|
|
224
|
-
* already exists, it does nothing.
|
|
225
|
-
* @param dimensions The dimensions of the index
|
|
226
|
-
* @returns A promise that resolves when the index has been created.
|
|
227
|
-
*/
|
|
228
|
-
async createIndex(dimensions = 1536) {
|
|
229
|
-
if (await this.checkIndexExists()) {
|
|
230
|
-
return;
|
|
231
|
-
}
|
|
232
|
-
const schema = {
|
|
233
|
-
[this.vectorKey]: {
|
|
234
|
-
type: SchemaFieldTypes.VECTOR,
|
|
235
|
-
TYPE: "FLOAT32",
|
|
236
|
-
DIM: dimensions,
|
|
237
|
-
...this.indexOptions,
|
|
238
|
-
},
|
|
239
|
-
[this.contentKey]: SchemaFieldTypes.TEXT,
|
|
240
|
-
[this.metadataKey]: SchemaFieldTypes.TEXT,
|
|
241
|
-
};
|
|
242
|
-
await this.redisClient.ft.create(this.indexName, schema, this.createIndexOptions);
|
|
243
|
-
}
|
|
244
|
-
/**
|
|
245
|
-
* Method for dropping an index from the RedisVectorStore.
|
|
246
|
-
* @param deleteDocuments Optional boolean indicating whether to drop the associated documents.
|
|
247
|
-
* @returns A promise that resolves to a boolean indicating whether the index was dropped.
|
|
248
|
-
*/
|
|
249
|
-
async dropIndex(deleteDocuments) {
|
|
250
|
-
try {
|
|
251
|
-
const options = deleteDocuments ? { DD: deleteDocuments } : undefined;
|
|
252
|
-
await this.redisClient.ft.dropIndex(this.indexName, options);
|
|
253
|
-
return true;
|
|
254
|
-
}
|
|
255
|
-
catch (err) {
|
|
256
|
-
return false;
|
|
257
|
-
}
|
|
258
|
-
}
|
|
259
|
-
/**
|
|
260
|
-
* Deletes vectors from the vector store.
|
|
261
|
-
* @param params The parameters for deleting vectors.
|
|
262
|
-
* @returns A promise that resolves when the vectors have been deleted.
|
|
263
|
-
*/
|
|
264
|
-
async delete(params) {
|
|
265
|
-
if (params.deleteAll) {
|
|
266
|
-
await this.dropIndex(true);
|
|
267
|
-
}
|
|
268
|
-
else {
|
|
269
|
-
throw new Error(`Invalid parameters passed to "delete".`);
|
|
270
|
-
}
|
|
271
|
-
}
|
|
272
|
-
buildQuery(query, k, filter) {
|
|
273
|
-
const vectorScoreField = "vector_score";
|
|
274
|
-
let hybridFields = "*";
|
|
275
|
-
// if a filter is set, modify the hybrid query
|
|
276
|
-
if (filter && filter.length) {
|
|
277
|
-
// `filter` is a list of strings, then it's applied using the OR operator in the metadata key
|
|
278
|
-
// for example: filter = ['foo', 'bar'] => this will filter all metadata containing either 'foo' OR 'bar'
|
|
279
|
-
hybridFields = `@${this.metadataKey}:(${this.prepareFilter(filter)})`;
|
|
280
|
-
}
|
|
281
|
-
const baseQuery = `${hybridFields} => [KNN ${k} @${this.vectorKey} $vector AS ${vectorScoreField}]`;
|
|
282
|
-
const returnFields = [this.metadataKey, this.contentKey, vectorScoreField];
|
|
283
|
-
const options = {
|
|
284
|
-
PARAMS: {
|
|
285
|
-
vector: this.getFloat32Buffer(query),
|
|
286
|
-
},
|
|
287
|
-
RETURN: returnFields,
|
|
288
|
-
SORTBY: vectorScoreField,
|
|
289
|
-
DIALECT: 2,
|
|
290
|
-
LIMIT: {
|
|
291
|
-
from: 0,
|
|
292
|
-
size: k,
|
|
293
|
-
},
|
|
294
|
-
};
|
|
295
|
-
return [baseQuery, options];
|
|
296
|
-
}
|
|
297
|
-
prepareFilter(filter) {
|
|
298
|
-
return filter.map(this.escapeSpecialChars).join("|");
|
|
299
|
-
}
|
|
300
|
-
/**
|
|
301
|
-
* Escapes all '-' characters.
|
|
302
|
-
* RediSearch considers '-' as a negative operator, hence we need
|
|
303
|
-
* to escape it
|
|
304
|
-
* @see https://redis.io/docs/stack/search/reference/query_syntax
|
|
305
|
-
*
|
|
306
|
-
* @param str
|
|
307
|
-
* @returns
|
|
308
|
-
*/
|
|
309
|
-
escapeSpecialChars(str) {
|
|
310
|
-
return str.replaceAll("-", "\\-");
|
|
311
|
-
}
|
|
312
|
-
/**
|
|
313
|
-
* Unescapes all '-' characters, returning the original string
|
|
314
|
-
*
|
|
315
|
-
* @param str
|
|
316
|
-
* @returns
|
|
317
|
-
*/
|
|
318
|
-
unEscapeSpecialChars(str) {
|
|
319
|
-
return str.replaceAll("\\-", "-");
|
|
320
|
-
}
|
|
321
|
-
/**
|
|
322
|
-
* Converts the vector to the buffer Redis needs to
|
|
323
|
-
* correctly store an embedding
|
|
324
|
-
*
|
|
325
|
-
* @param vector
|
|
326
|
-
* @returns Buffer
|
|
327
|
-
*/
|
|
328
|
-
getFloat32Buffer(vector) {
|
|
329
|
-
return Buffer.from(new Float32Array(vector).buffer);
|
|
330
|
-
}
|
|
331
|
-
}
|
|
1
|
+
export * from "@langchain/community/vectorstores/redis";
|