langchain 0.0.202 → 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_loaders/fs/pdf.cjs +1 -1
- package/dist/document_loaders/fs/pdf.js +1 -1
- package/dist/document_loaders/web/pdf.cjs +1 -1
- package/dist/document_loaders/web/pdf.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/masking/index.cjs +9 -0
- package/dist/experimental/masking/index.d.ts +4 -0
- package/dist/experimental/masking/index.js +3 -0
- package/dist/experimental/masking/parser.cjs +134 -0
- package/dist/experimental/masking/parser.d.ts +44 -0
- package/dist/experimental/masking/parser.js +130 -0
- package/dist/experimental/masking/regex_masking_transformer.cjs +145 -0
- package/dist/experimental/masking/regex_masking_transformer.d.ts +48 -0
- package/dist/experimental/masking/regex_masking_transformer.js +141 -0
- package/dist/experimental/masking/transformer.cjs +9 -0
- package/dist/experimental/masking/transformer.d.ts +7 -0
- package/dist/experimental/masking/transformer.js +5 -0
- package/dist/experimental/masking/types.cjs +2 -0
- package/dist/experimental/masking/types.d.ts +25 -0
- package/dist/experimental/masking/types.js +1 -0
- 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/import_map.cjs +2 -1
- package/dist/load/import_map.d.ts +1 -0
- package/dist/load/import_map.js +1 -0
- 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 -304
- 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/experimental/masking.cjs +1 -0
- package/experimental/masking.d.ts +1 -0
- package/experimental/masking.js +1 -0
- package/package.json +13 -27
- 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,226 +1,17 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
Object.
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
function
|
|
7
|
-
return x != null && typeof x === "object" && "on" in x;
|
|
8
|
-
}
|
|
9
|
-
/**
|
|
10
|
-
* Converts a ReadableStream into a callback pattern.
|
|
11
|
-
* @param stream The input ReadableStream.
|
|
12
|
-
* @param onChunk A function that will be called on each new byte chunk in the stream.
|
|
13
|
-
* @returns {Promise<void>} A promise that will be resolved when the stream closes.
|
|
14
|
-
*/
|
|
15
|
-
async function getBytes(stream, onChunk) {
|
|
16
|
-
// stream is a Node.js Readable / PassThrough stream
|
|
17
|
-
// this can happen if node-fetch is polyfilled
|
|
18
|
-
if (isNodeJSReadable(stream)) {
|
|
19
|
-
return new Promise((resolve) => {
|
|
20
|
-
stream.on("readable", () => {
|
|
21
|
-
let chunk;
|
|
22
|
-
// eslint-disable-next-line no-constant-condition
|
|
23
|
-
while (true) {
|
|
24
|
-
chunk = stream.read();
|
|
25
|
-
if (chunk == null) {
|
|
26
|
-
onChunk(new Uint8Array(), true);
|
|
27
|
-
break;
|
|
28
|
-
}
|
|
29
|
-
onChunk(chunk);
|
|
30
|
-
}
|
|
31
|
-
resolve();
|
|
32
|
-
});
|
|
33
|
-
});
|
|
34
|
-
}
|
|
35
|
-
const reader = stream.getReader();
|
|
36
|
-
// CHANGED: Introduced a "flush" mechanism to process potential pending messages when the stream ends.
|
|
37
|
-
// This change is essential to ensure that we capture every last piece of information from streams,
|
|
38
|
-
// such as those from Azure OpenAI, which may not terminate with a blank line. Without this
|
|
39
|
-
// mechanism, we risk ignoring a possibly significant last message.
|
|
40
|
-
// See https://github.com/langchain-ai/langchainjs/issues/1299 for details.
|
|
41
|
-
// eslint-disable-next-line no-constant-condition
|
|
42
|
-
while (true) {
|
|
43
|
-
const result = await reader.read();
|
|
44
|
-
if (result.done) {
|
|
45
|
-
onChunk(new Uint8Array(), true);
|
|
46
|
-
break;
|
|
47
|
-
}
|
|
48
|
-
onChunk(result.value);
|
|
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]; } };
|
|
49
7
|
}
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
let position; // current read position
|
|
61
|
-
let fieldLength; // length of the `field` portion of the line
|
|
62
|
-
let discardTrailingNewline = false;
|
|
63
|
-
// return a function that can process each incoming byte chunk:
|
|
64
|
-
return function onChunk(arr, flush) {
|
|
65
|
-
if (flush) {
|
|
66
|
-
onLine(arr, 0, true);
|
|
67
|
-
return;
|
|
68
|
-
}
|
|
69
|
-
if (buffer === undefined) {
|
|
70
|
-
buffer = arr;
|
|
71
|
-
position = 0;
|
|
72
|
-
fieldLength = -1;
|
|
73
|
-
}
|
|
74
|
-
else {
|
|
75
|
-
// we're still parsing the old line. Append the new bytes into buffer:
|
|
76
|
-
buffer = concat(buffer, arr);
|
|
77
|
-
}
|
|
78
|
-
const bufLength = buffer.length;
|
|
79
|
-
let lineStart = 0; // index where the current line starts
|
|
80
|
-
while (position < bufLength) {
|
|
81
|
-
if (discardTrailingNewline) {
|
|
82
|
-
if (buffer[position] === 10 /* ControlChars.NewLine */) {
|
|
83
|
-
lineStart = ++position; // skip to next char
|
|
84
|
-
}
|
|
85
|
-
discardTrailingNewline = false;
|
|
86
|
-
}
|
|
87
|
-
// start looking forward till the end of line:
|
|
88
|
-
let lineEnd = -1; // index of the \r or \n char
|
|
89
|
-
for (; position < bufLength && lineEnd === -1; ++position) {
|
|
90
|
-
switch (buffer[position]) {
|
|
91
|
-
case 58 /* ControlChars.Colon */:
|
|
92
|
-
if (fieldLength === -1) {
|
|
93
|
-
// first colon in line
|
|
94
|
-
fieldLength = position - lineStart;
|
|
95
|
-
}
|
|
96
|
-
break;
|
|
97
|
-
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
98
|
-
// @ts-ignore:7029 \r case below should fallthrough to \n:
|
|
99
|
-
case 13 /* ControlChars.CarriageReturn */:
|
|
100
|
-
discardTrailingNewline = true;
|
|
101
|
-
// eslint-disable-next-line no-fallthrough
|
|
102
|
-
case 10 /* ControlChars.NewLine */:
|
|
103
|
-
lineEnd = position;
|
|
104
|
-
break;
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
if (lineEnd === -1) {
|
|
108
|
-
// We reached the end of the buffer but the line hasn't ended.
|
|
109
|
-
// Wait for the next arr and then continue parsing:
|
|
110
|
-
break;
|
|
111
|
-
}
|
|
112
|
-
// we've reached the line end, send it out:
|
|
113
|
-
onLine(buffer.subarray(lineStart, lineEnd), fieldLength);
|
|
114
|
-
lineStart = position; // we're now on the next line
|
|
115
|
-
fieldLength = -1;
|
|
116
|
-
}
|
|
117
|
-
if (lineStart === bufLength) {
|
|
118
|
-
buffer = undefined; // we've finished reading it
|
|
119
|
-
}
|
|
120
|
-
else if (lineStart !== 0) {
|
|
121
|
-
// Create a new view into buffer beginning at lineStart so we don't
|
|
122
|
-
// need to copy over the previous lines when we get the new arr:
|
|
123
|
-
buffer = buffer.subarray(lineStart);
|
|
124
|
-
position -= lineStart;
|
|
125
|
-
}
|
|
126
|
-
};
|
|
127
|
-
}
|
|
128
|
-
exports.getLines = getLines;
|
|
129
|
-
/**
|
|
130
|
-
* Parses line buffers into EventSourceMessages.
|
|
131
|
-
* @param onId A function that will be called on each `id` field.
|
|
132
|
-
* @param onRetry A function that will be called on each `retry` field.
|
|
133
|
-
* @param onMessage A function that will be called on each message.
|
|
134
|
-
* @returns A function that should be called for each incoming line buffer.
|
|
135
|
-
*/
|
|
136
|
-
function getMessages(onMessage, onId, onRetry) {
|
|
137
|
-
let message = newMessage();
|
|
138
|
-
const decoder = new TextDecoder();
|
|
139
|
-
// return a function that can process each incoming line buffer:
|
|
140
|
-
return function onLine(line, fieldLength, flush) {
|
|
141
|
-
if (flush) {
|
|
142
|
-
if (!isEmpty(message)) {
|
|
143
|
-
onMessage?.(message);
|
|
144
|
-
message = newMessage();
|
|
145
|
-
}
|
|
146
|
-
return;
|
|
147
|
-
}
|
|
148
|
-
if (line.length === 0) {
|
|
149
|
-
// empty line denotes end of message. Trigger the callback and start a new message:
|
|
150
|
-
onMessage?.(message);
|
|
151
|
-
message = newMessage();
|
|
152
|
-
}
|
|
153
|
-
else if (fieldLength > 0) {
|
|
154
|
-
// exclude comments and lines with no values
|
|
155
|
-
// line is of format "<field>:<value>" or "<field>: <value>"
|
|
156
|
-
// https://html.spec.whatwg.org/multipage/server-sent-events.html#event-stream-interpretation
|
|
157
|
-
const field = decoder.decode(line.subarray(0, fieldLength));
|
|
158
|
-
const valueOffset = fieldLength + (line[fieldLength + 1] === 32 /* ControlChars.Space */ ? 2 : 1);
|
|
159
|
-
const value = decoder.decode(line.subarray(valueOffset));
|
|
160
|
-
switch (field) {
|
|
161
|
-
case "data":
|
|
162
|
-
// if this message already has data, append the new value to the old.
|
|
163
|
-
// otherwise, just set to the new value:
|
|
164
|
-
message.data = message.data ? message.data + "\n" + value : value; // otherwise,
|
|
165
|
-
break;
|
|
166
|
-
case "event":
|
|
167
|
-
message.event = value;
|
|
168
|
-
break;
|
|
169
|
-
case "id":
|
|
170
|
-
onId?.((message.id = value));
|
|
171
|
-
break;
|
|
172
|
-
case "retry": {
|
|
173
|
-
const retry = parseInt(value, 10);
|
|
174
|
-
if (!Number.isNaN(retry)) {
|
|
175
|
-
// per spec, ignore non-integers
|
|
176
|
-
onRetry?.((message.retry = retry));
|
|
177
|
-
}
|
|
178
|
-
break;
|
|
179
|
-
}
|
|
180
|
-
}
|
|
181
|
-
}
|
|
182
|
-
};
|
|
183
|
-
}
|
|
184
|
-
exports.getMessages = getMessages;
|
|
185
|
-
function concat(a, b) {
|
|
186
|
-
const res = new Uint8Array(a.length + b.length);
|
|
187
|
-
res.set(a);
|
|
188
|
-
res.set(b, a.length);
|
|
189
|
-
return res;
|
|
190
|
-
}
|
|
191
|
-
function newMessage() {
|
|
192
|
-
// data, event, and id must be initialized to empty strings:
|
|
193
|
-
// https://html.spec.whatwg.org/multipage/server-sent-events.html#event-stream-interpretation
|
|
194
|
-
// retry should be initialized to undefined so we return a consistent shape
|
|
195
|
-
// to the js engine all the time: https://mathiasbynens.be/notes/shapes-ics#takeaways
|
|
196
|
-
return {
|
|
197
|
-
data: "",
|
|
198
|
-
event: "",
|
|
199
|
-
id: "",
|
|
200
|
-
retry: undefined,
|
|
201
|
-
};
|
|
202
|
-
}
|
|
203
|
-
function convertEventStreamToIterableReadableDataStream(stream) {
|
|
204
|
-
const dataStream = new ReadableStream({
|
|
205
|
-
async start(controller) {
|
|
206
|
-
const enqueueLine = getMessages((msg) => {
|
|
207
|
-
if (msg.data)
|
|
208
|
-
controller.enqueue(msg.data);
|
|
209
|
-
});
|
|
210
|
-
const onLine = (line, fieldLength, flush) => {
|
|
211
|
-
enqueueLine(line, fieldLength, flush);
|
|
212
|
-
if (flush)
|
|
213
|
-
controller.close();
|
|
214
|
-
};
|
|
215
|
-
await getBytes(stream, getLines(onLine));
|
|
216
|
-
},
|
|
217
|
-
});
|
|
218
|
-
return stream_js_1.IterableReadableStream.fromReadableStream(dataStream);
|
|
219
|
-
}
|
|
220
|
-
exports.convertEventStreamToIterableReadableDataStream = convertEventStreamToIterableReadableDataStream;
|
|
221
|
-
function isEmpty(message) {
|
|
222
|
-
return (message.data === "" &&
|
|
223
|
-
message.event === "" &&
|
|
224
|
-
message.id === "" &&
|
|
225
|
-
message.retry === undefined);
|
|
226
|
-
}
|
|
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
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("@langchain/community/utils/event_source_parse"), exports);
|
|
@@ -1,39 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export declare const EventStreamContentType = "text/event-stream";
|
|
3
|
-
/**
|
|
4
|
-
* Represents a message sent in an event stream
|
|
5
|
-
* https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events/Using_server-sent_events#Event_stream_format
|
|
6
|
-
*/
|
|
7
|
-
export interface EventSourceMessage {
|
|
8
|
-
/** The event ID to set the EventSource object's last event ID value. */
|
|
9
|
-
id: string;
|
|
10
|
-
/** A string identifying the type of event described. */
|
|
11
|
-
event: string;
|
|
12
|
-
/** The event data */
|
|
13
|
-
data: string;
|
|
14
|
-
/** The reconnection interval (in milliseconds) to wait before retrying the connection */
|
|
15
|
-
retry?: number;
|
|
16
|
-
}
|
|
17
|
-
/**
|
|
18
|
-
* Converts a ReadableStream into a callback pattern.
|
|
19
|
-
* @param stream The input ReadableStream.
|
|
20
|
-
* @param onChunk A function that will be called on each new byte chunk in the stream.
|
|
21
|
-
* @returns {Promise<void>} A promise that will be resolved when the stream closes.
|
|
22
|
-
*/
|
|
23
|
-
export declare function getBytes(stream: ReadableStream<Uint8Array>, onChunk: (arr: Uint8Array, flush?: boolean) => void): Promise<void>;
|
|
24
|
-
/**
|
|
25
|
-
* Parses arbitary byte chunks into EventSource line buffers.
|
|
26
|
-
* Each line should be of the format "field: value" and ends with \r, \n, or \r\n.
|
|
27
|
-
* @param onLine A function that will be called on each new EventSource line.
|
|
28
|
-
* @returns A function that should be called for each incoming byte chunk.
|
|
29
|
-
*/
|
|
30
|
-
export declare function getLines(onLine: (line: Uint8Array, fieldLength: number, flush?: boolean) => void): (arr: Uint8Array, flush?: boolean) => void;
|
|
31
|
-
/**
|
|
32
|
-
* Parses line buffers into EventSourceMessages.
|
|
33
|
-
* @param onId A function that will be called on each `id` field.
|
|
34
|
-
* @param onRetry A function that will be called on each `retry` field.
|
|
35
|
-
* @param onMessage A function that will be called on each message.
|
|
36
|
-
* @returns A function that should be called for each incoming line buffer.
|
|
37
|
-
*/
|
|
38
|
-
export declare function getMessages(onMessage?: (msg: EventSourceMessage) => void, onId?: (id: string) => void, onRetry?: (retry: number) => void): (line: Uint8Array, fieldLength: number, flush?: boolean) => void;
|
|
39
|
-
export declare function convertEventStreamToIterableReadableDataStream(stream: ReadableStream): IterableReadableStream<any>;
|
|
1
|
+
export * from "@langchain/community/utils/event_source_parse";
|
|
@@ -1,219 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export const EventStreamContentType = "text/event-stream";
|
|
3
|
-
function isNodeJSReadable(x) {
|
|
4
|
-
return x != null && typeof x === "object" && "on" in x;
|
|
5
|
-
}
|
|
6
|
-
/**
|
|
7
|
-
* Converts a ReadableStream into a callback pattern.
|
|
8
|
-
* @param stream The input ReadableStream.
|
|
9
|
-
* @param onChunk A function that will be called on each new byte chunk in the stream.
|
|
10
|
-
* @returns {Promise<void>} A promise that will be resolved when the stream closes.
|
|
11
|
-
*/
|
|
12
|
-
export async function getBytes(stream, onChunk) {
|
|
13
|
-
// stream is a Node.js Readable / PassThrough stream
|
|
14
|
-
// this can happen if node-fetch is polyfilled
|
|
15
|
-
if (isNodeJSReadable(stream)) {
|
|
16
|
-
return new Promise((resolve) => {
|
|
17
|
-
stream.on("readable", () => {
|
|
18
|
-
let chunk;
|
|
19
|
-
// eslint-disable-next-line no-constant-condition
|
|
20
|
-
while (true) {
|
|
21
|
-
chunk = stream.read();
|
|
22
|
-
if (chunk == null) {
|
|
23
|
-
onChunk(new Uint8Array(), true);
|
|
24
|
-
break;
|
|
25
|
-
}
|
|
26
|
-
onChunk(chunk);
|
|
27
|
-
}
|
|
28
|
-
resolve();
|
|
29
|
-
});
|
|
30
|
-
});
|
|
31
|
-
}
|
|
32
|
-
const reader = stream.getReader();
|
|
33
|
-
// CHANGED: Introduced a "flush" mechanism to process potential pending messages when the stream ends.
|
|
34
|
-
// This change is essential to ensure that we capture every last piece of information from streams,
|
|
35
|
-
// such as those from Azure OpenAI, which may not terminate with a blank line. Without this
|
|
36
|
-
// mechanism, we risk ignoring a possibly significant last message.
|
|
37
|
-
// See https://github.com/langchain-ai/langchainjs/issues/1299 for details.
|
|
38
|
-
// eslint-disable-next-line no-constant-condition
|
|
39
|
-
while (true) {
|
|
40
|
-
const result = await reader.read();
|
|
41
|
-
if (result.done) {
|
|
42
|
-
onChunk(new Uint8Array(), true);
|
|
43
|
-
break;
|
|
44
|
-
}
|
|
45
|
-
onChunk(result.value);
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
/**
|
|
49
|
-
* Parses arbitary byte chunks into EventSource line buffers.
|
|
50
|
-
* Each line should be of the format "field: value" and ends with \r, \n, or \r\n.
|
|
51
|
-
* @param onLine A function that will be called on each new EventSource line.
|
|
52
|
-
* @returns A function that should be called for each incoming byte chunk.
|
|
53
|
-
*/
|
|
54
|
-
export function getLines(onLine) {
|
|
55
|
-
let buffer;
|
|
56
|
-
let position; // current read position
|
|
57
|
-
let fieldLength; // length of the `field` portion of the line
|
|
58
|
-
let discardTrailingNewline = false;
|
|
59
|
-
// return a function that can process each incoming byte chunk:
|
|
60
|
-
return function onChunk(arr, flush) {
|
|
61
|
-
if (flush) {
|
|
62
|
-
onLine(arr, 0, true);
|
|
63
|
-
return;
|
|
64
|
-
}
|
|
65
|
-
if (buffer === undefined) {
|
|
66
|
-
buffer = arr;
|
|
67
|
-
position = 0;
|
|
68
|
-
fieldLength = -1;
|
|
69
|
-
}
|
|
70
|
-
else {
|
|
71
|
-
// we're still parsing the old line. Append the new bytes into buffer:
|
|
72
|
-
buffer = concat(buffer, arr);
|
|
73
|
-
}
|
|
74
|
-
const bufLength = buffer.length;
|
|
75
|
-
let lineStart = 0; // index where the current line starts
|
|
76
|
-
while (position < bufLength) {
|
|
77
|
-
if (discardTrailingNewline) {
|
|
78
|
-
if (buffer[position] === 10 /* ControlChars.NewLine */) {
|
|
79
|
-
lineStart = ++position; // skip to next char
|
|
80
|
-
}
|
|
81
|
-
discardTrailingNewline = false;
|
|
82
|
-
}
|
|
83
|
-
// start looking forward till the end of line:
|
|
84
|
-
let lineEnd = -1; // index of the \r or \n char
|
|
85
|
-
for (; position < bufLength && lineEnd === -1; ++position) {
|
|
86
|
-
switch (buffer[position]) {
|
|
87
|
-
case 58 /* ControlChars.Colon */:
|
|
88
|
-
if (fieldLength === -1) {
|
|
89
|
-
// first colon in line
|
|
90
|
-
fieldLength = position - lineStart;
|
|
91
|
-
}
|
|
92
|
-
break;
|
|
93
|
-
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
94
|
-
// @ts-ignore:7029 \r case below should fallthrough to \n:
|
|
95
|
-
case 13 /* ControlChars.CarriageReturn */:
|
|
96
|
-
discardTrailingNewline = true;
|
|
97
|
-
// eslint-disable-next-line no-fallthrough
|
|
98
|
-
case 10 /* ControlChars.NewLine */:
|
|
99
|
-
lineEnd = position;
|
|
100
|
-
break;
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
if (lineEnd === -1) {
|
|
104
|
-
// We reached the end of the buffer but the line hasn't ended.
|
|
105
|
-
// Wait for the next arr and then continue parsing:
|
|
106
|
-
break;
|
|
107
|
-
}
|
|
108
|
-
// we've reached the line end, send it out:
|
|
109
|
-
onLine(buffer.subarray(lineStart, lineEnd), fieldLength);
|
|
110
|
-
lineStart = position; // we're now on the next line
|
|
111
|
-
fieldLength = -1;
|
|
112
|
-
}
|
|
113
|
-
if (lineStart === bufLength) {
|
|
114
|
-
buffer = undefined; // we've finished reading it
|
|
115
|
-
}
|
|
116
|
-
else if (lineStart !== 0) {
|
|
117
|
-
// Create a new view into buffer beginning at lineStart so we don't
|
|
118
|
-
// need to copy over the previous lines when we get the new arr:
|
|
119
|
-
buffer = buffer.subarray(lineStart);
|
|
120
|
-
position -= lineStart;
|
|
121
|
-
}
|
|
122
|
-
};
|
|
123
|
-
}
|
|
124
|
-
/**
|
|
125
|
-
* Parses line buffers into EventSourceMessages.
|
|
126
|
-
* @param onId A function that will be called on each `id` field.
|
|
127
|
-
* @param onRetry A function that will be called on each `retry` field.
|
|
128
|
-
* @param onMessage A function that will be called on each message.
|
|
129
|
-
* @returns A function that should be called for each incoming line buffer.
|
|
130
|
-
*/
|
|
131
|
-
export function getMessages(onMessage, onId, onRetry) {
|
|
132
|
-
let message = newMessage();
|
|
133
|
-
const decoder = new TextDecoder();
|
|
134
|
-
// return a function that can process each incoming line buffer:
|
|
135
|
-
return function onLine(line, fieldLength, flush) {
|
|
136
|
-
if (flush) {
|
|
137
|
-
if (!isEmpty(message)) {
|
|
138
|
-
onMessage?.(message);
|
|
139
|
-
message = newMessage();
|
|
140
|
-
}
|
|
141
|
-
return;
|
|
142
|
-
}
|
|
143
|
-
if (line.length === 0) {
|
|
144
|
-
// empty line denotes end of message. Trigger the callback and start a new message:
|
|
145
|
-
onMessage?.(message);
|
|
146
|
-
message = newMessage();
|
|
147
|
-
}
|
|
148
|
-
else if (fieldLength > 0) {
|
|
149
|
-
// exclude comments and lines with no values
|
|
150
|
-
// line is of format "<field>:<value>" or "<field>: <value>"
|
|
151
|
-
// https://html.spec.whatwg.org/multipage/server-sent-events.html#event-stream-interpretation
|
|
152
|
-
const field = decoder.decode(line.subarray(0, fieldLength));
|
|
153
|
-
const valueOffset = fieldLength + (line[fieldLength + 1] === 32 /* ControlChars.Space */ ? 2 : 1);
|
|
154
|
-
const value = decoder.decode(line.subarray(valueOffset));
|
|
155
|
-
switch (field) {
|
|
156
|
-
case "data":
|
|
157
|
-
// if this message already has data, append the new value to the old.
|
|
158
|
-
// otherwise, just set to the new value:
|
|
159
|
-
message.data = message.data ? message.data + "\n" + value : value; // otherwise,
|
|
160
|
-
break;
|
|
161
|
-
case "event":
|
|
162
|
-
message.event = value;
|
|
163
|
-
break;
|
|
164
|
-
case "id":
|
|
165
|
-
onId?.((message.id = value));
|
|
166
|
-
break;
|
|
167
|
-
case "retry": {
|
|
168
|
-
const retry = parseInt(value, 10);
|
|
169
|
-
if (!Number.isNaN(retry)) {
|
|
170
|
-
// per spec, ignore non-integers
|
|
171
|
-
onRetry?.((message.retry = retry));
|
|
172
|
-
}
|
|
173
|
-
break;
|
|
174
|
-
}
|
|
175
|
-
}
|
|
176
|
-
}
|
|
177
|
-
};
|
|
178
|
-
}
|
|
179
|
-
function concat(a, b) {
|
|
180
|
-
const res = new Uint8Array(a.length + b.length);
|
|
181
|
-
res.set(a);
|
|
182
|
-
res.set(b, a.length);
|
|
183
|
-
return res;
|
|
184
|
-
}
|
|
185
|
-
function newMessage() {
|
|
186
|
-
// data, event, and id must be initialized to empty strings:
|
|
187
|
-
// https://html.spec.whatwg.org/multipage/server-sent-events.html#event-stream-interpretation
|
|
188
|
-
// retry should be initialized to undefined so we return a consistent shape
|
|
189
|
-
// to the js engine all the time: https://mathiasbynens.be/notes/shapes-ics#takeaways
|
|
190
|
-
return {
|
|
191
|
-
data: "",
|
|
192
|
-
event: "",
|
|
193
|
-
id: "",
|
|
194
|
-
retry: undefined,
|
|
195
|
-
};
|
|
196
|
-
}
|
|
197
|
-
export function convertEventStreamToIterableReadableDataStream(stream) {
|
|
198
|
-
const dataStream = new ReadableStream({
|
|
199
|
-
async start(controller) {
|
|
200
|
-
const enqueueLine = getMessages((msg) => {
|
|
201
|
-
if (msg.data)
|
|
202
|
-
controller.enqueue(msg.data);
|
|
203
|
-
});
|
|
204
|
-
const onLine = (line, fieldLength, flush) => {
|
|
205
|
-
enqueueLine(line, fieldLength, flush);
|
|
206
|
-
if (flush)
|
|
207
|
-
controller.close();
|
|
208
|
-
};
|
|
209
|
-
await getBytes(stream, getLines(onLine));
|
|
210
|
-
},
|
|
211
|
-
});
|
|
212
|
-
return IterableReadableStream.fromReadableStream(dataStream);
|
|
213
|
-
}
|
|
214
|
-
function isEmpty(message) {
|
|
215
|
-
return (message.data === "" &&
|
|
216
|
-
message.event === "" &&
|
|
217
|
-
message.id === "" &&
|
|
218
|
-
message.retry === undefined);
|
|
219
|
-
}
|
|
1
|
+
export * from "@langchain/community/utils/event_source_parse";
|
package/dist/util/math.cjs
CHANGED
|
@@ -1,125 +1,17 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
Object.
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
*
|
|
8
|
-
* @param {number[][]} X - The first matrix.
|
|
9
|
-
* @param {number[][]} Y - The second matrix.
|
|
10
|
-
* @param {VectorFunction} func - The function to apply.
|
|
11
|
-
*
|
|
12
|
-
* @throws {Error} If the number of columns in X and Y are not the same.
|
|
13
|
-
*
|
|
14
|
-
* @returns {number[][] | [[]]} A matrix where each row represents the result of applying the function between the corresponding rows of X and Y.
|
|
15
|
-
*/
|
|
16
|
-
function matrixFunc(X, Y, func) {
|
|
17
|
-
if (X.length === 0 ||
|
|
18
|
-
X[0].length === 0 ||
|
|
19
|
-
Y.length === 0 ||
|
|
20
|
-
Y[0].length === 0) {
|
|
21
|
-
return [[]];
|
|
22
|
-
}
|
|
23
|
-
if (X[0].length !== Y[0].length) {
|
|
24
|
-
throw new Error(`Number of columns in X and Y must be the same. X has shape ${[
|
|
25
|
-
X.length,
|
|
26
|
-
X[0].length,
|
|
27
|
-
]} and Y has shape ${[Y.length, Y[0].length]}.`);
|
|
28
|
-
}
|
|
29
|
-
return X.map((xVector) => Y.map((yVector) => func(xVector, yVector)).map((similarity) => Number.isNaN(similarity) ? 0 : similarity));
|
|
30
|
-
}
|
|
31
|
-
exports.matrixFunc = matrixFunc;
|
|
32
|
-
function normalize(M, similarity = false) {
|
|
33
|
-
const max = matrixMaxVal(M);
|
|
34
|
-
return M.map((row) => row.map((val) => (similarity ? 1 - val / max : val / max)));
|
|
35
|
-
}
|
|
36
|
-
exports.normalize = normalize;
|
|
37
|
-
/**
|
|
38
|
-
* This function calculates the row-wise cosine similarity between two matrices with the same number of columns.
|
|
39
|
-
*
|
|
40
|
-
* @param {number[][]} X - The first matrix.
|
|
41
|
-
* @param {number[][]} Y - The second matrix.
|
|
42
|
-
*
|
|
43
|
-
* @throws {Error} If the number of columns in X and Y are not the same.
|
|
44
|
-
*
|
|
45
|
-
* @returns {number[][] | [[]]} A matrix where each row represents the cosine similarity values between the corresponding rows of X and Y.
|
|
46
|
-
*/
|
|
47
|
-
function cosineSimilarity(X, Y) {
|
|
48
|
-
return matrixFunc(X, Y, ml_distance_1.similarity.cosine);
|
|
49
|
-
}
|
|
50
|
-
exports.cosineSimilarity = cosineSimilarity;
|
|
51
|
-
function innerProduct(X, Y) {
|
|
52
|
-
return matrixFunc(X, Y, ml_distance_1.distance.innerProduct);
|
|
53
|
-
}
|
|
54
|
-
exports.innerProduct = innerProduct;
|
|
55
|
-
function euclideanDistance(X, Y) {
|
|
56
|
-
return matrixFunc(X, Y, ml_distance_1.distance.euclidean);
|
|
57
|
-
}
|
|
58
|
-
exports.euclideanDistance = euclideanDistance;
|
|
59
|
-
/**
|
|
60
|
-
* This function implements the Maximal Marginal Relevance algorithm
|
|
61
|
-
* to select a set of embeddings that maximizes the diversity and relevance to a query embedding.
|
|
62
|
-
*
|
|
63
|
-
* @param {number[]|number[][]} queryEmbedding - The query embedding.
|
|
64
|
-
* @param {number[][]} embeddingList - The list of embeddings to select from.
|
|
65
|
-
* @param {number} [lambda=0.5] - The trade-off parameter between relevance and diversity.
|
|
66
|
-
* @param {number} [k=4] - The maximum number of embeddings to select.
|
|
67
|
-
*
|
|
68
|
-
* @returns {number[]} The indexes of the selected embeddings in the embeddingList.
|
|
69
|
-
*/
|
|
70
|
-
function maximalMarginalRelevance(queryEmbedding, embeddingList, lambda = 0.5, k = 4) {
|
|
71
|
-
if (Math.min(k, embeddingList.length) <= 0) {
|
|
72
|
-
return [];
|
|
73
|
-
}
|
|
74
|
-
const queryEmbeddingExpanded = (Array.isArray(queryEmbedding[0]) ? queryEmbedding : [queryEmbedding]);
|
|
75
|
-
const similarityToQuery = cosineSimilarity(queryEmbeddingExpanded, embeddingList)[0];
|
|
76
|
-
const mostSimilarEmbeddingIndex = argMax(similarityToQuery).maxIndex;
|
|
77
|
-
const selectedEmbeddings = [embeddingList[mostSimilarEmbeddingIndex]];
|
|
78
|
-
const selectedEmbeddingsIndexes = [mostSimilarEmbeddingIndex];
|
|
79
|
-
while (selectedEmbeddingsIndexes.length < Math.min(k, embeddingList.length)) {
|
|
80
|
-
let bestScore = -Infinity;
|
|
81
|
-
let bestIndex = -1;
|
|
82
|
-
const similarityToSelected = cosineSimilarity(embeddingList, selectedEmbeddings);
|
|
83
|
-
similarityToQuery.forEach((queryScore, queryScoreIndex) => {
|
|
84
|
-
if (selectedEmbeddingsIndexes.includes(queryScoreIndex)) {
|
|
85
|
-
return;
|
|
86
|
-
}
|
|
87
|
-
const maxSimilarityToSelected = Math.max(...similarityToSelected[queryScoreIndex]);
|
|
88
|
-
const score = lambda * queryScore - (1 - lambda) * maxSimilarityToSelected;
|
|
89
|
-
if (score > bestScore) {
|
|
90
|
-
bestScore = score;
|
|
91
|
-
bestIndex = queryScoreIndex;
|
|
92
|
-
}
|
|
93
|
-
});
|
|
94
|
-
selectedEmbeddings.push(embeddingList[bestIndex]);
|
|
95
|
-
selectedEmbeddingsIndexes.push(bestIndex);
|
|
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]; } };
|
|
96
7
|
}
|
|
97
|
-
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
if (array.length === 0) {
|
|
108
|
-
return {
|
|
109
|
-
maxIndex: -1,
|
|
110
|
-
maxValue: NaN,
|
|
111
|
-
};
|
|
112
|
-
}
|
|
113
|
-
let maxValue = array[0];
|
|
114
|
-
let maxIndex = 0;
|
|
115
|
-
for (let i = 1; i < array.length; i += 1) {
|
|
116
|
-
if (array[i] > maxValue) {
|
|
117
|
-
maxIndex = i;
|
|
118
|
-
maxValue = array[i];
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
return { maxIndex, maxValue };
|
|
122
|
-
}
|
|
123
|
-
function matrixMaxVal(arrays) {
|
|
124
|
-
return arrays.reduce((acc, array) => Math.max(acc, argMax(array).maxValue), 0);
|
|
125
|
-
}
|
|
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
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("@langchain/core/utils/math"), exports);
|