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
|
@@ -10,259 +10,8 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi
|
|
|
10
10
|
if (k2 === undefined) k2 = k;
|
|
11
11
|
o[k2] = m[k];
|
|
12
12
|
}));
|
|
13
|
-
var
|
|
14
|
-
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
24
15
|
};
|
|
25
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports
|
|
27
|
-
const neo4j_driver_1 = __importStar(require("neo4j-driver"));
|
|
28
|
-
/**
|
|
29
|
-
* @security *Security note*: Make sure that the database connection uses credentials
|
|
30
|
-
* that are narrowly-scoped to only include necessary permissions.
|
|
31
|
-
* Failure to do so may result in data corruption or loss, since the calling
|
|
32
|
-
* code may attempt commands that would result in deletion, mutation
|
|
33
|
-
* of data if appropriately prompted or reading sensitive data if such
|
|
34
|
-
* data is present in the database.
|
|
35
|
-
* The best way to guard against such negative outcomes is to (as appropriate)
|
|
36
|
-
* limit the permissions granted to the credentials used with this tool.
|
|
37
|
-
* For example, creating read only users for the database is a good way to
|
|
38
|
-
* ensure that the calling code cannot mutate or delete data.
|
|
39
|
-
*
|
|
40
|
-
* @link See https://js.langchain.com/docs/security for more information.
|
|
41
|
-
*/
|
|
42
|
-
class Neo4jGraph {
|
|
43
|
-
constructor({ url, username, password, database = "neo4j", }) {
|
|
44
|
-
Object.defineProperty(this, "driver", {
|
|
45
|
-
enumerable: true,
|
|
46
|
-
configurable: true,
|
|
47
|
-
writable: true,
|
|
48
|
-
value: void 0
|
|
49
|
-
});
|
|
50
|
-
Object.defineProperty(this, "database", {
|
|
51
|
-
enumerable: true,
|
|
52
|
-
configurable: true,
|
|
53
|
-
writable: true,
|
|
54
|
-
value: void 0
|
|
55
|
-
});
|
|
56
|
-
Object.defineProperty(this, "schema", {
|
|
57
|
-
enumerable: true,
|
|
58
|
-
configurable: true,
|
|
59
|
-
writable: true,
|
|
60
|
-
value: ""
|
|
61
|
-
});
|
|
62
|
-
Object.defineProperty(this, "structuredSchema", {
|
|
63
|
-
enumerable: true,
|
|
64
|
-
configurable: true,
|
|
65
|
-
writable: true,
|
|
66
|
-
value: {
|
|
67
|
-
nodeProps: {},
|
|
68
|
-
relProps: {},
|
|
69
|
-
relationships: [],
|
|
70
|
-
}
|
|
71
|
-
});
|
|
72
|
-
try {
|
|
73
|
-
this.driver = neo4j_driver_1.default.driver(url, neo4j_driver_1.default.auth.basic(username, password));
|
|
74
|
-
this.database = database;
|
|
75
|
-
}
|
|
76
|
-
catch (error) {
|
|
77
|
-
throw new Error("Could not create a Neo4j driver instance. Please check the connection details.");
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
static async initialize(config) {
|
|
81
|
-
const graph = new Neo4jGraph(config);
|
|
82
|
-
try {
|
|
83
|
-
await graph.verifyConnectivity();
|
|
84
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
85
|
-
}
|
|
86
|
-
catch (error) {
|
|
87
|
-
console.log("Failed to verify connection.");
|
|
88
|
-
}
|
|
89
|
-
try {
|
|
90
|
-
await graph.refreshSchema();
|
|
91
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
92
|
-
}
|
|
93
|
-
catch (error) {
|
|
94
|
-
const message = [
|
|
95
|
-
"Could not use APOC procedures.",
|
|
96
|
-
"Please ensure the APOC plugin is installed in Neo4j and that",
|
|
97
|
-
"'apoc.meta.data()' is allowed in Neo4j configuration",
|
|
98
|
-
].join("\n");
|
|
99
|
-
throw new Error(message);
|
|
100
|
-
}
|
|
101
|
-
finally {
|
|
102
|
-
console.log("Schema refreshed successfully.");
|
|
103
|
-
}
|
|
104
|
-
return graph;
|
|
105
|
-
}
|
|
106
|
-
getSchema() {
|
|
107
|
-
return this.schema;
|
|
108
|
-
}
|
|
109
|
-
getStructuredSchema() {
|
|
110
|
-
return this.structuredSchema;
|
|
111
|
-
}
|
|
112
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
113
|
-
async query(query, params = {}) {
|
|
114
|
-
try {
|
|
115
|
-
const result = await this.driver.executeQuery(query, params, {
|
|
116
|
-
database: this.database,
|
|
117
|
-
});
|
|
118
|
-
return toObjects(result.records);
|
|
119
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
120
|
-
}
|
|
121
|
-
catch (error) {
|
|
122
|
-
if (
|
|
123
|
-
// eslint-disable-next-line
|
|
124
|
-
error instanceof neo4j_driver_1.Neo4jError &&
|
|
125
|
-
error.code === "Neo.ClientError.Procedure.ProcedureNotFound") {
|
|
126
|
-
throw new Error("Procedure not found in Neo4j.");
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
return undefined;
|
|
130
|
-
}
|
|
131
|
-
async verifyConnectivity() {
|
|
132
|
-
await this.driver.verifyAuthentication();
|
|
133
|
-
}
|
|
134
|
-
async refreshSchema() {
|
|
135
|
-
const nodePropertiesQuery = `
|
|
136
|
-
CALL apoc.meta.data()
|
|
137
|
-
YIELD label, other, elementType, type, property
|
|
138
|
-
WHERE NOT type = "RELATIONSHIP" AND elementType = "node"
|
|
139
|
-
WITH label AS nodeLabels, collect({property:property, type:type}) AS properties
|
|
140
|
-
RETURN {labels: nodeLabels, properties: properties} AS output
|
|
141
|
-
`;
|
|
142
|
-
const relPropertiesQuery = `
|
|
143
|
-
CALL apoc.meta.data()
|
|
144
|
-
YIELD label, other, elementType, type, property
|
|
145
|
-
WHERE NOT type = "RELATIONSHIP" AND elementType = "relationship"
|
|
146
|
-
WITH label AS nodeLabels, collect({property:property, type:type}) AS properties
|
|
147
|
-
RETURN {type: nodeLabels, properties: properties} AS output
|
|
148
|
-
`;
|
|
149
|
-
const relQuery = `
|
|
150
|
-
CALL apoc.meta.data()
|
|
151
|
-
YIELD label, other, elementType, type, property
|
|
152
|
-
WHERE type = "RELATIONSHIP" AND elementType = "node"
|
|
153
|
-
UNWIND other AS other_node
|
|
154
|
-
RETURN {start: label, type: property, end: toString(other_node)} AS output
|
|
155
|
-
`;
|
|
156
|
-
// Assuming query method is defined and returns a Promise
|
|
157
|
-
const nodeProperties = (await this.query(nodePropertiesQuery))?.map((el) => el.output);
|
|
158
|
-
const relationshipsProperties = (await this.query(relPropertiesQuery))?.map((el) => el.output);
|
|
159
|
-
const relationships = (await this.query(relQuery))?.map((el) => el.output);
|
|
160
|
-
// Structured schema similar to Python's dictionary comprehension
|
|
161
|
-
this.structuredSchema = {
|
|
162
|
-
nodeProps: Object.fromEntries(nodeProperties?.map((el) => [el.labels, el.properties]) || []),
|
|
163
|
-
relProps: Object.fromEntries(relationshipsProperties?.map((el) => [el.type, el.properties]) || []),
|
|
164
|
-
relationships: relationships || [],
|
|
165
|
-
};
|
|
166
|
-
// Format node properties
|
|
167
|
-
const formattedNodeProps = nodeProperties?.map((el) => {
|
|
168
|
-
const propsStr = el.properties
|
|
169
|
-
.map((prop) => `${prop.property}: ${prop.type}`)
|
|
170
|
-
.join(", ");
|
|
171
|
-
return `${el.labels} {${propsStr}}`;
|
|
172
|
-
});
|
|
173
|
-
// Format relationship properties
|
|
174
|
-
const formattedRelProps = relationshipsProperties?.map((el) => {
|
|
175
|
-
const propsStr = el.properties
|
|
176
|
-
.map((prop) => `${prop.property}: ${prop.type}`)
|
|
177
|
-
.join(", ");
|
|
178
|
-
return `${el.type} {${propsStr}}`;
|
|
179
|
-
});
|
|
180
|
-
// Format relationships
|
|
181
|
-
const formattedRels = relationships?.map((el) => `(:${el.start})-[:${el.type}]->(:${el.end})`);
|
|
182
|
-
// Combine all formatted elements into a single string
|
|
183
|
-
this.schema = [
|
|
184
|
-
"Node properties are the following:",
|
|
185
|
-
formattedNodeProps?.join(", "),
|
|
186
|
-
"Relationship properties are the following:",
|
|
187
|
-
formattedRelProps?.join(", "),
|
|
188
|
-
"The relationships are the following:",
|
|
189
|
-
formattedRels?.join(", "),
|
|
190
|
-
].join("\n");
|
|
191
|
-
}
|
|
192
|
-
async close() {
|
|
193
|
-
await this.driver.close();
|
|
194
|
-
}
|
|
195
|
-
}
|
|
196
|
-
exports.Neo4jGraph = Neo4jGraph;
|
|
197
|
-
function toObjects(records) {
|
|
198
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
199
|
-
const recordValues = records.map((record) => {
|
|
200
|
-
const rObj = record.toObject();
|
|
201
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
202
|
-
const out = {};
|
|
203
|
-
Object.keys(rObj).forEach((key) => {
|
|
204
|
-
out[key] = itemIntToString(rObj[key]);
|
|
205
|
-
});
|
|
206
|
-
return out;
|
|
207
|
-
});
|
|
208
|
-
return recordValues;
|
|
209
|
-
}
|
|
210
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
211
|
-
function itemIntToString(item) {
|
|
212
|
-
if (neo4j_driver_1.default.isInt(item))
|
|
213
|
-
return item.toString();
|
|
214
|
-
if (Array.isArray(item))
|
|
215
|
-
return item.map((ii) => itemIntToString(ii));
|
|
216
|
-
if (["number", "string", "boolean"].indexOf(typeof item) !== -1)
|
|
217
|
-
return item;
|
|
218
|
-
if (item === null)
|
|
219
|
-
return item;
|
|
220
|
-
if (typeof item === "object")
|
|
221
|
-
return objIntToString(item);
|
|
222
|
-
}
|
|
223
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
224
|
-
function objIntToString(obj) {
|
|
225
|
-
const entry = extractFromNeoObjects(obj);
|
|
226
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
227
|
-
let newObj = null;
|
|
228
|
-
if (Array.isArray(entry)) {
|
|
229
|
-
newObj = entry.map((item) => itemIntToString(item));
|
|
230
|
-
}
|
|
231
|
-
else if (entry !== null && typeof entry === "object") {
|
|
232
|
-
newObj = {};
|
|
233
|
-
Object.keys(entry).forEach((key) => {
|
|
234
|
-
newObj[key] = itemIntToString(entry[key]);
|
|
235
|
-
});
|
|
236
|
-
}
|
|
237
|
-
return newObj;
|
|
238
|
-
}
|
|
239
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
240
|
-
function extractFromNeoObjects(obj) {
|
|
241
|
-
if (
|
|
242
|
-
// eslint-disable-next-line
|
|
243
|
-
obj instanceof neo4j_driver_1.default.types.Node ||
|
|
244
|
-
// eslint-disable-next-line
|
|
245
|
-
obj instanceof neo4j_driver_1.default.types.Relationship) {
|
|
246
|
-
return obj.properties;
|
|
247
|
-
// eslint-disable-next-line
|
|
248
|
-
}
|
|
249
|
-
else if (obj instanceof neo4j_driver_1.default.types.Path) {
|
|
250
|
-
// eslint-disable-next-line
|
|
251
|
-
return [].concat.apply([], extractPathForRows(obj));
|
|
252
|
-
}
|
|
253
|
-
return obj;
|
|
254
|
-
}
|
|
255
|
-
const extractPathForRows = (path) => {
|
|
256
|
-
let { segments } = path;
|
|
257
|
-
// Zero length path. No relationship, end === start
|
|
258
|
-
if (!Array.isArray(path.segments) || path.segments.length < 1) {
|
|
259
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
260
|
-
segments = [{ ...path, end: null }];
|
|
261
|
-
}
|
|
262
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
263
|
-
return segments.map((segment) => [
|
|
264
|
-
objIntToString(segment.start),
|
|
265
|
-
objIntToString(segment.relationship),
|
|
266
|
-
objIntToString(segment.end),
|
|
267
|
-
].filter((part) => part !== null));
|
|
268
|
-
};
|
|
17
|
+
__exportStar(require("@langchain/community/graphs/neo4j_graph"), exports);
|
|
@@ -1,63 +1 @@
|
|
|
1
|
-
|
|
2
|
-
url: string;
|
|
3
|
-
username: string;
|
|
4
|
-
password: string;
|
|
5
|
-
database?: string;
|
|
6
|
-
}
|
|
7
|
-
interface StructuredSchema {
|
|
8
|
-
nodeProps: {
|
|
9
|
-
[key: NodeType["labels"]]: NodeType["properties"];
|
|
10
|
-
};
|
|
11
|
-
relProps: {
|
|
12
|
-
[key: RelType["type"]]: RelType["properties"];
|
|
13
|
-
};
|
|
14
|
-
relationships: PathType[];
|
|
15
|
-
}
|
|
16
|
-
type NodeType = {
|
|
17
|
-
labels: string;
|
|
18
|
-
properties: {
|
|
19
|
-
property: string;
|
|
20
|
-
type: string;
|
|
21
|
-
}[];
|
|
22
|
-
};
|
|
23
|
-
type RelType = {
|
|
24
|
-
type: string;
|
|
25
|
-
properties: {
|
|
26
|
-
property: string;
|
|
27
|
-
type: string;
|
|
28
|
-
}[];
|
|
29
|
-
};
|
|
30
|
-
type PathType = {
|
|
31
|
-
start: string;
|
|
32
|
-
type: string;
|
|
33
|
-
end: string;
|
|
34
|
-
};
|
|
35
|
-
/**
|
|
36
|
-
* @security *Security note*: Make sure that the database connection uses credentials
|
|
37
|
-
* that are narrowly-scoped to only include necessary permissions.
|
|
38
|
-
* Failure to do so may result in data corruption or loss, since the calling
|
|
39
|
-
* code may attempt commands that would result in deletion, mutation
|
|
40
|
-
* of data if appropriately prompted or reading sensitive data if such
|
|
41
|
-
* data is present in the database.
|
|
42
|
-
* The best way to guard against such negative outcomes is to (as appropriate)
|
|
43
|
-
* limit the permissions granted to the credentials used with this tool.
|
|
44
|
-
* For example, creating read only users for the database is a good way to
|
|
45
|
-
* ensure that the calling code cannot mutate or delete data.
|
|
46
|
-
*
|
|
47
|
-
* @link See https://js.langchain.com/docs/security for more information.
|
|
48
|
-
*/
|
|
49
|
-
export declare class Neo4jGraph {
|
|
50
|
-
private driver;
|
|
51
|
-
private database;
|
|
52
|
-
private schema;
|
|
53
|
-
private structuredSchema;
|
|
54
|
-
constructor({ url, username, password, database, }: Neo4jGraphConfig);
|
|
55
|
-
static initialize(config: Neo4jGraphConfig): Promise<Neo4jGraph>;
|
|
56
|
-
getSchema(): string;
|
|
57
|
-
getStructuredSchema(): StructuredSchema;
|
|
58
|
-
query(query: string, params?: any): Promise<any[] | undefined>;
|
|
59
|
-
verifyConnectivity(): Promise<void>;
|
|
60
|
-
refreshSchema(): Promise<void>;
|
|
61
|
-
close(): Promise<void>;
|
|
62
|
-
}
|
|
63
|
-
export {};
|
|
1
|
+
export * from "@langchain/community/graphs/neo4j_graph";
|
|
@@ -1,241 +1 @@
|
|
|
1
|
-
|
|
2
|
-
/**
|
|
3
|
-
* @security *Security note*: Make sure that the database connection uses credentials
|
|
4
|
-
* that are narrowly-scoped to only include necessary permissions.
|
|
5
|
-
* Failure to do so may result in data corruption or loss, since the calling
|
|
6
|
-
* code may attempt commands that would result in deletion, mutation
|
|
7
|
-
* of data if appropriately prompted or reading sensitive data if such
|
|
8
|
-
* data is present in the database.
|
|
9
|
-
* The best way to guard against such negative outcomes is to (as appropriate)
|
|
10
|
-
* limit the permissions granted to the credentials used with this tool.
|
|
11
|
-
* For example, creating read only users for the database is a good way to
|
|
12
|
-
* ensure that the calling code cannot mutate or delete data.
|
|
13
|
-
*
|
|
14
|
-
* @link See https://js.langchain.com/docs/security for more information.
|
|
15
|
-
*/
|
|
16
|
-
export class Neo4jGraph {
|
|
17
|
-
constructor({ url, username, password, database = "neo4j", }) {
|
|
18
|
-
Object.defineProperty(this, "driver", {
|
|
19
|
-
enumerable: true,
|
|
20
|
-
configurable: true,
|
|
21
|
-
writable: true,
|
|
22
|
-
value: void 0
|
|
23
|
-
});
|
|
24
|
-
Object.defineProperty(this, "database", {
|
|
25
|
-
enumerable: true,
|
|
26
|
-
configurable: true,
|
|
27
|
-
writable: true,
|
|
28
|
-
value: void 0
|
|
29
|
-
});
|
|
30
|
-
Object.defineProperty(this, "schema", {
|
|
31
|
-
enumerable: true,
|
|
32
|
-
configurable: true,
|
|
33
|
-
writable: true,
|
|
34
|
-
value: ""
|
|
35
|
-
});
|
|
36
|
-
Object.defineProperty(this, "structuredSchema", {
|
|
37
|
-
enumerable: true,
|
|
38
|
-
configurable: true,
|
|
39
|
-
writable: true,
|
|
40
|
-
value: {
|
|
41
|
-
nodeProps: {},
|
|
42
|
-
relProps: {},
|
|
43
|
-
relationships: [],
|
|
44
|
-
}
|
|
45
|
-
});
|
|
46
|
-
try {
|
|
47
|
-
this.driver = neo4j.driver(url, neo4j.auth.basic(username, password));
|
|
48
|
-
this.database = database;
|
|
49
|
-
}
|
|
50
|
-
catch (error) {
|
|
51
|
-
throw new Error("Could not create a Neo4j driver instance. Please check the connection details.");
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
static async initialize(config) {
|
|
55
|
-
const graph = new Neo4jGraph(config);
|
|
56
|
-
try {
|
|
57
|
-
await graph.verifyConnectivity();
|
|
58
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
59
|
-
}
|
|
60
|
-
catch (error) {
|
|
61
|
-
console.log("Failed to verify connection.");
|
|
62
|
-
}
|
|
63
|
-
try {
|
|
64
|
-
await graph.refreshSchema();
|
|
65
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
66
|
-
}
|
|
67
|
-
catch (error) {
|
|
68
|
-
const message = [
|
|
69
|
-
"Could not use APOC procedures.",
|
|
70
|
-
"Please ensure the APOC plugin is installed in Neo4j and that",
|
|
71
|
-
"'apoc.meta.data()' is allowed in Neo4j configuration",
|
|
72
|
-
].join("\n");
|
|
73
|
-
throw new Error(message);
|
|
74
|
-
}
|
|
75
|
-
finally {
|
|
76
|
-
console.log("Schema refreshed successfully.");
|
|
77
|
-
}
|
|
78
|
-
return graph;
|
|
79
|
-
}
|
|
80
|
-
getSchema() {
|
|
81
|
-
return this.schema;
|
|
82
|
-
}
|
|
83
|
-
getStructuredSchema() {
|
|
84
|
-
return this.structuredSchema;
|
|
85
|
-
}
|
|
86
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
87
|
-
async query(query, params = {}) {
|
|
88
|
-
try {
|
|
89
|
-
const result = await this.driver.executeQuery(query, params, {
|
|
90
|
-
database: this.database,
|
|
91
|
-
});
|
|
92
|
-
return toObjects(result.records);
|
|
93
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
94
|
-
}
|
|
95
|
-
catch (error) {
|
|
96
|
-
if (
|
|
97
|
-
// eslint-disable-next-line
|
|
98
|
-
error instanceof Neo4jError &&
|
|
99
|
-
error.code === "Neo.ClientError.Procedure.ProcedureNotFound") {
|
|
100
|
-
throw new Error("Procedure not found in Neo4j.");
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
return undefined;
|
|
104
|
-
}
|
|
105
|
-
async verifyConnectivity() {
|
|
106
|
-
await this.driver.verifyAuthentication();
|
|
107
|
-
}
|
|
108
|
-
async refreshSchema() {
|
|
109
|
-
const nodePropertiesQuery = `
|
|
110
|
-
CALL apoc.meta.data()
|
|
111
|
-
YIELD label, other, elementType, type, property
|
|
112
|
-
WHERE NOT type = "RELATIONSHIP" AND elementType = "node"
|
|
113
|
-
WITH label AS nodeLabels, collect({property:property, type:type}) AS properties
|
|
114
|
-
RETURN {labels: nodeLabels, properties: properties} AS output
|
|
115
|
-
`;
|
|
116
|
-
const relPropertiesQuery = `
|
|
117
|
-
CALL apoc.meta.data()
|
|
118
|
-
YIELD label, other, elementType, type, property
|
|
119
|
-
WHERE NOT type = "RELATIONSHIP" AND elementType = "relationship"
|
|
120
|
-
WITH label AS nodeLabels, collect({property:property, type:type}) AS properties
|
|
121
|
-
RETURN {type: nodeLabels, properties: properties} AS output
|
|
122
|
-
`;
|
|
123
|
-
const relQuery = `
|
|
124
|
-
CALL apoc.meta.data()
|
|
125
|
-
YIELD label, other, elementType, type, property
|
|
126
|
-
WHERE type = "RELATIONSHIP" AND elementType = "node"
|
|
127
|
-
UNWIND other AS other_node
|
|
128
|
-
RETURN {start: label, type: property, end: toString(other_node)} AS output
|
|
129
|
-
`;
|
|
130
|
-
// Assuming query method is defined and returns a Promise
|
|
131
|
-
const nodeProperties = (await this.query(nodePropertiesQuery))?.map((el) => el.output);
|
|
132
|
-
const relationshipsProperties = (await this.query(relPropertiesQuery))?.map((el) => el.output);
|
|
133
|
-
const relationships = (await this.query(relQuery))?.map((el) => el.output);
|
|
134
|
-
// Structured schema similar to Python's dictionary comprehension
|
|
135
|
-
this.structuredSchema = {
|
|
136
|
-
nodeProps: Object.fromEntries(nodeProperties?.map((el) => [el.labels, el.properties]) || []),
|
|
137
|
-
relProps: Object.fromEntries(relationshipsProperties?.map((el) => [el.type, el.properties]) || []),
|
|
138
|
-
relationships: relationships || [],
|
|
139
|
-
};
|
|
140
|
-
// Format node properties
|
|
141
|
-
const formattedNodeProps = nodeProperties?.map((el) => {
|
|
142
|
-
const propsStr = el.properties
|
|
143
|
-
.map((prop) => `${prop.property}: ${prop.type}`)
|
|
144
|
-
.join(", ");
|
|
145
|
-
return `${el.labels} {${propsStr}}`;
|
|
146
|
-
});
|
|
147
|
-
// Format relationship properties
|
|
148
|
-
const formattedRelProps = relationshipsProperties?.map((el) => {
|
|
149
|
-
const propsStr = el.properties
|
|
150
|
-
.map((prop) => `${prop.property}: ${prop.type}`)
|
|
151
|
-
.join(", ");
|
|
152
|
-
return `${el.type} {${propsStr}}`;
|
|
153
|
-
});
|
|
154
|
-
// Format relationships
|
|
155
|
-
const formattedRels = relationships?.map((el) => `(:${el.start})-[:${el.type}]->(:${el.end})`);
|
|
156
|
-
// Combine all formatted elements into a single string
|
|
157
|
-
this.schema = [
|
|
158
|
-
"Node properties are the following:",
|
|
159
|
-
formattedNodeProps?.join(", "),
|
|
160
|
-
"Relationship properties are the following:",
|
|
161
|
-
formattedRelProps?.join(", "),
|
|
162
|
-
"The relationships are the following:",
|
|
163
|
-
formattedRels?.join(", "),
|
|
164
|
-
].join("\n");
|
|
165
|
-
}
|
|
166
|
-
async close() {
|
|
167
|
-
await this.driver.close();
|
|
168
|
-
}
|
|
169
|
-
}
|
|
170
|
-
function toObjects(records) {
|
|
171
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
172
|
-
const recordValues = records.map((record) => {
|
|
173
|
-
const rObj = record.toObject();
|
|
174
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
175
|
-
const out = {};
|
|
176
|
-
Object.keys(rObj).forEach((key) => {
|
|
177
|
-
out[key] = itemIntToString(rObj[key]);
|
|
178
|
-
});
|
|
179
|
-
return out;
|
|
180
|
-
});
|
|
181
|
-
return recordValues;
|
|
182
|
-
}
|
|
183
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
184
|
-
function itemIntToString(item) {
|
|
185
|
-
if (neo4j.isInt(item))
|
|
186
|
-
return item.toString();
|
|
187
|
-
if (Array.isArray(item))
|
|
188
|
-
return item.map((ii) => itemIntToString(ii));
|
|
189
|
-
if (["number", "string", "boolean"].indexOf(typeof item) !== -1)
|
|
190
|
-
return item;
|
|
191
|
-
if (item === null)
|
|
192
|
-
return item;
|
|
193
|
-
if (typeof item === "object")
|
|
194
|
-
return objIntToString(item);
|
|
195
|
-
}
|
|
196
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
197
|
-
function objIntToString(obj) {
|
|
198
|
-
const entry = extractFromNeoObjects(obj);
|
|
199
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
200
|
-
let newObj = null;
|
|
201
|
-
if (Array.isArray(entry)) {
|
|
202
|
-
newObj = entry.map((item) => itemIntToString(item));
|
|
203
|
-
}
|
|
204
|
-
else if (entry !== null && typeof entry === "object") {
|
|
205
|
-
newObj = {};
|
|
206
|
-
Object.keys(entry).forEach((key) => {
|
|
207
|
-
newObj[key] = itemIntToString(entry[key]);
|
|
208
|
-
});
|
|
209
|
-
}
|
|
210
|
-
return newObj;
|
|
211
|
-
}
|
|
212
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
213
|
-
function extractFromNeoObjects(obj) {
|
|
214
|
-
if (
|
|
215
|
-
// eslint-disable-next-line
|
|
216
|
-
obj instanceof neo4j.types.Node ||
|
|
217
|
-
// eslint-disable-next-line
|
|
218
|
-
obj instanceof neo4j.types.Relationship) {
|
|
219
|
-
return obj.properties;
|
|
220
|
-
// eslint-disable-next-line
|
|
221
|
-
}
|
|
222
|
-
else if (obj instanceof neo4j.types.Path) {
|
|
223
|
-
// eslint-disable-next-line
|
|
224
|
-
return [].concat.apply([], extractPathForRows(obj));
|
|
225
|
-
}
|
|
226
|
-
return obj;
|
|
227
|
-
}
|
|
228
|
-
const extractPathForRows = (path) => {
|
|
229
|
-
let { segments } = path;
|
|
230
|
-
// Zero length path. No relationship, end === start
|
|
231
|
-
if (!Array.isArray(path.segments) || path.segments.length < 1) {
|
|
232
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
233
|
-
segments = [{ ...path, end: null }];
|
|
234
|
-
}
|
|
235
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
236
|
-
return segments.map((segment) => [
|
|
237
|
-
objIntToString(segment.start),
|
|
238
|
-
objIntToString(segment.relationship),
|
|
239
|
-
objIntToString(segment.end),
|
|
240
|
-
].filter((part) => part !== null));
|
|
241
|
-
};
|
|
1
|
+
export * from "@langchain/community/graphs/neo4j_graph";
|