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,127 +1 @@
|
|
|
1
|
-
|
|
2
|
-
import type { NameRegistry, Parser } from "pickleparser";
|
|
3
|
-
import { Embeddings } from "../embeddings/base.js";
|
|
4
|
-
import { SaveableVectorStore } from "./base.js";
|
|
5
|
-
import { Document } from "../document.js";
|
|
6
|
-
import { SynchronousInMemoryDocstore } from "../stores/doc/in_memory.js";
|
|
7
|
-
/**
|
|
8
|
-
* Interface for the arguments required to initialize a FaissStore
|
|
9
|
-
* instance.
|
|
10
|
-
*/
|
|
11
|
-
export interface FaissLibArgs {
|
|
12
|
-
docstore?: SynchronousInMemoryDocstore;
|
|
13
|
-
index?: IndexFlatL2;
|
|
14
|
-
mapping?: Record<number, string>;
|
|
15
|
-
}
|
|
16
|
-
/**
|
|
17
|
-
* A class that wraps the FAISS (Facebook AI Similarity Search) vector
|
|
18
|
-
* database for efficient similarity search and clustering of dense
|
|
19
|
-
* vectors.
|
|
20
|
-
*/
|
|
21
|
-
export declare class FaissStore extends SaveableVectorStore {
|
|
22
|
-
_index?: IndexFlatL2;
|
|
23
|
-
_mapping: Record<number, string>;
|
|
24
|
-
docstore: SynchronousInMemoryDocstore;
|
|
25
|
-
args: FaissLibArgs;
|
|
26
|
-
_vectorstoreType(): string;
|
|
27
|
-
getMapping(): Record<number, string>;
|
|
28
|
-
getDocstore(): SynchronousInMemoryDocstore;
|
|
29
|
-
constructor(embeddings: Embeddings, args: FaissLibArgs);
|
|
30
|
-
/**
|
|
31
|
-
* Adds an array of Document objects to the store.
|
|
32
|
-
* @param documents An array of Document objects.
|
|
33
|
-
* @returns A Promise that resolves when the documents have been added.
|
|
34
|
-
*/
|
|
35
|
-
addDocuments(documents: Document[], options?: {
|
|
36
|
-
ids?: string[];
|
|
37
|
-
}): Promise<string[]>;
|
|
38
|
-
get index(): IndexFlatL2;
|
|
39
|
-
private set index(value);
|
|
40
|
-
/**
|
|
41
|
-
* Adds an array of vectors and their corresponding Document objects to
|
|
42
|
-
* the store.
|
|
43
|
-
* @param vectors An array of vectors.
|
|
44
|
-
* @param documents An array of Document objects corresponding to the vectors.
|
|
45
|
-
* @returns A Promise that resolves with an array of document IDs when the vectors and documents have been added.
|
|
46
|
-
*/
|
|
47
|
-
addVectors(vectors: number[][], documents: Document[], options?: {
|
|
48
|
-
ids?: string[];
|
|
49
|
-
}): Promise<string[]>;
|
|
50
|
-
/**
|
|
51
|
-
* Performs a similarity search in the vector store using a query vector
|
|
52
|
-
* and returns the top k results along with their scores.
|
|
53
|
-
* @param query A query vector.
|
|
54
|
-
* @param k The number of top results to return.
|
|
55
|
-
* @returns A Promise that resolves with an array of tuples, each containing a Document and its corresponding score.
|
|
56
|
-
*/
|
|
57
|
-
similaritySearchVectorWithScore(query: number[], k: number): Promise<[Document<Record<string, any>>, number][]>;
|
|
58
|
-
/**
|
|
59
|
-
* Saves the current state of the FaissStore to a specified directory.
|
|
60
|
-
* @param directory The directory to save the state to.
|
|
61
|
-
* @returns A Promise that resolves when the state has been saved.
|
|
62
|
-
*/
|
|
63
|
-
save(directory: string): Promise<void>;
|
|
64
|
-
/**
|
|
65
|
-
* Method to delete documents.
|
|
66
|
-
* @param params Object containing the IDs of the documents to delete.
|
|
67
|
-
* @returns A promise that resolves when the deletion is complete.
|
|
68
|
-
*/
|
|
69
|
-
delete(params: {
|
|
70
|
-
ids: string[];
|
|
71
|
-
}): Promise<void>;
|
|
72
|
-
/**
|
|
73
|
-
* Merges the current FaissStore with another FaissStore.
|
|
74
|
-
* @param targetIndex The FaissStore to merge with.
|
|
75
|
-
* @returns A Promise that resolves with an array of document IDs when the merge is complete.
|
|
76
|
-
*/
|
|
77
|
-
mergeFrom(targetIndex: FaissStore): Promise<string[]>;
|
|
78
|
-
/**
|
|
79
|
-
* Loads a FaissStore from a specified directory.
|
|
80
|
-
* @param directory The directory to load the FaissStore from.
|
|
81
|
-
* @param embeddings An Embeddings object.
|
|
82
|
-
* @returns A Promise that resolves with a new FaissStore instance.
|
|
83
|
-
*/
|
|
84
|
-
static load(directory: string, embeddings: Embeddings): Promise<FaissStore>;
|
|
85
|
-
static loadFromPython(directory: string, embeddings: Embeddings): Promise<FaissStore>;
|
|
86
|
-
/**
|
|
87
|
-
* Creates a new FaissStore from an array of texts, their corresponding
|
|
88
|
-
* metadata, and an Embeddings object.
|
|
89
|
-
* @param texts An array of texts.
|
|
90
|
-
* @param metadatas An array of metadata corresponding to the texts, or a single metadata object to be used for all texts.
|
|
91
|
-
* @param embeddings An Embeddings object.
|
|
92
|
-
* @param dbConfig An optional configuration object for the document store.
|
|
93
|
-
* @returns A Promise that resolves with a new FaissStore instance.
|
|
94
|
-
*/
|
|
95
|
-
static fromTexts(texts: string[], metadatas: object[] | object, embeddings: Embeddings, dbConfig?: {
|
|
96
|
-
docstore?: SynchronousInMemoryDocstore;
|
|
97
|
-
}): Promise<FaissStore>;
|
|
98
|
-
/**
|
|
99
|
-
* Creates a new FaissStore from an array of Document objects and an
|
|
100
|
-
* Embeddings object.
|
|
101
|
-
* @param docs An array of Document objects.
|
|
102
|
-
* @param embeddings An Embeddings object.
|
|
103
|
-
* @param dbConfig An optional configuration object for the document store.
|
|
104
|
-
* @returns A Promise that resolves with a new FaissStore instance.
|
|
105
|
-
*/
|
|
106
|
-
static fromDocuments(docs: Document[], embeddings: Embeddings, dbConfig?: {
|
|
107
|
-
docstore?: SynchronousInMemoryDocstore;
|
|
108
|
-
}): Promise<FaissStore>;
|
|
109
|
-
/**
|
|
110
|
-
* Creates a new FaissStore from an existing FaissStore and an Embeddings
|
|
111
|
-
* object.
|
|
112
|
-
* @param targetIndex An existing FaissStore.
|
|
113
|
-
* @param embeddings An Embeddings object.
|
|
114
|
-
* @param dbConfig An optional configuration object for the document store.
|
|
115
|
-
* @returns A Promise that resolves with a new FaissStore instance.
|
|
116
|
-
*/
|
|
117
|
-
static fromIndex(targetIndex: FaissStore, embeddings: Embeddings, dbConfig?: {
|
|
118
|
-
docstore?: SynchronousInMemoryDocstore;
|
|
119
|
-
}): Promise<FaissStore>;
|
|
120
|
-
static importFaiss(): Promise<{
|
|
121
|
-
IndexFlatL2: typeof IndexFlatL2;
|
|
122
|
-
}>;
|
|
123
|
-
static importPickleparser(): Promise<{
|
|
124
|
-
Parser: typeof Parser;
|
|
125
|
-
NameRegistry: typeof NameRegistry;
|
|
126
|
-
}>;
|
|
127
|
-
}
|
|
1
|
+
export * from "@langchain/community/vectorstores/faiss";
|
|
@@ -1,365 +1 @@
|
|
|
1
|
-
|
|
2
|
-
import { SaveableVectorStore } from "./base.js";
|
|
3
|
-
import { Document } from "../document.js";
|
|
4
|
-
import { SynchronousInMemoryDocstore } from "../stores/doc/in_memory.js";
|
|
5
|
-
/**
|
|
6
|
-
* A class that wraps the FAISS (Facebook AI Similarity Search) vector
|
|
7
|
-
* database for efficient similarity search and clustering of dense
|
|
8
|
-
* vectors.
|
|
9
|
-
*/
|
|
10
|
-
export class FaissStore extends SaveableVectorStore {
|
|
11
|
-
_vectorstoreType() {
|
|
12
|
-
return "faiss";
|
|
13
|
-
}
|
|
14
|
-
getMapping() {
|
|
15
|
-
return this._mapping;
|
|
16
|
-
}
|
|
17
|
-
getDocstore() {
|
|
18
|
-
return this.docstore;
|
|
19
|
-
}
|
|
20
|
-
constructor(embeddings, args) {
|
|
21
|
-
super(embeddings, args);
|
|
22
|
-
Object.defineProperty(this, "_index", {
|
|
23
|
-
enumerable: true,
|
|
24
|
-
configurable: true,
|
|
25
|
-
writable: true,
|
|
26
|
-
value: void 0
|
|
27
|
-
});
|
|
28
|
-
Object.defineProperty(this, "_mapping", {
|
|
29
|
-
enumerable: true,
|
|
30
|
-
configurable: true,
|
|
31
|
-
writable: true,
|
|
32
|
-
value: void 0
|
|
33
|
-
});
|
|
34
|
-
Object.defineProperty(this, "docstore", {
|
|
35
|
-
enumerable: true,
|
|
36
|
-
configurable: true,
|
|
37
|
-
writable: true,
|
|
38
|
-
value: void 0
|
|
39
|
-
});
|
|
40
|
-
Object.defineProperty(this, "args", {
|
|
41
|
-
enumerable: true,
|
|
42
|
-
configurable: true,
|
|
43
|
-
writable: true,
|
|
44
|
-
value: void 0
|
|
45
|
-
});
|
|
46
|
-
this.args = args;
|
|
47
|
-
this._index = args.index;
|
|
48
|
-
this._mapping = args.mapping ?? {};
|
|
49
|
-
this.embeddings = embeddings;
|
|
50
|
-
this.docstore = args?.docstore ?? new SynchronousInMemoryDocstore();
|
|
51
|
-
}
|
|
52
|
-
/**
|
|
53
|
-
* Adds an array of Document objects to the store.
|
|
54
|
-
* @param documents An array of Document objects.
|
|
55
|
-
* @returns A Promise that resolves when the documents have been added.
|
|
56
|
-
*/
|
|
57
|
-
async addDocuments(documents, options) {
|
|
58
|
-
const texts = documents.map(({ pageContent }) => pageContent);
|
|
59
|
-
return this.addVectors(await this.embeddings.embedDocuments(texts), documents, options);
|
|
60
|
-
}
|
|
61
|
-
get index() {
|
|
62
|
-
if (!this._index) {
|
|
63
|
-
throw new Error("Vector store not initialised yet. Try calling `fromTexts`, `fromDocuments` or `fromIndex` first.");
|
|
64
|
-
}
|
|
65
|
-
return this._index;
|
|
66
|
-
}
|
|
67
|
-
set index(index) {
|
|
68
|
-
this._index = index;
|
|
69
|
-
}
|
|
70
|
-
/**
|
|
71
|
-
* Adds an array of vectors and their corresponding Document objects to
|
|
72
|
-
* the store.
|
|
73
|
-
* @param vectors An array of vectors.
|
|
74
|
-
* @param documents An array of Document objects corresponding to the vectors.
|
|
75
|
-
* @returns A Promise that resolves with an array of document IDs when the vectors and documents have been added.
|
|
76
|
-
*/
|
|
77
|
-
async addVectors(vectors, documents, options) {
|
|
78
|
-
if (vectors.length === 0) {
|
|
79
|
-
return [];
|
|
80
|
-
}
|
|
81
|
-
if (vectors.length !== documents.length) {
|
|
82
|
-
throw new Error(`Vectors and documents must have the same length`);
|
|
83
|
-
}
|
|
84
|
-
const dv = vectors[0].length;
|
|
85
|
-
if (!this._index) {
|
|
86
|
-
const { IndexFlatL2 } = await FaissStore.importFaiss();
|
|
87
|
-
this._index = new IndexFlatL2(dv);
|
|
88
|
-
}
|
|
89
|
-
const d = this.index.getDimension();
|
|
90
|
-
if (dv !== d) {
|
|
91
|
-
throw new Error(`Vectors must have the same length as the number of dimensions (${d})`);
|
|
92
|
-
}
|
|
93
|
-
const docstoreSize = this.index.ntotal();
|
|
94
|
-
const documentIds = options?.ids ?? documents.map(() => uuid.v4());
|
|
95
|
-
for (let i = 0; i < vectors.length; i += 1) {
|
|
96
|
-
const documentId = documentIds[i];
|
|
97
|
-
const id = docstoreSize + i;
|
|
98
|
-
this.index.add(vectors[i]);
|
|
99
|
-
this._mapping[id] = documentId;
|
|
100
|
-
this.docstore.add({ [documentId]: documents[i] });
|
|
101
|
-
}
|
|
102
|
-
return documentIds;
|
|
103
|
-
}
|
|
104
|
-
/**
|
|
105
|
-
* Performs a similarity search in the vector store using a query vector
|
|
106
|
-
* and returns the top k results along with their scores.
|
|
107
|
-
* @param query A query vector.
|
|
108
|
-
* @param k The number of top results to return.
|
|
109
|
-
* @returns A Promise that resolves with an array of tuples, each containing a Document and its corresponding score.
|
|
110
|
-
*/
|
|
111
|
-
async similaritySearchVectorWithScore(query, k) {
|
|
112
|
-
const d = this.index.getDimension();
|
|
113
|
-
if (query.length !== d) {
|
|
114
|
-
throw new Error(`Query vector must have the same length as the number of dimensions (${d})`);
|
|
115
|
-
}
|
|
116
|
-
if (k > this.index.ntotal()) {
|
|
117
|
-
const total = this.index.ntotal();
|
|
118
|
-
console.warn(`k (${k}) is greater than the number of elements in the index (${total}), setting k to ${total}`);
|
|
119
|
-
// eslint-disable-next-line no-param-reassign
|
|
120
|
-
k = total;
|
|
121
|
-
}
|
|
122
|
-
const result = this.index.search(query, k);
|
|
123
|
-
return result.labels.map((id, index) => {
|
|
124
|
-
const uuid = this._mapping[id];
|
|
125
|
-
return [this.docstore.search(uuid), result.distances[index]];
|
|
126
|
-
});
|
|
127
|
-
}
|
|
128
|
-
/**
|
|
129
|
-
* Saves the current state of the FaissStore to a specified directory.
|
|
130
|
-
* @param directory The directory to save the state to.
|
|
131
|
-
* @returns A Promise that resolves when the state has been saved.
|
|
132
|
-
*/
|
|
133
|
-
async save(directory) {
|
|
134
|
-
const fs = await import("node:fs/promises");
|
|
135
|
-
const path = await import("node:path");
|
|
136
|
-
await fs.mkdir(directory, { recursive: true });
|
|
137
|
-
await Promise.all([
|
|
138
|
-
this.index.write(path.join(directory, "faiss.index")),
|
|
139
|
-
await fs.writeFile(path.join(directory, "docstore.json"), JSON.stringify([
|
|
140
|
-
Array.from(this.docstore._docs.entries()),
|
|
141
|
-
this._mapping,
|
|
142
|
-
])),
|
|
143
|
-
]);
|
|
144
|
-
}
|
|
145
|
-
/**
|
|
146
|
-
* Method to delete documents.
|
|
147
|
-
* @param params Object containing the IDs of the documents to delete.
|
|
148
|
-
* @returns A promise that resolves when the deletion is complete.
|
|
149
|
-
*/
|
|
150
|
-
async delete(params) {
|
|
151
|
-
const documentIds = params.ids;
|
|
152
|
-
if (documentIds == null) {
|
|
153
|
-
throw new Error("No documentIds provided to delete.");
|
|
154
|
-
}
|
|
155
|
-
const mappings = new Map(Object.entries(this._mapping).map(([key, value]) => [
|
|
156
|
-
parseInt(key, 10),
|
|
157
|
-
value,
|
|
158
|
-
]));
|
|
159
|
-
const reversedMappings = new Map(Array.from(mappings, (entry) => [entry[1], entry[0]]));
|
|
160
|
-
const missingIds = new Set(documentIds.filter((id) => !reversedMappings.has(id)));
|
|
161
|
-
if (missingIds.size > 0) {
|
|
162
|
-
throw new Error(`Some specified documentIds do not exist in the current store. DocumentIds not found: ${Array.from(missingIds).join(", ")}`);
|
|
163
|
-
}
|
|
164
|
-
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
165
|
-
const indexIdToDelete = documentIds.map((id) => reversedMappings.get(id));
|
|
166
|
-
// remove from index
|
|
167
|
-
this.index.removeIds(indexIdToDelete);
|
|
168
|
-
// remove from docstore
|
|
169
|
-
documentIds.forEach((id) => {
|
|
170
|
-
this.docstore._docs.delete(id);
|
|
171
|
-
});
|
|
172
|
-
// remove from mappings
|
|
173
|
-
indexIdToDelete.forEach((id) => {
|
|
174
|
-
mappings.delete(id);
|
|
175
|
-
});
|
|
176
|
-
this._mapping = { ...Array.from(mappings.values()) };
|
|
177
|
-
}
|
|
178
|
-
/**
|
|
179
|
-
* Merges the current FaissStore with another FaissStore.
|
|
180
|
-
* @param targetIndex The FaissStore to merge with.
|
|
181
|
-
* @returns A Promise that resolves with an array of document IDs when the merge is complete.
|
|
182
|
-
*/
|
|
183
|
-
async mergeFrom(targetIndex) {
|
|
184
|
-
const targetIndexDimensions = targetIndex.index.getDimension();
|
|
185
|
-
if (!this._index) {
|
|
186
|
-
const { IndexFlatL2 } = await FaissStore.importFaiss();
|
|
187
|
-
this._index = new IndexFlatL2(targetIndexDimensions);
|
|
188
|
-
}
|
|
189
|
-
const d = this.index.getDimension();
|
|
190
|
-
if (targetIndexDimensions !== d) {
|
|
191
|
-
throw new Error("Cannot merge indexes with different dimensions.");
|
|
192
|
-
}
|
|
193
|
-
const targetMapping = targetIndex.getMapping();
|
|
194
|
-
const targetDocstore = targetIndex.getDocstore();
|
|
195
|
-
const targetSize = targetIndex.index.ntotal();
|
|
196
|
-
const documentIds = [];
|
|
197
|
-
const currentDocstoreSize = this.index.ntotal();
|
|
198
|
-
for (let i = 0; i < targetSize; i += 1) {
|
|
199
|
-
const targetId = targetMapping[i];
|
|
200
|
-
documentIds.push(targetId);
|
|
201
|
-
const targetDocument = targetDocstore.search(targetId);
|
|
202
|
-
const id = currentDocstoreSize + i;
|
|
203
|
-
this._mapping[id] = targetId;
|
|
204
|
-
this.docstore.add({ [targetId]: targetDocument });
|
|
205
|
-
}
|
|
206
|
-
this.index.mergeFrom(targetIndex.index);
|
|
207
|
-
return documentIds;
|
|
208
|
-
}
|
|
209
|
-
/**
|
|
210
|
-
* Loads a FaissStore from a specified directory.
|
|
211
|
-
* @param directory The directory to load the FaissStore from.
|
|
212
|
-
* @param embeddings An Embeddings object.
|
|
213
|
-
* @returns A Promise that resolves with a new FaissStore instance.
|
|
214
|
-
*/
|
|
215
|
-
static async load(directory, embeddings) {
|
|
216
|
-
const fs = await import("node:fs/promises");
|
|
217
|
-
const path = await import("node:path");
|
|
218
|
-
const readStore = (directory) => fs
|
|
219
|
-
.readFile(path.join(directory, "docstore.json"), "utf8")
|
|
220
|
-
.then(JSON.parse);
|
|
221
|
-
const readIndex = async (directory) => {
|
|
222
|
-
const { IndexFlatL2 } = await this.importFaiss();
|
|
223
|
-
return IndexFlatL2.read(path.join(directory, "faiss.index"));
|
|
224
|
-
};
|
|
225
|
-
const [[docstoreFiles, mapping], index] = await Promise.all([
|
|
226
|
-
readStore(directory),
|
|
227
|
-
readIndex(directory),
|
|
228
|
-
]);
|
|
229
|
-
const docstore = new SynchronousInMemoryDocstore(new Map(docstoreFiles));
|
|
230
|
-
return new this(embeddings, { docstore, index, mapping });
|
|
231
|
-
}
|
|
232
|
-
static async loadFromPython(directory, embeddings) {
|
|
233
|
-
const fs = await import("node:fs/promises");
|
|
234
|
-
const path = await import("node:path");
|
|
235
|
-
const { Parser, NameRegistry } = await this.importPickleparser();
|
|
236
|
-
class PyDocument extends Map {
|
|
237
|
-
toDocument() {
|
|
238
|
-
return new Document({
|
|
239
|
-
pageContent: this.get("page_content"),
|
|
240
|
-
metadata: this.get("metadata"),
|
|
241
|
-
});
|
|
242
|
-
}
|
|
243
|
-
}
|
|
244
|
-
class PyInMemoryDocstore {
|
|
245
|
-
constructor() {
|
|
246
|
-
Object.defineProperty(this, "_dict", {
|
|
247
|
-
enumerable: true,
|
|
248
|
-
configurable: true,
|
|
249
|
-
writable: true,
|
|
250
|
-
value: void 0
|
|
251
|
-
});
|
|
252
|
-
}
|
|
253
|
-
toInMemoryDocstore() {
|
|
254
|
-
const s = new SynchronousInMemoryDocstore();
|
|
255
|
-
for (const [key, value] of Object.entries(this._dict)) {
|
|
256
|
-
s._docs.set(key, value.toDocument());
|
|
257
|
-
}
|
|
258
|
-
return s;
|
|
259
|
-
}
|
|
260
|
-
}
|
|
261
|
-
const readStore = async (directory) => {
|
|
262
|
-
const pkl = await fs.readFile(path.join(directory, "index.pkl"), "binary");
|
|
263
|
-
const buffer = Buffer.from(pkl, "binary");
|
|
264
|
-
const registry = new NameRegistry()
|
|
265
|
-
.register("langchain.docstore.in_memory", "InMemoryDocstore", PyInMemoryDocstore)
|
|
266
|
-
.register("langchain.schema", "Document", PyDocument)
|
|
267
|
-
.register("langchain.docstore.document", "Document", PyDocument)
|
|
268
|
-
.register("langchain.schema.document", "Document", PyDocument)
|
|
269
|
-
.register("pathlib", "WindowsPath", (...args) => args.join("\\"))
|
|
270
|
-
.register("pathlib", "PosixPath", (...args) => args.join("/"));
|
|
271
|
-
const pickleparser = new Parser({
|
|
272
|
-
nameResolver: registry,
|
|
273
|
-
});
|
|
274
|
-
const [rawStore, mapping] = pickleparser.parse(buffer);
|
|
275
|
-
const store = rawStore.toInMemoryDocstore();
|
|
276
|
-
return { store, mapping };
|
|
277
|
-
};
|
|
278
|
-
const readIndex = async (directory) => {
|
|
279
|
-
const { IndexFlatL2 } = await this.importFaiss();
|
|
280
|
-
return IndexFlatL2.read(path.join(directory, "index.faiss"));
|
|
281
|
-
};
|
|
282
|
-
const [store, index] = await Promise.all([
|
|
283
|
-
readStore(directory),
|
|
284
|
-
readIndex(directory),
|
|
285
|
-
]);
|
|
286
|
-
return new this(embeddings, {
|
|
287
|
-
docstore: store.store,
|
|
288
|
-
index,
|
|
289
|
-
mapping: store.mapping,
|
|
290
|
-
});
|
|
291
|
-
}
|
|
292
|
-
/**
|
|
293
|
-
* Creates a new FaissStore from an array of texts, their corresponding
|
|
294
|
-
* metadata, and an Embeddings object.
|
|
295
|
-
* @param texts An array of texts.
|
|
296
|
-
* @param metadatas An array of metadata corresponding to the texts, or a single metadata object to be used for all texts.
|
|
297
|
-
* @param embeddings An Embeddings object.
|
|
298
|
-
* @param dbConfig An optional configuration object for the document store.
|
|
299
|
-
* @returns A Promise that resolves with a new FaissStore instance.
|
|
300
|
-
*/
|
|
301
|
-
static async fromTexts(texts, metadatas, embeddings, dbConfig) {
|
|
302
|
-
const docs = [];
|
|
303
|
-
for (let i = 0; i < texts.length; i += 1) {
|
|
304
|
-
const metadata = Array.isArray(metadatas) ? metadatas[i] : metadatas;
|
|
305
|
-
const newDoc = new Document({
|
|
306
|
-
pageContent: texts[i],
|
|
307
|
-
metadata,
|
|
308
|
-
});
|
|
309
|
-
docs.push(newDoc);
|
|
310
|
-
}
|
|
311
|
-
return this.fromDocuments(docs, embeddings, dbConfig);
|
|
312
|
-
}
|
|
313
|
-
/**
|
|
314
|
-
* Creates a new FaissStore from an array of Document objects and an
|
|
315
|
-
* Embeddings object.
|
|
316
|
-
* @param docs An array of Document objects.
|
|
317
|
-
* @param embeddings An Embeddings object.
|
|
318
|
-
* @param dbConfig An optional configuration object for the document store.
|
|
319
|
-
* @returns A Promise that resolves with a new FaissStore instance.
|
|
320
|
-
*/
|
|
321
|
-
static async fromDocuments(docs, embeddings, dbConfig) {
|
|
322
|
-
const args = {
|
|
323
|
-
docstore: dbConfig?.docstore,
|
|
324
|
-
};
|
|
325
|
-
const instance = new this(embeddings, args);
|
|
326
|
-
await instance.addDocuments(docs);
|
|
327
|
-
return instance;
|
|
328
|
-
}
|
|
329
|
-
/**
|
|
330
|
-
* Creates a new FaissStore from an existing FaissStore and an Embeddings
|
|
331
|
-
* object.
|
|
332
|
-
* @param targetIndex An existing FaissStore.
|
|
333
|
-
* @param embeddings An Embeddings object.
|
|
334
|
-
* @param dbConfig An optional configuration object for the document store.
|
|
335
|
-
* @returns A Promise that resolves with a new FaissStore instance.
|
|
336
|
-
*/
|
|
337
|
-
static async fromIndex(targetIndex, embeddings, dbConfig) {
|
|
338
|
-
const args = {
|
|
339
|
-
docstore: dbConfig?.docstore,
|
|
340
|
-
};
|
|
341
|
-
const instance = new this(embeddings, args);
|
|
342
|
-
await instance.mergeFrom(targetIndex);
|
|
343
|
-
return instance;
|
|
344
|
-
}
|
|
345
|
-
static async importFaiss() {
|
|
346
|
-
try {
|
|
347
|
-
const { default: { IndexFlatL2 }, } = await import("faiss-node");
|
|
348
|
-
return { IndexFlatL2 };
|
|
349
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
350
|
-
}
|
|
351
|
-
catch (err) {
|
|
352
|
-
throw new Error(`Could not import faiss-node. Please install faiss-node as a dependency with, e.g. \`npm install -S faiss-node\`.\n\nError: ${err?.message}`);
|
|
353
|
-
}
|
|
354
|
-
}
|
|
355
|
-
static async importPickleparser() {
|
|
356
|
-
try {
|
|
357
|
-
const { default: { Parser, NameRegistry }, } = await import("pickleparser");
|
|
358
|
-
return { Parser, NameRegistry };
|
|
359
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
360
|
-
}
|
|
361
|
-
catch (err) {
|
|
362
|
-
throw new Error(`Could not import pickleparser. Please install pickleparser as a dependency with, e.g. \`npm install -S pickleparser\`.\n\nError: ${err?.message}`);
|
|
363
|
-
}
|
|
364
|
-
}
|
|
365
|
-
}
|
|
1
|
+
export * from "@langchain/community/vectorstores/faiss";
|