langchain 0.0.203 → 0.0.204-rc.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cache/cloudflare_kv.cjs +15 -69
- package/dist/cache/cloudflare_kv.d.ts +1 -42
- package/dist/cache/cloudflare_kv.js +1 -67
- package/dist/cache/momento.cjs +15 -135
- package/dist/cache/momento.d.ts +1 -91
- package/dist/cache/momento.js +1 -133
- package/dist/cache/upstash_redis.cjs +15 -72
- package/dist/cache/upstash_redis.d.ts +1 -45
- package/dist/cache/upstash_redis.js +1 -70
- package/dist/callbacks/handlers/llmonitor.cjs +14 -238
- package/dist/callbacks/handlers/llmonitor.d.ts +1 -35
- package/dist/callbacks/handlers/llmonitor.js +1 -233
- package/dist/chains/openai_moderation.cjs +2 -2
- package/dist/chains/openai_moderation.d.ts +1 -1
- package/dist/chains/openai_moderation.js +1 -1
- package/dist/chat_models/anthropic.d.ts +4 -4
- package/dist/chat_models/baiduwenxin.cjs +15 -411
- package/dist/chat_models/baiduwenxin.d.ts +1 -150
- package/dist/chat_models/baiduwenxin.js +1 -409
- package/dist/chat_models/bedrock/index.cjs +15 -33
- package/dist/chat_models/bedrock/index.d.ts +1 -23
- package/dist/chat_models/bedrock/index.js +1 -29
- package/dist/chat_models/bedrock/web.cjs +15 -360
- package/dist/chat_models/bedrock/web.d.ts +1 -82
- package/dist/chat_models/bedrock/web.js +1 -356
- package/dist/chat_models/cloudflare_workersai.cjs +15 -216
- package/dist/chat_models/cloudflare_workersai.d.ts +1 -68
- package/dist/chat_models/cloudflare_workersai.js +1 -214
- package/dist/chat_models/fireworks.cjs +15 -89
- package/dist/chat_models/fireworks.d.ts +1 -43
- package/dist/chat_models/fireworks.js +1 -87
- package/dist/chat_models/googlepalm.cjs +15 -235
- package/dist/chat_models/googlepalm.d.ts +1 -108
- package/dist/chat_models/googlepalm.js +1 -233
- package/dist/chat_models/googlevertexai/index.cjs +15 -40
- package/dist/chat_models/googlevertexai/index.d.ts +1 -28
- package/dist/chat_models/googlevertexai/index.js +1 -38
- package/dist/chat_models/googlevertexai/web.cjs +15 -39
- package/dist/chat_models/googlevertexai/web.d.ts +1 -28
- package/dist/chat_models/googlevertexai/web.js +1 -37
- package/dist/chat_models/iflytek_xinghuo/index.cjs +14 -40
- package/dist/chat_models/iflytek_xinghuo/index.d.ts +1 -13
- package/dist/chat_models/iflytek_xinghuo/index.js +1 -36
- package/dist/chat_models/iflytek_xinghuo/web.cjs +15 -36
- package/dist/chat_models/iflytek_xinghuo/web.d.ts +1 -13
- package/dist/chat_models/iflytek_xinghuo/web.js +1 -34
- package/dist/chat_models/llama_cpp.cjs +15 -275
- package/dist/chat_models/llama_cpp.d.ts +1 -71
- package/dist/chat_models/llama_cpp.js +1 -273
- package/dist/chat_models/minimax.cjs +15 -578
- package/dist/chat_models/minimax.d.ts +1 -369
- package/dist/chat_models/minimax.js +1 -576
- package/dist/chat_models/ollama.cjs +15 -394
- package/dist/chat_models/ollama.d.ts +1 -127
- package/dist/chat_models/ollama.js +1 -392
- package/dist/chat_models/openai.cjs +4 -698
- package/dist/chat_models/openai.d.ts +4 -137
- package/dist/chat_models/openai.js +2 -695
- package/dist/chat_models/portkey.cjs +15 -167
- package/dist/chat_models/portkey.d.ts +1 -17
- package/dist/chat_models/portkey.js +1 -165
- package/dist/chat_models/yandex.cjs +15 -132
- package/dist/chat_models/yandex.d.ts +1 -30
- package/dist/chat_models/yandex.js +1 -130
- package/dist/document_loaders/fs/openai_whisper_audio.cjs +2 -2
- package/dist/document_loaders/fs/openai_whisper_audio.d.ts +1 -1
- package/dist/document_loaders/fs/openai_whisper_audio.js +1 -1
- package/dist/document_transformers/html_to_text.cjs +15 -47
- package/dist/document_transformers/html_to_text.d.ts +1 -30
- package/dist/document_transformers/html_to_text.js +1 -45
- package/dist/document_transformers/mozilla_readability.cjs +15 -53
- package/dist/document_transformers/mozilla_readability.d.ts +1 -31
- package/dist/document_transformers/mozilla_readability.js +1 -51
- package/dist/embeddings/bedrock.cjs +15 -109
- package/dist/embeddings/bedrock.d.ts +1 -71
- package/dist/embeddings/bedrock.js +1 -107
- package/dist/embeddings/cloudflare_workersai.cjs +15 -67
- package/dist/embeddings/cloudflare_workersai.d.ts +1 -28
- package/dist/embeddings/cloudflare_workersai.js +1 -65
- package/dist/embeddings/cohere.cjs +15 -124
- package/dist/embeddings/cohere.d.ts +1 -66
- package/dist/embeddings/cohere.js +1 -122
- package/dist/embeddings/googlepalm.cjs +15 -88
- package/dist/embeddings/googlepalm.d.ts +1 -61
- package/dist/embeddings/googlepalm.js +1 -86
- package/dist/embeddings/googlevertexai.cjs +15 -81
- package/dist/embeddings/googlevertexai.d.ts +1 -54
- package/dist/embeddings/googlevertexai.js +1 -79
- package/dist/embeddings/gradient_ai.cjs +15 -101
- package/dist/embeddings/gradient_ai.d.ts +1 -48
- package/dist/embeddings/gradient_ai.js +1 -99
- package/dist/embeddings/hf.cjs +15 -75
- package/dist/embeddings/hf.d.ts +1 -41
- package/dist/embeddings/hf.js +1 -73
- package/dist/embeddings/hf_transformers.cjs +15 -87
- package/dist/embeddings/hf_transformers.d.ts +1 -47
- package/dist/embeddings/hf_transformers.js +1 -85
- package/dist/embeddings/llama_cpp.cjs +15 -81
- package/dist/embeddings/llama_cpp.d.ts +1 -42
- package/dist/embeddings/llama_cpp.js +1 -79
- package/dist/embeddings/minimax.cjs +15 -165
- package/dist/embeddings/minimax.d.ts +1 -119
- package/dist/embeddings/minimax.js +1 -163
- package/dist/embeddings/ollama.cjs +15 -118
- package/dist/embeddings/ollama.d.ts +1 -34
- package/dist/embeddings/ollama.js +1 -116
- package/dist/embeddings/openai.cjs +2 -240
- package/dist/embeddings/openai.d.ts +1 -82
- package/dist/embeddings/openai.js +1 -239
- package/dist/embeddings/tensorflow.cjs +3 -96
- package/dist/embeddings/tensorflow.d.ts +1 -59
- package/dist/embeddings/tensorflow.js +1 -83
- package/dist/embeddings/voyage.cjs +15 -118
- package/dist/embeddings/voyage.d.ts +1 -66
- package/dist/embeddings/voyage.js +1 -116
- package/dist/experimental/chat_models/ollama_functions.d.ts +1 -1
- package/dist/experimental/openai_assistant/index.cjs +3 -3
- package/dist/experimental/openai_assistant/index.d.ts +1 -1
- package/dist/experimental/openai_assistant/index.js +1 -1
- package/dist/experimental/openai_assistant/schema.d.ts +1 -1
- package/dist/experimental/openai_files/index.cjs +2 -2
- package/dist/experimental/openai_files/index.d.ts +1 -1
- package/dist/experimental/openai_files/index.js +1 -1
- package/dist/graphs/neo4j_graph.cjs +3 -254
- package/dist/graphs/neo4j_graph.d.ts +1 -63
- package/dist/graphs/neo4j_graph.js +1 -241
- package/dist/llms/ai21.cjs +15 -200
- package/dist/llms/ai21.d.ts +1 -100
- package/dist/llms/ai21.js +1 -198
- package/dist/llms/aleph_alpha.cjs +15 -374
- package/dist/llms/aleph_alpha.d.ts +1 -161
- package/dist/llms/aleph_alpha.js +1 -372
- package/dist/llms/bedrock/web.cjs +15 -310
- package/dist/llms/bedrock/web.d.ts +1 -66
- package/dist/llms/bedrock/web.js +1 -308
- package/dist/llms/cloudflare_workersai.cjs +15 -168
- package/dist/llms/cloudflare_workersai.d.ts +1 -55
- package/dist/llms/cloudflare_workersai.js +1 -166
- package/dist/llms/cohere.cjs +15 -110
- package/dist/llms/cohere.d.ts +1 -54
- package/dist/llms/cohere.js +1 -108
- package/dist/llms/fireworks.cjs +15 -90
- package/dist/llms/fireworks.d.ts +1 -33
- package/dist/llms/fireworks.js +1 -88
- package/dist/llms/googlepalm.cjs +15 -134
- package/dist/llms/googlepalm.d.ts +1 -92
- package/dist/llms/googlepalm.js +1 -132
- package/dist/llms/googlevertexai/index.cjs +15 -45
- package/dist/llms/googlevertexai/index.d.ts +1 -38
- package/dist/llms/googlevertexai/index.js +1 -43
- package/dist/llms/googlevertexai/web.cjs +15 -42
- package/dist/llms/googlevertexai/web.d.ts +1 -36
- package/dist/llms/googlevertexai/web.js +1 -40
- package/dist/llms/gradient_ai.cjs +15 -110
- package/dist/llms/gradient_ai.d.ts +1 -55
- package/dist/llms/gradient_ai.js +1 -108
- package/dist/llms/hf.cjs +15 -136
- package/dist/llms/hf.d.ts +1 -68
- package/dist/llms/hf.js +1 -134
- package/dist/llms/llama_cpp.cjs +15 -111
- package/dist/llms/llama_cpp.d.ts +1 -41
- package/dist/llms/llama_cpp.js +1 -109
- package/dist/llms/ollama.cjs +15 -353
- package/dist/llms/ollama.d.ts +1 -106
- package/dist/llms/ollama.js +1 -351
- package/dist/llms/openai-chat.cjs +3 -445
- package/dist/llms/openai-chat.d.ts +4 -123
- package/dist/llms/openai-chat.js +2 -443
- package/dist/llms/openai.cjs +6 -530
- package/dist/llms/openai.d.ts +4 -123
- package/dist/llms/openai.js +2 -525
- package/dist/llms/portkey.cjs +14 -168
- package/dist/llms/portkey.d.ts +1 -57
- package/dist/llms/portkey.js +1 -162
- package/dist/llms/raycast.cjs +15 -94
- package/dist/llms/raycast.d.ts +1 -50
- package/dist/llms/raycast.js +1 -92
- package/dist/llms/replicate.cjs +15 -132
- package/dist/llms/replicate.d.ts +1 -51
- package/dist/llms/replicate.js +1 -130
- package/dist/llms/sagemaker_endpoint.cjs +15 -203
- package/dist/llms/sagemaker_endpoint.d.ts +1 -121
- package/dist/llms/sagemaker_endpoint.js +1 -200
- package/dist/llms/watsonx_ai.cjs +15 -152
- package/dist/llms/watsonx_ai.d.ts +1 -72
- package/dist/llms/watsonx_ai.js +1 -150
- package/dist/llms/writer.cjs +15 -165
- package/dist/llms/writer.d.ts +1 -60
- package/dist/llms/writer.js +1 -163
- package/dist/llms/yandex.cjs +15 -98
- package/dist/llms/yandex.d.ts +1 -40
- package/dist/llms/yandex.js +1 -96
- package/dist/load/index.cjs +3 -1
- package/dist/load/index.d.ts +1 -1
- package/dist/load/index.js +3 -1
- package/dist/retrievers/amazon_kendra.cjs +15 -273
- package/dist/retrievers/amazon_kendra.d.ts +1 -142
- package/dist/retrievers/amazon_kendra.js +1 -271
- package/dist/retrievers/chaindesk.cjs +15 -88
- package/dist/retrievers/chaindesk.d.ts +1 -31
- package/dist/retrievers/chaindesk.js +1 -86
- package/dist/retrievers/databerry.cjs +15 -82
- package/dist/retrievers/databerry.d.ts +1 -34
- package/dist/retrievers/databerry.js +1 -80
- package/dist/retrievers/metal.cjs +15 -51
- package/dist/retrievers/metal.d.ts +1 -36
- package/dist/retrievers/metal.js +1 -49
- package/dist/retrievers/supabase.cjs +15 -167
- package/dist/retrievers/supabase.d.ts +1 -82
- package/dist/retrievers/supabase.js +1 -165
- package/dist/retrievers/tavily_search_api.cjs +15 -142
- package/dist/retrievers/tavily_search_api.d.ts +1 -38
- package/dist/retrievers/tavily_search_api.js +1 -140
- package/dist/retrievers/zep.cjs +15 -150
- package/dist/retrievers/zep.d.ts +1 -76
- package/dist/retrievers/zep.js +1 -148
- package/dist/schema/document.cjs +2 -16
- package/dist/schema/document.d.ts +1 -11
- package/dist/schema/document.js +1 -16
- package/dist/schema/index.cjs +2 -7
- package/dist/schema/index.d.ts +2 -10
- package/dist/schema/index.js +1 -6
- package/dist/storage/convex.cjs +15 -143
- package/dist/storage/convex.d.ts +1 -106
- package/dist/storage/convex.js +1 -141
- package/dist/storage/ioredis.cjs +15 -158
- package/dist/storage/ioredis.d.ts +1 -71
- package/dist/storage/ioredis.js +1 -156
- package/dist/storage/upstash_redis.cjs +15 -172
- package/dist/storage/upstash_redis.d.ts +1 -78
- package/dist/storage/upstash_redis.js +1 -170
- package/dist/storage/vercel_kv.cjs +15 -161
- package/dist/storage/vercel_kv.d.ts +1 -62
- package/dist/storage/vercel_kv.js +1 -159
- package/dist/stores/doc/in_memory.cjs +15 -105
- package/dist/stores/doc/in_memory.d.ts +1 -46
- package/dist/stores/doc/in_memory.js +1 -102
- package/dist/stores/message/cassandra.cjs +15 -158
- package/dist/stores/message/cassandra.d.ts +1 -69
- package/dist/stores/message/cassandra.js +1 -156
- package/dist/stores/message/cloudflare_d1.cjs +15 -150
- package/dist/stores/message/cloudflare_d1.d.ts +1 -67
- package/dist/stores/message/cloudflare_d1.js +1 -148
- package/dist/stores/message/convex.cjs +15 -118
- package/dist/stores/message/convex.d.ts +1 -81
- package/dist/stores/message/convex.js +1 -116
- package/dist/stores/message/dynamodb.cjs +15 -159
- package/dist/stores/message/dynamodb.d.ts +1 -51
- package/dist/stores/message/dynamodb.js +1 -157
- package/dist/stores/message/firestore.cjs +15 -185
- package/dist/stores/message/firestore.d.ts +1 -68
- package/dist/stores/message/firestore.js +1 -183
- package/dist/stores/message/ioredis.cjs +15 -98
- package/dist/stores/message/ioredis.d.ts +1 -64
- package/dist/stores/message/ioredis.js +1 -96
- package/dist/stores/message/momento.cjs +15 -160
- package/dist/stores/message/momento.d.ts +1 -97
- package/dist/stores/message/momento.js +1 -158
- package/dist/stores/message/mongodb.cjs +15 -57
- package/dist/stores/message/mongodb.d.ts +1 -26
- package/dist/stores/message/mongodb.js +1 -55
- package/dist/stores/message/planetscale.cjs +15 -170
- package/dist/stores/message/planetscale.d.ts +1 -75
- package/dist/stores/message/planetscale.js +1 -168
- package/dist/stores/message/redis.cjs +15 -114
- package/dist/stores/message/redis.d.ts +1 -69
- package/dist/stores/message/redis.js +1 -112
- package/dist/stores/message/upstash_redis.cjs +15 -85
- package/dist/stores/message/upstash_redis.d.ts +1 -43
- package/dist/stores/message/upstash_redis.js +1 -83
- package/dist/stores/message/utils.cjs +3 -23
- package/dist/stores/message/utils.d.ts +1 -17
- package/dist/stores/message/utils.js +1 -21
- package/dist/stores/message/xata.cjs +15 -216
- package/dist/stores/message/xata.d.ts +1 -76
- package/dist/stores/message/xata.js +1 -214
- package/dist/tools/IFTTTWebhook.cjs +15 -87
- package/dist/tools/IFTTTWebhook.d.ts +1 -50
- package/dist/tools/IFTTTWebhook.js +1 -85
- package/dist/tools/aiplugin.cjs +15 -73
- package/dist/tools/aiplugin.d.ts +1 -34
- package/dist/tools/aiplugin.js +1 -71
- package/dist/tools/aws_sfn.cjs +15 -201
- package/dist/tools/aws_sfn.d.ts +1 -57
- package/dist/tools/aws_sfn.js +1 -197
- package/dist/tools/bingserpapi.cjs +15 -76
- package/dist/tools/bingserpapi.d.ts +1 -23
- package/dist/tools/bingserpapi.js +1 -75
- package/dist/tools/brave_search.cjs +15 -64
- package/dist/tools/brave_search.d.ts +1 -23
- package/dist/tools/brave_search.js +1 -62
- package/dist/tools/connery.cjs +15 -277
- package/dist/tools/connery.d.ts +1 -145
- package/dist/tools/connery.js +1 -274
- package/dist/tools/convert_to_openai.d.ts +1 -1
- package/dist/tools/dadjokeapi.cjs +15 -46
- package/dist/tools/dadjokeapi.d.ts +1 -15
- package/dist/tools/dadjokeapi.js +1 -45
- package/dist/tools/dataforseo_api_search.cjs +15 -280
- package/dist/tools/dataforseo_api_search.d.ts +1 -170
- package/dist/tools/dataforseo_api_search.js +1 -278
- package/dist/tools/gmail/index.cjs +15 -11
- package/dist/tools/gmail/index.d.ts +1 -11
- package/dist/tools/gmail/index.js +1 -5
- package/dist/tools/google_custom_search.cjs +15 -70
- package/dist/tools/google_custom_search.d.ts +1 -25
- package/dist/tools/google_custom_search.js +1 -68
- package/dist/tools/google_places.cjs +15 -79
- package/dist/tools/google_places.d.ts +1 -21
- package/dist/tools/google_places.js +1 -77
- package/dist/tools/searchapi.cjs +15 -164
- package/dist/tools/searchapi.d.ts +1 -91
- package/dist/tools/searchapi.js +1 -162
- package/dist/tools/searxng_search.cjs +15 -156
- package/dist/tools/searxng_search.d.ts +1 -114
- package/dist/tools/searxng_search.js +1 -154
- package/dist/tools/serpapi.cjs +15 -199
- package/dist/tools/serpapi.d.ts +1 -302
- package/dist/tools/serpapi.js +1 -197
- package/dist/tools/serper.cjs +15 -94
- package/dist/tools/serper.d.ts +1 -32
- package/dist/tools/serper.js +1 -92
- package/dist/tools/wikipedia_query_run.cjs +15 -133
- package/dist/tools/wikipedia_query_run.d.ts +1 -54
- package/dist/tools/wikipedia_query_run.js +1 -131
- package/dist/tools/wolframalpha.cjs +15 -47
- package/dist/tools/wolframalpha.d.ts +1 -21
- package/dist/tools/wolframalpha.js +1 -45
- package/dist/types/openai-types.d.ts +1 -1
- package/dist/util/convex.d.ts +1 -1
- package/dist/util/event-source-parse.cjs +15 -224
- package/dist/util/event-source-parse.d.ts +1 -39
- package/dist/util/event-source-parse.js +1 -219
- package/dist/util/math.cjs +15 -123
- package/dist/util/math.d.ts +1 -40
- package/dist/util/math.js +1 -116
- package/dist/util/openapi.d.ts +2 -2
- package/dist/vectorstores/analyticdb.cjs +3 -333
- package/dist/vectorstores/analyticdb.d.ts +1 -110
- package/dist/vectorstores/analyticdb.js +1 -317
- package/dist/vectorstores/base.cjs +15 -165
- package/dist/vectorstores/base.d.ts +1 -104
- package/dist/vectorstores/base.js +1 -161
- package/dist/vectorstores/cassandra.cjs +15 -478
- package/dist/vectorstores/cassandra.d.ts +1 -162
- package/dist/vectorstores/cassandra.js +1 -476
- package/dist/vectorstores/chroma.cjs +3 -312
- package/dist/vectorstores/chroma.d.ts +1 -133
- package/dist/vectorstores/chroma.js +1 -299
- package/dist/vectorstores/clickhouse.cjs +3 -272
- package/dist/vectorstores/clickhouse.d.ts +1 -126
- package/dist/vectorstores/clickhouse.js +1 -259
- package/dist/vectorstores/closevector/node.cjs +15 -107
- package/dist/vectorstores/closevector/node.d.ts +1 -83
- package/dist/vectorstores/closevector/node.js +1 -105
- package/dist/vectorstores/closevector/web.cjs +15 -107
- package/dist/vectorstores/closevector/web.d.ts +1 -80
- package/dist/vectorstores/closevector/web.js +1 -105
- package/dist/vectorstores/cloudflare_vectorize.cjs +3 -186
- package/dist/vectorstores/cloudflare_vectorize.d.ts +1 -90
- package/dist/vectorstores/cloudflare_vectorize.js +1 -173
- package/dist/vectorstores/convex.cjs +15 -175
- package/dist/vectorstores/convex.d.ts +1 -134
- package/dist/vectorstores/convex.js +1 -173
- package/dist/vectorstores/elasticsearch.cjs +3 -287
- package/dist/vectorstores/elasticsearch.d.ts +1 -143
- package/dist/vectorstores/elasticsearch.js +1 -274
- package/dist/vectorstores/faiss.cjs +3 -378
- package/dist/vectorstores/faiss.d.ts +1 -127
- package/dist/vectorstores/faiss.js +1 -365
- package/dist/vectorstores/googlevertexai.cjs +3 -538
- package/dist/vectorstores/googlevertexai.d.ts +1 -181
- package/dist/vectorstores/googlevertexai.js +1 -521
- package/dist/vectorstores/hnswlib.cjs +15 -273
- package/dist/vectorstores/hnswlib.d.ts +1 -122
- package/dist/vectorstores/hnswlib.js +1 -271
- package/dist/vectorstores/lancedb.cjs +15 -126
- package/dist/vectorstores/lancedb.d.ts +1 -61
- package/dist/vectorstores/lancedb.js +1 -124
- package/dist/vectorstores/memory.cjs +15 -143
- package/dist/vectorstores/memory.d.ts +1 -92
- package/dist/vectorstores/memory.js +1 -141
- package/dist/vectorstores/milvus.cjs +3 -592
- package/dist/vectorstores/milvus.d.ts +1 -139
- package/dist/vectorstores/milvus.js +1 -579
- package/dist/vectorstores/momento_vector_index.cjs +3 -305
- package/dist/vectorstores/momento_vector_index.d.ts +1 -143
- package/dist/vectorstores/momento_vector_index.js +1 -292
- package/dist/vectorstores/mongodb_atlas.cjs +15 -218
- package/dist/vectorstores/mongodb_atlas.d.ts +1 -118
- package/dist/vectorstores/mongodb_atlas.js +1 -216
- package/dist/vectorstores/myscale.cjs +3 -263
- package/dist/vectorstores/myscale.d.ts +1 -129
- package/dist/vectorstores/myscale.js +1 -250
- package/dist/vectorstores/neo4j_vector.cjs +3 -578
- package/dist/vectorstores/neo4j_vector.d.ts +1 -75
- package/dist/vectorstores/neo4j_vector.js +1 -562
- package/dist/vectorstores/opensearch.cjs +3 -274
- package/dist/vectorstores/opensearch.d.ts +1 -119
- package/dist/vectorstores/opensearch.js +1 -261
- package/dist/vectorstores/pgvector.cjs +14 -404
- package/dist/vectorstores/pgvector.d.ts +1 -160
- package/dist/vectorstores/pgvector.js +1 -400
- package/dist/vectorstores/pinecone.cjs +3 -280
- package/dist/vectorstores/pinecone.d.ts +1 -120
- package/dist/vectorstores/pinecone.js +1 -264
- package/dist/vectorstores/prisma.cjs +15 -305
- package/dist/vectorstores/prisma.d.ts +1 -180
- package/dist/vectorstores/prisma.js +1 -303
- package/dist/vectorstores/qdrant.cjs +15 -195
- package/dist/vectorstores/qdrant.d.ts +1 -95
- package/dist/vectorstores/qdrant.js +1 -193
- package/dist/vectorstores/redis.cjs +15 -333
- package/dist/vectorstores/redis.d.ts +1 -186
- package/dist/vectorstores/redis.js +1 -331
- package/dist/vectorstores/rockset.cjs +15 -351
- package/dist/vectorstores/rockset.d.ts +1 -202
- package/dist/vectorstores/rockset.js +1 -347
- package/dist/vectorstores/singlestore.cjs +15 -220
- package/dist/vectorstores/singlestore.d.ts +1 -88
- package/dist/vectorstores/singlestore.js +1 -218
- package/dist/vectorstores/supabase.cjs +15 -217
- package/dist/vectorstores/supabase.d.ts +1 -118
- package/dist/vectorstores/supabase.js +1 -215
- package/dist/vectorstores/tigris.cjs +3 -143
- package/dist/vectorstores/tigris.d.ts +1 -74
- package/dist/vectorstores/tigris.js +1 -130
- package/dist/vectorstores/typeorm.cjs +15 -259
- package/dist/vectorstores/typeorm.d.ts +1 -109
- package/dist/vectorstores/typeorm.js +1 -256
- package/dist/vectorstores/typesense.cjs +15 -223
- package/dist/vectorstores/typesense.d.ts +1 -131
- package/dist/vectorstores/typesense.js +1 -221
- package/dist/vectorstores/usearch.cjs +3 -203
- package/dist/vectorstores/usearch.d.ts +1 -85
- package/dist/vectorstores/usearch.js +1 -187
- package/dist/vectorstores/vectara.cjs +3 -409
- package/dist/vectorstores/vectara.d.ts +1 -148
- package/dist/vectorstores/vectara.js +1 -396
- package/dist/vectorstores/vercel_postgres.cjs +15 -320
- package/dist/vectorstores/vercel_postgres.d.ts +1 -145
- package/dist/vectorstores/vercel_postgres.js +1 -318
- package/dist/vectorstores/voy.cjs +15 -156
- package/dist/vectorstores/voy.d.ts +1 -73
- package/dist/vectorstores/voy.js +1 -154
- package/dist/vectorstores/weaviate.cjs +3 -347
- package/dist/vectorstores/weaviate.d.ts +1 -140
- package/dist/vectorstores/weaviate.js +1 -333
- package/dist/vectorstores/xata.cjs +15 -108
- package/dist/vectorstores/xata.d.ts +1 -70
- package/dist/vectorstores/xata.js +1 -106
- package/dist/vectorstores/zep.cjs +15 -313
- package/dist/vectorstores/zep.d.ts +1 -146
- package/dist/vectorstores/zep.js +1 -311
- package/package.json +4 -26
- package/dist/chat_models/googlevertexai/common.cjs +0 -274
- package/dist/chat_models/googlevertexai/common.d.ts +0 -123
- package/dist/chat_models/googlevertexai/common.js +0 -269
- package/dist/chat_models/iflytek_xinghuo/common.cjs +0 -340
- package/dist/chat_models/iflytek_xinghuo/common.d.ts +0 -165
- package/dist/chat_models/iflytek_xinghuo/common.js +0 -336
- package/dist/llms/googlevertexai/common.cjs +0 -168
- package/dist/llms/googlevertexai/common.d.ts +0 -82
- package/dist/llms/googlevertexai/common.js +0 -164
- package/dist/tools/gmail/base.cjs +0 -69
- package/dist/tools/gmail/base.d.ts +0 -19
- package/dist/tools/gmail/base.js +0 -65
- package/dist/tools/gmail/create_draft.cjs +0 -62
- package/dist/tools/gmail/create_draft.d.ts +0 -35
- package/dist/tools/gmail/create_draft.js +0 -58
- package/dist/tools/gmail/descriptions.cjs +0 -118
- package/dist/tools/gmail/descriptions.d.ts +0 -5
- package/dist/tools/gmail/descriptions.js +0 -115
- package/dist/tools/gmail/get_message.cjs +0 -83
- package/dist/tools/gmail/get_message.d.ts +0 -18
- package/dist/tools/gmail/get_message.js +0 -79
- package/dist/tools/gmail/get_thread.cjs +0 -89
- package/dist/tools/gmail/get_thread.d.ts +0 -18
- package/dist/tools/gmail/get_thread.js +0 -85
- package/dist/tools/gmail/search.cjs +0 -118
- package/dist/tools/gmail/search.d.ts +0 -29
- package/dist/tools/gmail/search.js +0 -114
- package/dist/tools/gmail/send_message.cjs +0 -74
- package/dist/tools/gmail/send_message.d.ts +0 -35
- package/dist/tools/gmail/send_message.js +0 -70
- package/dist/util/openai-format-fndef.cjs +0 -81
- package/dist/util/openai-format-fndef.d.ts +0 -44
- package/dist/util/openai-format-fndef.js +0 -77
- package/dist/util/openai.cjs +0 -21
- package/dist/util/openai.d.ts +0 -1
- package/dist/util/openai.js +0 -17
- package/dist/vectorstores/closevector/common.cjs +0 -128
- package/dist/vectorstores/closevector/common.d.ts +0 -82
- package/dist/vectorstores/closevector/common.js +0 -124
|
@@ -1,318 +1 @@
|
|
|
1
|
-
|
|
2
|
-
import { VectorStore } from "./base.js";
|
|
3
|
-
import { Document } from "../document.js";
|
|
4
|
-
import { getEnvironmentVariable } from "../util/env.js";
|
|
5
|
-
/**
|
|
6
|
-
* Class that provides an interface to a Vercel Postgres vector database. It
|
|
7
|
-
* extends the `VectorStore` base class and implements methods for adding
|
|
8
|
-
* documents and vectors and performing similarity searches.
|
|
9
|
-
*/
|
|
10
|
-
export class VercelPostgres extends VectorStore {
|
|
11
|
-
_vectorstoreType() {
|
|
12
|
-
return "vercel";
|
|
13
|
-
}
|
|
14
|
-
constructor(embeddings, config) {
|
|
15
|
-
super(embeddings, config);
|
|
16
|
-
Object.defineProperty(this, "tableName", {
|
|
17
|
-
enumerable: true,
|
|
18
|
-
configurable: true,
|
|
19
|
-
writable: true,
|
|
20
|
-
value: void 0
|
|
21
|
-
});
|
|
22
|
-
Object.defineProperty(this, "idColumnName", {
|
|
23
|
-
enumerable: true,
|
|
24
|
-
configurable: true,
|
|
25
|
-
writable: true,
|
|
26
|
-
value: void 0
|
|
27
|
-
});
|
|
28
|
-
Object.defineProperty(this, "vectorColumnName", {
|
|
29
|
-
enumerable: true,
|
|
30
|
-
configurable: true,
|
|
31
|
-
writable: true,
|
|
32
|
-
value: void 0
|
|
33
|
-
});
|
|
34
|
-
Object.defineProperty(this, "contentColumnName", {
|
|
35
|
-
enumerable: true,
|
|
36
|
-
configurable: true,
|
|
37
|
-
writable: true,
|
|
38
|
-
value: void 0
|
|
39
|
-
});
|
|
40
|
-
Object.defineProperty(this, "metadataColumnName", {
|
|
41
|
-
enumerable: true,
|
|
42
|
-
configurable: true,
|
|
43
|
-
writable: true,
|
|
44
|
-
value: void 0
|
|
45
|
-
});
|
|
46
|
-
Object.defineProperty(this, "filter", {
|
|
47
|
-
enumerable: true,
|
|
48
|
-
configurable: true,
|
|
49
|
-
writable: true,
|
|
50
|
-
value: void 0
|
|
51
|
-
});
|
|
52
|
-
Object.defineProperty(this, "_verbose", {
|
|
53
|
-
enumerable: true,
|
|
54
|
-
configurable: true,
|
|
55
|
-
writable: true,
|
|
56
|
-
value: void 0
|
|
57
|
-
});
|
|
58
|
-
Object.defineProperty(this, "pool", {
|
|
59
|
-
enumerable: true,
|
|
60
|
-
configurable: true,
|
|
61
|
-
writable: true,
|
|
62
|
-
value: void 0
|
|
63
|
-
});
|
|
64
|
-
Object.defineProperty(this, "client", {
|
|
65
|
-
enumerable: true,
|
|
66
|
-
configurable: true,
|
|
67
|
-
writable: true,
|
|
68
|
-
value: void 0
|
|
69
|
-
});
|
|
70
|
-
this.tableName = config.tableName ?? "langchain_vectors";
|
|
71
|
-
this.filter = config.filter;
|
|
72
|
-
this.vectorColumnName = config.columns?.vectorColumnName ?? "embedding";
|
|
73
|
-
this.contentColumnName = config.columns?.contentColumnName ?? "text";
|
|
74
|
-
this.idColumnName = config.columns?.idColumnName ?? "id";
|
|
75
|
-
this.metadataColumnName = config.columns?.metadataColumnName ?? "metadata";
|
|
76
|
-
this.pool = config.pool;
|
|
77
|
-
this.client = config.client;
|
|
78
|
-
this._verbose =
|
|
79
|
-
getEnvironmentVariable("LANGCHAIN_VERBOSE") === "true" ??
|
|
80
|
-
!!config.verbose;
|
|
81
|
-
}
|
|
82
|
-
/**
|
|
83
|
-
* Static method to create a new `VercelPostgres` instance from a
|
|
84
|
-
* connection. It creates a table if one does not exist, and calls
|
|
85
|
-
* `connect` to return a new instance of `VercelPostgres`.
|
|
86
|
-
*
|
|
87
|
-
* @param embeddings - Embeddings instance.
|
|
88
|
-
* @param fields - `VercelPostgres` configuration options.
|
|
89
|
-
* @returns A new instance of `VercelPostgres`.
|
|
90
|
-
*/
|
|
91
|
-
static async initialize(embeddings, config) {
|
|
92
|
-
// Default maxUses to 1 for edge environments:
|
|
93
|
-
// https://github.com/vercel/storage/tree/main/packages/postgres#a-note-on-edge-environments
|
|
94
|
-
const pool = config?.pool ??
|
|
95
|
-
createPool({ maxUses: 1, ...config?.postgresConnectionOptions });
|
|
96
|
-
const client = config?.client ?? (await pool.connect());
|
|
97
|
-
const postgresqlVectorStore = new VercelPostgres(embeddings, {
|
|
98
|
-
...config,
|
|
99
|
-
pool,
|
|
100
|
-
client,
|
|
101
|
-
});
|
|
102
|
-
await postgresqlVectorStore.ensureTableInDatabase();
|
|
103
|
-
return postgresqlVectorStore;
|
|
104
|
-
}
|
|
105
|
-
/**
|
|
106
|
-
* Method to add documents to the vector store. It converts the documents into
|
|
107
|
-
* vectors, and adds them to the store.
|
|
108
|
-
*
|
|
109
|
-
* @param documents - Array of `Document` instances.
|
|
110
|
-
* @returns Promise that resolves when the documents have been added.
|
|
111
|
-
*/
|
|
112
|
-
async addDocuments(documents, options) {
|
|
113
|
-
const texts = documents.map(({ pageContent }) => pageContent);
|
|
114
|
-
return this.addVectors(await this.embeddings.embedDocuments(texts), documents, options);
|
|
115
|
-
}
|
|
116
|
-
/**
|
|
117
|
-
* Generates the SQL placeholders for a specific row at the provided index.
|
|
118
|
-
*
|
|
119
|
-
* @param index - The index of the row for which placeholders need to be generated.
|
|
120
|
-
* @returns The SQL placeholders for the row values.
|
|
121
|
-
*/
|
|
122
|
-
generatePlaceholderForRowAt(
|
|
123
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
124
|
-
row, index) {
|
|
125
|
-
const base = index * row.length;
|
|
126
|
-
return `(${row.map((_, j) => `$${base + 1 + j}`)})`;
|
|
127
|
-
}
|
|
128
|
-
/**
|
|
129
|
-
* Constructs the SQL query for inserting rows into the specified table.
|
|
130
|
-
*
|
|
131
|
-
* @param rows - The rows of data to be inserted, consisting of values and records.
|
|
132
|
-
* @param chunkIndex - The starting index for generating query placeholders based on chunk positioning.
|
|
133
|
-
* @returns The complete SQL INSERT INTO query string.
|
|
134
|
-
*/
|
|
135
|
-
async runInsertQuery(
|
|
136
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
137
|
-
rows, useIdColumn) {
|
|
138
|
-
const values = rows.map((row, j) => this.generatePlaceholderForRowAt(row, j));
|
|
139
|
-
const flatValues = rows.flat();
|
|
140
|
-
return this.client.query(`
|
|
141
|
-
INSERT INTO ${this.tableName} (
|
|
142
|
-
${useIdColumn ? `${this.idColumnName},` : ""}
|
|
143
|
-
${this.contentColumnName},
|
|
144
|
-
${this.vectorColumnName},
|
|
145
|
-
${this.metadataColumnName}
|
|
146
|
-
) VALUES ${values.join(", ")}
|
|
147
|
-
ON CONFLICT (${this.idColumnName})
|
|
148
|
-
DO UPDATE
|
|
149
|
-
SET
|
|
150
|
-
${this.contentColumnName} = EXCLUDED.${this.contentColumnName},
|
|
151
|
-
${this.vectorColumnName} = EXCLUDED.${this.vectorColumnName},
|
|
152
|
-
${this.metadataColumnName} = EXCLUDED.${this.metadataColumnName}
|
|
153
|
-
RETURNING ${this.idColumnName}`, flatValues);
|
|
154
|
-
}
|
|
155
|
-
/**
|
|
156
|
-
* Method to add vectors to the vector store. It converts the vectors into
|
|
157
|
-
* rows and inserts them into the database.
|
|
158
|
-
*
|
|
159
|
-
* @param vectors - Array of vectors.
|
|
160
|
-
* @param documents - Array of `Document` instances.
|
|
161
|
-
* @returns Promise that resolves when the vectors have been added.
|
|
162
|
-
*/
|
|
163
|
-
async addVectors(vectors, documents, options) {
|
|
164
|
-
if (options?.ids !== undefined && options?.ids.length !== vectors.length) {
|
|
165
|
-
throw new Error(`If provided, the length of "ids" must be the same as the number of vectors.`);
|
|
166
|
-
}
|
|
167
|
-
const rows = vectors.map((embedding, idx) => {
|
|
168
|
-
const embeddingString = `[${embedding.join(",")}]`;
|
|
169
|
-
const row = [
|
|
170
|
-
documents[idx].pageContent,
|
|
171
|
-
embeddingString,
|
|
172
|
-
documents[idx].metadata,
|
|
173
|
-
];
|
|
174
|
-
if (options?.ids) {
|
|
175
|
-
return [options.ids[idx], ...row];
|
|
176
|
-
}
|
|
177
|
-
return row;
|
|
178
|
-
});
|
|
179
|
-
const chunkSize = 500;
|
|
180
|
-
const ids = [];
|
|
181
|
-
for (let i = 0; i < rows.length; i += chunkSize) {
|
|
182
|
-
const chunk = rows.slice(i, i + chunkSize);
|
|
183
|
-
try {
|
|
184
|
-
const result = await this.runInsertQuery(chunk, options?.ids !== undefined);
|
|
185
|
-
ids.push(...result.rows.map((row) => row[this.idColumnName]));
|
|
186
|
-
}
|
|
187
|
-
catch (e) {
|
|
188
|
-
console.error(e);
|
|
189
|
-
throw new Error(`Error inserting: ${e.message}`);
|
|
190
|
-
}
|
|
191
|
-
}
|
|
192
|
-
return ids;
|
|
193
|
-
}
|
|
194
|
-
/**
|
|
195
|
-
* Method to perform a similarity search in the vector store. It returns
|
|
196
|
-
* the `k` most similar documents to the query vector, along with their
|
|
197
|
-
* similarity scores.
|
|
198
|
-
*
|
|
199
|
-
* @param query - Query vector.
|
|
200
|
-
* @param k - Number of most similar documents to return.
|
|
201
|
-
* @param filter - Optional filter to apply to the search.
|
|
202
|
-
* @returns Promise that resolves with an array of tuples, each containing a `Document` and its similarity score.
|
|
203
|
-
*/
|
|
204
|
-
async similaritySearchVectorWithScore(query, k, filter) {
|
|
205
|
-
const embeddingString = `[${query.join(",")}]`;
|
|
206
|
-
const _filter = filter ?? {};
|
|
207
|
-
const whereClauses = [];
|
|
208
|
-
const values = [embeddingString, k];
|
|
209
|
-
let paramCount = values.length;
|
|
210
|
-
for (const [key, value] of Object.entries(_filter)) {
|
|
211
|
-
if (typeof value === "object" && value !== null) {
|
|
212
|
-
const currentParamCount = paramCount;
|
|
213
|
-
const placeholders = value.in
|
|
214
|
-
.map((_, index) => `$${currentParamCount + index + 1}`)
|
|
215
|
-
.join(",");
|
|
216
|
-
whereClauses.push(`${this.metadataColumnName}->>'${key}' IN (${placeholders})`);
|
|
217
|
-
values.push(...value.in);
|
|
218
|
-
paramCount += value.in.length;
|
|
219
|
-
}
|
|
220
|
-
else {
|
|
221
|
-
paramCount += 1;
|
|
222
|
-
whereClauses.push(`${this.metadataColumnName}->>'${key}' = $${paramCount}`);
|
|
223
|
-
values.push(value);
|
|
224
|
-
}
|
|
225
|
-
}
|
|
226
|
-
const whereClause = whereClauses.length
|
|
227
|
-
? `WHERE ${whereClauses.join(" AND ")}`
|
|
228
|
-
: "";
|
|
229
|
-
const queryString = `
|
|
230
|
-
SELECT *, ${this.vectorColumnName} <=> $1 as "_distance"
|
|
231
|
-
FROM ${this.tableName}
|
|
232
|
-
${whereClause}
|
|
233
|
-
ORDER BY "_distance" ASC
|
|
234
|
-
LIMIT $2;`;
|
|
235
|
-
const documents = (await this.client.query(queryString, values)).rows;
|
|
236
|
-
const results = [];
|
|
237
|
-
for (const doc of documents) {
|
|
238
|
-
if (doc._distance != null && doc[this.contentColumnName] != null) {
|
|
239
|
-
const document = new Document({
|
|
240
|
-
pageContent: doc[this.contentColumnName],
|
|
241
|
-
metadata: doc[this.metadataColumnName],
|
|
242
|
-
});
|
|
243
|
-
results.push([document, doc._distance]);
|
|
244
|
-
}
|
|
245
|
-
}
|
|
246
|
-
return results;
|
|
247
|
-
}
|
|
248
|
-
async delete(params) {
|
|
249
|
-
if (params.ids !== undefined) {
|
|
250
|
-
await this.client.query(`DELETE FROM ${this.tableName} WHERE ${this.idColumnName} IN (${params.ids.map((_, idx) => `$${idx + 1}`)})`, params.ids);
|
|
251
|
-
}
|
|
252
|
-
else if (params.deleteAll) {
|
|
253
|
-
await this.client.query(`TRUNCATE TABLE ${this.tableName}`);
|
|
254
|
-
}
|
|
255
|
-
}
|
|
256
|
-
/**
|
|
257
|
-
* Method to ensure the existence of the table in the database. It creates
|
|
258
|
-
* the table if it does not already exist.
|
|
259
|
-
*
|
|
260
|
-
* @returns Promise that resolves when the table has been ensured.
|
|
261
|
-
*/
|
|
262
|
-
async ensureTableInDatabase() {
|
|
263
|
-
await this.client.query(`CREATE EXTENSION IF NOT EXISTS vector;`);
|
|
264
|
-
await this.client.query(`CREATE EXTENSION IF NOT EXISTS "uuid-ossp";`);
|
|
265
|
-
await this.client.query(`CREATE TABLE IF NOT EXISTS "${this.tableName}" (
|
|
266
|
-
"${this.idColumnName}" uuid NOT NULL DEFAULT uuid_generate_v4() PRIMARY KEY,
|
|
267
|
-
"${this.contentColumnName}" text,
|
|
268
|
-
"${this.metadataColumnName}" jsonb,
|
|
269
|
-
"${this.vectorColumnName}" vector
|
|
270
|
-
);`);
|
|
271
|
-
}
|
|
272
|
-
/**
|
|
273
|
-
* Static method to create a new `VercelPostgres` instance from an
|
|
274
|
-
* array of texts and their metadata. It converts the texts into
|
|
275
|
-
* `Document` instances and adds them to the store.
|
|
276
|
-
*
|
|
277
|
-
* @param texts - Array of texts.
|
|
278
|
-
* @param metadatas - Array of metadata objects or a single metadata object.
|
|
279
|
-
* @param embeddings - Embeddings instance.
|
|
280
|
-
* @param fields - `VercelPostgres` configuration options.
|
|
281
|
-
* @returns Promise that resolves with a new instance of `VercelPostgres`.
|
|
282
|
-
*/
|
|
283
|
-
static async fromTexts(texts, metadatas, embeddings, dbConfig) {
|
|
284
|
-
const docs = [];
|
|
285
|
-
for (let i = 0; i < texts.length; i += 1) {
|
|
286
|
-
const metadata = Array.isArray(metadatas) ? metadatas[i] : metadatas;
|
|
287
|
-
const newDoc = new Document({
|
|
288
|
-
pageContent: texts[i],
|
|
289
|
-
metadata,
|
|
290
|
-
});
|
|
291
|
-
docs.push(newDoc);
|
|
292
|
-
}
|
|
293
|
-
return this.fromDocuments(docs, embeddings, dbConfig);
|
|
294
|
-
}
|
|
295
|
-
/**
|
|
296
|
-
* Static method to create a new `VercelPostgres` instance from an
|
|
297
|
-
* array of `Document` instances. It adds the documents to the store.
|
|
298
|
-
*
|
|
299
|
-
* @param docs - Array of `Document` instances.
|
|
300
|
-
* @param embeddings - Embeddings instance.
|
|
301
|
-
* @param fields - `VercelPostgres` configuration options.
|
|
302
|
-
* @returns Promise that resolves with a new instance of `VercelPostgres`.
|
|
303
|
-
*/
|
|
304
|
-
static async fromDocuments(docs, embeddings, dbConfig) {
|
|
305
|
-
const instance = await this.initialize(embeddings, dbConfig);
|
|
306
|
-
await instance.addDocuments(docs);
|
|
307
|
-
return instance;
|
|
308
|
-
}
|
|
309
|
-
/**
|
|
310
|
-
* Closes all the clients in the pool and terminates the pool.
|
|
311
|
-
*
|
|
312
|
-
* @returns Promise that resolves when all clients are closed and the pool is terminated.
|
|
313
|
-
*/
|
|
314
|
-
async end() {
|
|
315
|
-
await this.client?.release();
|
|
316
|
-
return this.pool.end();
|
|
317
|
-
}
|
|
318
|
-
}
|
|
1
|
+
export * from "@langchain/community/vectorstores/vercel_postgres";
|
|
@@ -1,158 +1,17 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
2
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports
|
|
4
|
-
const base_js_1 = require("./base.cjs");
|
|
5
|
-
const document_js_1 = require("../document.cjs");
|
|
6
|
-
/**
|
|
7
|
-
* Class that extends `VectorStore`. It allows to perform similarity search using
|
|
8
|
-
* Voi similarity search engine. The class requires passing Voy Client as an input parameter.
|
|
9
|
-
*/
|
|
10
|
-
class VoyVectorStore extends base_js_1.VectorStore {
|
|
11
|
-
_vectorstoreType() {
|
|
12
|
-
return "voi";
|
|
13
|
-
}
|
|
14
|
-
constructor(client, embeddings) {
|
|
15
|
-
super(embeddings, {});
|
|
16
|
-
Object.defineProperty(this, "client", {
|
|
17
|
-
enumerable: true,
|
|
18
|
-
configurable: true,
|
|
19
|
-
writable: true,
|
|
20
|
-
value: void 0
|
|
21
|
-
});
|
|
22
|
-
Object.defineProperty(this, "numDimensions", {
|
|
23
|
-
enumerable: true,
|
|
24
|
-
configurable: true,
|
|
25
|
-
writable: true,
|
|
26
|
-
value: null
|
|
27
|
-
});
|
|
28
|
-
Object.defineProperty(this, "docstore", {
|
|
29
|
-
enumerable: true,
|
|
30
|
-
configurable: true,
|
|
31
|
-
writable: true,
|
|
32
|
-
value: []
|
|
33
|
-
});
|
|
34
|
-
this.client = client;
|
|
35
|
-
this.embeddings = embeddings;
|
|
36
|
-
}
|
|
37
|
-
/**
|
|
38
|
-
* Adds documents to the Voy database. The documents are embedded using embeddings provided while instantiating the class.
|
|
39
|
-
* @param documents An array of `Document` instances associated with the vectors.
|
|
40
|
-
*/
|
|
41
|
-
async addDocuments(documents) {
|
|
42
|
-
const texts = documents.map(({ pageContent }) => pageContent);
|
|
43
|
-
if (documents.length === 0) {
|
|
44
|
-
return;
|
|
45
|
-
}
|
|
46
|
-
const firstVector = (await this.embeddings.embedDocuments(texts.slice(0, 1)))[0];
|
|
47
|
-
if (this.numDimensions === null) {
|
|
48
|
-
this.numDimensions = firstVector.length;
|
|
49
|
-
}
|
|
50
|
-
else if (this.numDimensions !== firstVector.length) {
|
|
51
|
-
throw new Error(`Vectors must have the same length as the number of dimensions (${this.numDimensions})`);
|
|
52
|
-
}
|
|
53
|
-
const restResults = await this.embeddings.embedDocuments(texts.slice(1));
|
|
54
|
-
await this.addVectors([firstVector, ...restResults], documents);
|
|
55
|
-
}
|
|
56
|
-
/**
|
|
57
|
-
* Adds vectors to the Voy database. The vectors are associated with
|
|
58
|
-
* the provided documents.
|
|
59
|
-
* @param vectors An array of vectors to be added to the database.
|
|
60
|
-
* @param documents An array of `Document` instances associated with the vectors.
|
|
61
|
-
*/
|
|
62
|
-
async addVectors(vectors, documents) {
|
|
63
|
-
if (vectors.length === 0) {
|
|
64
|
-
return;
|
|
65
|
-
}
|
|
66
|
-
if (this.numDimensions === null) {
|
|
67
|
-
this.numDimensions = vectors[0].length;
|
|
68
|
-
}
|
|
69
|
-
if (vectors.length !== documents.length) {
|
|
70
|
-
throw new Error(`Vectors and metadata must have the same length`);
|
|
71
|
-
}
|
|
72
|
-
if (!vectors.every((v) => v.length === this.numDimensions)) {
|
|
73
|
-
throw new Error(`Vectors must have the same length as the number of dimensions (${this.numDimensions})`);
|
|
74
|
-
}
|
|
75
|
-
vectors.forEach((item, idx) => {
|
|
76
|
-
const doc = documents[idx];
|
|
77
|
-
this.docstore.push({ embeddings: item, document: doc });
|
|
78
|
-
});
|
|
79
|
-
const embeddings = this.docstore.map((item, idx) => ({
|
|
80
|
-
id: String(idx),
|
|
81
|
-
embeddings: item.embeddings,
|
|
82
|
-
title: "",
|
|
83
|
-
url: "",
|
|
84
|
-
}));
|
|
85
|
-
this.client.index({ embeddings });
|
|
86
|
-
}
|
|
87
|
-
/**
|
|
88
|
-
* Searches for vectors in the Voy database that are similar to the
|
|
89
|
-
* provided query vector.
|
|
90
|
-
* @param query The query vector.
|
|
91
|
-
* @param k The number of similar vectors to return.
|
|
92
|
-
* @returns A promise that resolves with an array of tuples, each containing a `Document` instance and a similarity score.
|
|
93
|
-
*/
|
|
94
|
-
async similaritySearchVectorWithScore(query, k) {
|
|
95
|
-
if (this.numDimensions === null) {
|
|
96
|
-
throw new Error("There aren't any elements in the index yet.");
|
|
97
|
-
}
|
|
98
|
-
if (query.length !== this.numDimensions) {
|
|
99
|
-
throw new Error(`Query vector must have the same length as the number of dimensions (${this.numDimensions})`);
|
|
100
|
-
}
|
|
101
|
-
const itemsToQuery = Math.min(this.docstore.length, k);
|
|
102
|
-
if (itemsToQuery > this.docstore.length) {
|
|
103
|
-
console.warn(`k (${k}) is greater than the number of elements in the index (${this.docstore.length}), setting k to ${itemsToQuery}`);
|
|
104
|
-
}
|
|
105
|
-
const results = this.client.search(new Float32Array(query), itemsToQuery);
|
|
106
|
-
return results.neighbors.map(({ id }, idx) => [this.docstore[parseInt(id, 10)].document, idx]);
|
|
107
|
-
}
|
|
108
|
-
/**
|
|
109
|
-
* Method to delete data from the Voy index. It can delete data based
|
|
110
|
-
* on specific IDs or a filter.
|
|
111
|
-
* @param params Object that includes either an array of IDs or a filter for the data to be deleted.
|
|
112
|
-
* @returns Promise that resolves when the deletion is complete.
|
|
113
|
-
*/
|
|
114
|
-
async delete(params) {
|
|
115
|
-
if (params.deleteAll === true) {
|
|
116
|
-
await this.client.clear();
|
|
117
|
-
}
|
|
118
|
-
else {
|
|
119
|
-
throw new Error(`You must provide a "deleteAll" parameter.`);
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
/**
|
|
123
|
-
* Creates a new `VoyVectorStore` instance from an array of text strings. The text
|
|
124
|
-
* strings are converted to `Document` instances and added to the Voy
|
|
125
|
-
* database.
|
|
126
|
-
* @param texts An array of text strings.
|
|
127
|
-
* @param metadatas An array of metadata objects or a single metadata object. If an array is provided, it must have the same length as the `texts` array.
|
|
128
|
-
* @param embeddings An `Embeddings` instance used to generate embeddings for the documents.
|
|
129
|
-
* @param client An instance of Voy client to use in the underlying operations.
|
|
130
|
-
* @returns A promise that resolves with a new `VoyVectorStore` instance.
|
|
131
|
-
*/
|
|
132
|
-
static async fromTexts(texts, metadatas, embeddings, client) {
|
|
133
|
-
const docs = [];
|
|
134
|
-
for (let i = 0; i < texts.length; i += 1) {
|
|
135
|
-
const metadata = Array.isArray(metadatas) ? metadatas[i] : metadatas;
|
|
136
|
-
const newDoc = new document_js_1.Document({
|
|
137
|
-
pageContent: texts[i],
|
|
138
|
-
metadata,
|
|
139
|
-
});
|
|
140
|
-
docs.push(newDoc);
|
|
141
|
-
}
|
|
142
|
-
return VoyVectorStore.fromDocuments(docs, embeddings, client);
|
|
143
|
-
}
|
|
144
|
-
/**
|
|
145
|
-
* Creates a new `VoyVectorStore` instance from an array of `Document` instances.
|
|
146
|
-
* The documents are added to the Voy database.
|
|
147
|
-
* @param docs An array of `Document` instances.
|
|
148
|
-
* @param embeddings An `Embeddings` instance used to generate embeddings for the documents.
|
|
149
|
-
* @param client An instance of Voy client to use in the underlying operations.
|
|
150
|
-
* @returns A promise that resolves with a new `VoyVectorStore` instance.
|
|
151
|
-
*/
|
|
152
|
-
static async fromDocuments(docs, embeddings, client) {
|
|
153
|
-
const instance = new VoyVectorStore(client, embeddings);
|
|
154
|
-
await instance.addDocuments(docs);
|
|
155
|
-
return instance;
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
exports.VoyVectorStore = VoyVectorStore;
|
|
17
|
+
__exportStar(require("@langchain/community/vectorstores/voy"), exports);
|
|
@@ -1,73 +1 @@
|
|
|
1
|
-
|
|
2
|
-
import { Embeddings } from "../embeddings/base.js";
|
|
3
|
-
import { VectorStore } from "./base.js";
|
|
4
|
-
import { Document } from "../document.js";
|
|
5
|
-
export type VoyClient = Omit<VoyOriginClient, "remove" | "size" | "serialize" | "free">;
|
|
6
|
-
/**
|
|
7
|
-
* Internal interface for storing documents mappings.
|
|
8
|
-
*/
|
|
9
|
-
interface InternalDoc {
|
|
10
|
-
embeddings: number[];
|
|
11
|
-
document: Document;
|
|
12
|
-
}
|
|
13
|
-
/**
|
|
14
|
-
* Class that extends `VectorStore`. It allows to perform similarity search using
|
|
15
|
-
* Voi similarity search engine. The class requires passing Voy Client as an input parameter.
|
|
16
|
-
*/
|
|
17
|
-
export declare class VoyVectorStore extends VectorStore {
|
|
18
|
-
client: VoyClient;
|
|
19
|
-
numDimensions: number | null;
|
|
20
|
-
docstore: InternalDoc[];
|
|
21
|
-
_vectorstoreType(): string;
|
|
22
|
-
constructor(client: VoyClient, embeddings: Embeddings);
|
|
23
|
-
/**
|
|
24
|
-
* Adds documents to the Voy database. The documents are embedded using embeddings provided while instantiating the class.
|
|
25
|
-
* @param documents An array of `Document` instances associated with the vectors.
|
|
26
|
-
*/
|
|
27
|
-
addDocuments(documents: Document[]): Promise<void>;
|
|
28
|
-
/**
|
|
29
|
-
* Adds vectors to the Voy database. The vectors are associated with
|
|
30
|
-
* the provided documents.
|
|
31
|
-
* @param vectors An array of vectors to be added to the database.
|
|
32
|
-
* @param documents An array of `Document` instances associated with the vectors.
|
|
33
|
-
*/
|
|
34
|
-
addVectors(vectors: number[][], documents: Document[]): Promise<void>;
|
|
35
|
-
/**
|
|
36
|
-
* Searches for vectors in the Voy database that are similar to the
|
|
37
|
-
* provided query vector.
|
|
38
|
-
* @param query The query vector.
|
|
39
|
-
* @param k The number of similar vectors to return.
|
|
40
|
-
* @returns A promise that resolves with an array of tuples, each containing a `Document` instance and a similarity score.
|
|
41
|
-
*/
|
|
42
|
-
similaritySearchVectorWithScore(query: number[], k: number): Promise<[Document<Record<string, any>>, number][]>;
|
|
43
|
-
/**
|
|
44
|
-
* Method to delete data from the Voy index. It can delete data based
|
|
45
|
-
* on specific IDs or a filter.
|
|
46
|
-
* @param params Object that includes either an array of IDs or a filter for the data to be deleted.
|
|
47
|
-
* @returns Promise that resolves when the deletion is complete.
|
|
48
|
-
*/
|
|
49
|
-
delete(params: {
|
|
50
|
-
deleteAll?: boolean;
|
|
51
|
-
}): Promise<void>;
|
|
52
|
-
/**
|
|
53
|
-
* Creates a new `VoyVectorStore` instance from an array of text strings. The text
|
|
54
|
-
* strings are converted to `Document` instances and added to the Voy
|
|
55
|
-
* database.
|
|
56
|
-
* @param texts An array of text strings.
|
|
57
|
-
* @param metadatas An array of metadata objects or a single metadata object. If an array is provided, it must have the same length as the `texts` array.
|
|
58
|
-
* @param embeddings An `Embeddings` instance used to generate embeddings for the documents.
|
|
59
|
-
* @param client An instance of Voy client to use in the underlying operations.
|
|
60
|
-
* @returns A promise that resolves with a new `VoyVectorStore` instance.
|
|
61
|
-
*/
|
|
62
|
-
static fromTexts(texts: string[], metadatas: object[] | object, embeddings: Embeddings, client: VoyClient): Promise<VoyVectorStore>;
|
|
63
|
-
/**
|
|
64
|
-
* Creates a new `VoyVectorStore` instance from an array of `Document` instances.
|
|
65
|
-
* The documents are added to the Voy database.
|
|
66
|
-
* @param docs An array of `Document` instances.
|
|
67
|
-
* @param embeddings An `Embeddings` instance used to generate embeddings for the documents.
|
|
68
|
-
* @param client An instance of Voy client to use in the underlying operations.
|
|
69
|
-
* @returns A promise that resolves with a new `VoyVectorStore` instance.
|
|
70
|
-
*/
|
|
71
|
-
static fromDocuments(docs: Document[], embeddings: Embeddings, client: VoyClient): Promise<VoyVectorStore>;
|
|
72
|
-
}
|
|
73
|
-
export {};
|
|
1
|
+
export * from "@langchain/community/vectorstores/voy";
|