langchain 0.2.0-rc.0 → 0.2.0-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.
@@ -0,0 +1,87 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.BrowserbaseLoader = void 0;
7
+ const documents_1 = require("@langchain/core/documents");
8
+ const sdk_1 = __importDefault(require("@browserbasehq/sdk"));
9
+ const base_js_1 = require("../base.cjs");
10
+ /**
11
+ * Load pre-rendered web pages using a headless browser hosted on Browserbase.
12
+ *
13
+ * Depends on `@browserbasehq/sdk` package.
14
+ * Get your API key from https://browserbase.com
15
+ *
16
+ * @example
17
+ * ```typescript
18
+ * import { BrowserbaseLoader } from "langchain/document_loaders/web/browserbase";
19
+ *
20
+ * const loader = new BrowserbaseLoader(["https://example.com"], {
21
+ * apiKey: process.env.BROWSERBASE_API_KEY,
22
+ * textContent: true,
23
+ * });
24
+ *
25
+ * const docs = await loader.load();
26
+ * ```
27
+ *
28
+ * @param {string[]} urls - The URLs of the web pages to load.
29
+ * @param {BrowserbaseLoaderOptions} [options] - Browserbase client options.
30
+ */
31
+ class BrowserbaseLoader extends base_js_1.BaseDocumentLoader {
32
+ constructor(urls, options = {}) {
33
+ super();
34
+ Object.defineProperty(this, "urls", {
35
+ enumerable: true,
36
+ configurable: true,
37
+ writable: true,
38
+ value: void 0
39
+ });
40
+ Object.defineProperty(this, "options", {
41
+ enumerable: true,
42
+ configurable: true,
43
+ writable: true,
44
+ value: void 0
45
+ });
46
+ Object.defineProperty(this, "browserbase", {
47
+ enumerable: true,
48
+ configurable: true,
49
+ writable: true,
50
+ value: void 0
51
+ });
52
+ this.urls = urls;
53
+ this.options = options;
54
+ this.browserbase = new sdk_1.default(options.apiKey);
55
+ }
56
+ /**
57
+ * Load pages from URLs.
58
+ *
59
+ * @returns {Promise<DocumentInterface[]>} - A promise which resolves to a list of documents.
60
+ */
61
+ async load() {
62
+ const documents = [];
63
+ for await (const doc of this.lazyLoad()) {
64
+ documents.push(doc);
65
+ }
66
+ return documents;
67
+ }
68
+ /**
69
+ * Load pages from URLs.
70
+ *
71
+ * @returns {Generator<DocumentInterface>} - A generator that yields documents.
72
+ */
73
+ async *lazyLoad() {
74
+ const pages = await this.browserbase.loadURLs(this.urls, this.options);
75
+ let index = 0;
76
+ for await (const page of pages) {
77
+ yield new documents_1.Document({
78
+ pageContent: page,
79
+ metadata: {
80
+ url: this.urls[index],
81
+ },
82
+ });
83
+ index += index + 1;
84
+ }
85
+ }
86
+ }
87
+ exports.BrowserbaseLoader = BrowserbaseLoader;
@@ -0,0 +1,49 @@
1
+ import { Document, type DocumentInterface } from "@langchain/core/documents";
2
+ import Browserbase, { BrowserbaseLoadOptions } from "@browserbasehq/sdk";
3
+ import { BaseDocumentLoader } from "../base.js";
4
+ import type { DocumentLoader } from "../base.js";
5
+ interface BrowserbaseLoaderOptions extends BrowserbaseLoadOptions {
6
+ apiKey?: string;
7
+ }
8
+ /**
9
+ * Load pre-rendered web pages using a headless browser hosted on Browserbase.
10
+ *
11
+ * Depends on `@browserbasehq/sdk` package.
12
+ * Get your API key from https://browserbase.com
13
+ *
14
+ * @example
15
+ * ```typescript
16
+ * import { BrowserbaseLoader } from "langchain/document_loaders/web/browserbase";
17
+ *
18
+ * const loader = new BrowserbaseLoader(["https://example.com"], {
19
+ * apiKey: process.env.BROWSERBASE_API_KEY,
20
+ * textContent: true,
21
+ * });
22
+ *
23
+ * const docs = await loader.load();
24
+ * ```
25
+ *
26
+ * @param {string[]} urls - The URLs of the web pages to load.
27
+ * @param {BrowserbaseLoaderOptions} [options] - Browserbase client options.
28
+ */
29
+ export declare class BrowserbaseLoader extends BaseDocumentLoader implements DocumentLoader {
30
+ urls: string[];
31
+ options: BrowserbaseLoaderOptions;
32
+ browserbase: Browserbase;
33
+ constructor(urls: string[], options?: BrowserbaseLoaderOptions);
34
+ /**
35
+ * Load pages from URLs.
36
+ *
37
+ * @returns {Promise<DocumentInterface[]>} - A promise which resolves to a list of documents.
38
+ */
39
+ load(): Promise<DocumentInterface[]>;
40
+ /**
41
+ * Load pages from URLs.
42
+ *
43
+ * @returns {Generator<DocumentInterface>} - A generator that yields documents.
44
+ */
45
+ lazyLoad(): AsyncGenerator<Document<{
46
+ url: string;
47
+ }>, void, unknown>;
48
+ }
49
+ export {};
@@ -0,0 +1,80 @@
1
+ import { Document } from "@langchain/core/documents";
2
+ import Browserbase from "@browserbasehq/sdk";
3
+ import { BaseDocumentLoader } from "../base.js";
4
+ /**
5
+ * Load pre-rendered web pages using a headless browser hosted on Browserbase.
6
+ *
7
+ * Depends on `@browserbasehq/sdk` package.
8
+ * Get your API key from https://browserbase.com
9
+ *
10
+ * @example
11
+ * ```typescript
12
+ * import { BrowserbaseLoader } from "langchain/document_loaders/web/browserbase";
13
+ *
14
+ * const loader = new BrowserbaseLoader(["https://example.com"], {
15
+ * apiKey: process.env.BROWSERBASE_API_KEY,
16
+ * textContent: true,
17
+ * });
18
+ *
19
+ * const docs = await loader.load();
20
+ * ```
21
+ *
22
+ * @param {string[]} urls - The URLs of the web pages to load.
23
+ * @param {BrowserbaseLoaderOptions} [options] - Browserbase client options.
24
+ */
25
+ export class BrowserbaseLoader extends BaseDocumentLoader {
26
+ constructor(urls, options = {}) {
27
+ super();
28
+ Object.defineProperty(this, "urls", {
29
+ enumerable: true,
30
+ configurable: true,
31
+ writable: true,
32
+ value: void 0
33
+ });
34
+ Object.defineProperty(this, "options", {
35
+ enumerable: true,
36
+ configurable: true,
37
+ writable: true,
38
+ value: void 0
39
+ });
40
+ Object.defineProperty(this, "browserbase", {
41
+ enumerable: true,
42
+ configurable: true,
43
+ writable: true,
44
+ value: void 0
45
+ });
46
+ this.urls = urls;
47
+ this.options = options;
48
+ this.browserbase = new Browserbase(options.apiKey);
49
+ }
50
+ /**
51
+ * Load pages from URLs.
52
+ *
53
+ * @returns {Promise<DocumentInterface[]>} - A promise which resolves to a list of documents.
54
+ */
55
+ async load() {
56
+ const documents = [];
57
+ for await (const doc of this.lazyLoad()) {
58
+ documents.push(doc);
59
+ }
60
+ return documents;
61
+ }
62
+ /**
63
+ * Load pages from URLs.
64
+ *
65
+ * @returns {Generator<DocumentInterface>} - A generator that yields documents.
66
+ */
67
+ async *lazyLoad() {
68
+ const pages = await this.browserbase.loadURLs(this.urls, this.options);
69
+ let index = 0;
70
+ for await (const page of pages) {
71
+ yield new Document({
72
+ pageContent: page,
73
+ metadata: {
74
+ url: this.urls[index],
75
+ },
76
+ });
77
+ index += index + 1;
78
+ }
79
+ }
80
+ }
@@ -153,8 +153,8 @@ class S3Loader extends base_js_1.BaseDocumentLoader {
153
153
  const docs = await unstructuredLoader.load();
154
154
  return docs;
155
155
  }
156
- catch {
157
- throw new Error(`Failed to load file ${filePath} using unstructured loader.`);
156
+ catch (e) {
157
+ throw new Error(`Failed to load file ${filePath} using unstructured loader: ${e.message}`);
158
158
  }
159
159
  }
160
160
  }
@@ -127,8 +127,8 @@ export class S3Loader extends BaseDocumentLoader {
127
127
  const docs = await unstructuredLoader.load();
128
128
  return docs;
129
129
  }
130
- catch {
131
- throw new Error(`Failed to load file ${filePath} using unstructured loader.`);
130
+ catch (e) {
131
+ throw new Error(`Failed to load file ${filePath} using unstructured loader: ${e.message}`);
132
132
  }
133
133
  }
134
134
  }
@@ -3,49 +3,6 @@
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.getDynamicImportMap = void 0;
5
5
  async function getDynamicImportMap() {
6
- const chat_models__fireworks = {};
7
- try {
8
- const dynamicImports = await import("@langchain/community/chat_models/fireworks");
9
- chat_models__fireworks.ChatFireworks = dynamicImports.ChatFireworks;
10
- }
11
- catch (e) { }
12
- const llms__fireworks = {};
13
- try {
14
- const dynamicImports = await import("@langchain/community/llms/fireworks");
15
- llms__fireworks.Fireworks = dynamicImports.Fireworks;
16
- }
17
- catch (e) { }
18
- const chat_models__bedrock = {};
19
- try {
20
- const dynamicImports = await import("@langchain/community/chat_models/bedrock");
21
- chat_models__bedrock.BedrockChat = dynamicImports.BedrockChat;
22
- }
23
- catch (e) { }
24
- const llms__bedrock = {};
25
- try {
26
- const dynamicImports = await import("@langchain/community/llms/bedrock");
27
- llms__bedrock.Bedrock = dynamicImports.Bedrock;
28
- }
29
- catch (e) { }
30
- const chat_models__anthropic = {};
31
- try {
32
- const dynamicImports = await import("@langchain/anthropic");
33
- chat_models__anthropic.ChatAnthropic = dynamicImports.ChatAnthropic;
34
- }
35
- catch (e) { }
36
- const llms__replicate = {};
37
- try {
38
- const dynamicImports = await import("@langchain/community/llms/replicate");
39
- llms__replicate.Replicate = dynamicImports.Replicate;
40
- }
41
- catch (e) { }
42
- return {
43
- chat_models__fireworks,
44
- llms__fireworks,
45
- chat_models__bedrock,
46
- llms__bedrock,
47
- chat_models__anthropic,
48
- llms__replicate
49
- };
6
+ return {};
50
7
  }
51
8
  exports.getDynamicImportMap = getDynamicImportMap;
@@ -1,8 +1 @@
1
- export declare function getDynamicImportMap(): Promise<{
2
- chat_models__fireworks: Record<string, any>;
3
- llms__fireworks: Record<string, any>;
4
- chat_models__bedrock: Record<string, any>;
5
- llms__bedrock: Record<string, any>;
6
- chat_models__anthropic: Record<string, any>;
7
- llms__replicate: Record<string, any>;
8
- }>;
1
+ export declare function getDynamicImportMap(): Promise<{}>;
@@ -1,47 +1,4 @@
1
1
  // Auto-generated by `scripts/create-entrypoints.js`. Do not edit manually.
2
2
  export async function getDynamicImportMap() {
3
- const chat_models__fireworks = {};
4
- try {
5
- const dynamicImports = await import("@langchain/community/chat_models/fireworks");
6
- chat_models__fireworks.ChatFireworks = dynamicImports.ChatFireworks;
7
- }
8
- catch (e) { }
9
- const llms__fireworks = {};
10
- try {
11
- const dynamicImports = await import("@langchain/community/llms/fireworks");
12
- llms__fireworks.Fireworks = dynamicImports.Fireworks;
13
- }
14
- catch (e) { }
15
- const chat_models__bedrock = {};
16
- try {
17
- const dynamicImports = await import("@langchain/community/chat_models/bedrock");
18
- chat_models__bedrock.BedrockChat = dynamicImports.BedrockChat;
19
- }
20
- catch (e) { }
21
- const llms__bedrock = {};
22
- try {
23
- const dynamicImports = await import("@langchain/community/llms/bedrock");
24
- llms__bedrock.Bedrock = dynamicImports.Bedrock;
25
- }
26
- catch (e) { }
27
- const chat_models__anthropic = {};
28
- try {
29
- const dynamicImports = await import("@langchain/anthropic");
30
- chat_models__anthropic.ChatAnthropic = dynamicImports.ChatAnthropic;
31
- }
32
- catch (e) { }
33
- const llms__replicate = {};
34
- try {
35
- const dynamicImports = await import("@langchain/community/llms/replicate");
36
- llms__replicate.Replicate = dynamicImports.Replicate;
37
- }
38
- catch (e) { }
39
- return {
40
- chat_models__fireworks,
41
- llms__fireworks,
42
- chat_models__bedrock,
43
- llms__bedrock,
44
- chat_models__anthropic,
45
- llms__replicate
46
- };
3
+ return {};
47
4
  }
@@ -16,6 +16,7 @@ exports.optionalImportEntrypoints = [
16
16
  "langchain/document_loaders/web/assemblyai",
17
17
  "langchain/document_loaders/web/azure_blob_storage_container",
18
18
  "langchain/document_loaders/web/azure_blob_storage_file",
19
+ "langchain/document_loaders/web/browserbase",
19
20
  "langchain/document_loaders/web/cheerio",
20
21
  "langchain/document_loaders/web/puppeteer",
21
22
  "langchain/document_loaders/web/playwright",
@@ -13,6 +13,7 @@ export const optionalImportEntrypoints = [
13
13
  "langchain/document_loaders/web/assemblyai",
14
14
  "langchain/document_loaders/web/azure_blob_storage_container",
15
15
  "langchain/document_loaders/web/azure_blob_storage_file",
16
+ "langchain/document_loaders/web/browserbase",
16
17
  "langchain/document_loaders/web/cheerio",
17
18
  "langchain/document_loaders/web/puppeteer",
18
19
  "langchain/document_loaders/web/playwright",
@@ -27,7 +27,6 @@ exports.load = void 0;
27
27
  const load_1 = require("@langchain/core/load");
28
28
  const import_constants_js_1 = require("./import_constants.cjs");
29
29
  const importMap = __importStar(require("./import_map.cjs"));
30
- const dynamic_import_map_js_1 = require("./dynamic_import_map.cjs");
31
30
  /**
32
31
  * Load a LangChain module from a serialized text representation.
33
32
  * NOTE: This functionality is currently in beta.
@@ -42,12 +41,11 @@ async function load(text,
42
41
  secretsMap = {},
43
42
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
44
43
  optionalImportsMap = {}) {
45
- const dynamicImportMap = await (0, dynamic_import_map_js_1.getDynamicImportMap)();
46
44
  return (0, load_1.load)(text, {
47
45
  secretsMap,
48
46
  optionalImportsMap,
49
47
  optionalImportEntrypoints: import_constants_js_1.optionalImportEntrypoints,
50
- importMap: { ...importMap, ...dynamicImportMap },
48
+ importMap: { ...importMap },
51
49
  });
52
50
  }
53
51
  exports.load = load;
@@ -1,7 +1,6 @@
1
1
  import { load as coreLoad } from "@langchain/core/load";
2
2
  import { optionalImportEntrypoints } from "./import_constants.js";
3
3
  import * as importMap from "./import_map.js";
4
- import { getDynamicImportMap } from "./dynamic_import_map.js";
5
4
  /**
6
5
  * Load a LangChain module from a serialized text representation.
7
6
  * NOTE: This functionality is currently in beta.
@@ -16,11 +15,10 @@ export async function load(text,
16
15
  secretsMap = {},
17
16
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
18
17
  optionalImportsMap = {}) {
19
- const dynamicImportMap = await getDynamicImportMap();
20
18
  return coreLoad(text, {
21
19
  secretsMap,
22
20
  optionalImportsMap,
23
21
  optionalImportEntrypoints,
24
- importMap: { ...importMap, ...dynamicImportMap },
22
+ importMap: { ...importMap },
25
23
  });
26
24
  }
@@ -16,10 +16,10 @@ export type EvaluatorInputFormatter = ({ rawInput, rawPrediction, rawReferenceOu
16
16
  rawReferenceOutput?: any;
17
17
  run: Run;
18
18
  }) => EvaluatorInputs;
19
- export type DynamicRunEvaluatorParams = {
20
- input: Record<string, unknown>;
21
- prediction?: Record<string, unknown>;
22
- reference?: Record<string, unknown>;
19
+ export type DynamicRunEvaluatorParams<Input extends Record<string, any> = Record<string, unknown>, Prediction extends Record<string, any> = Record<string, unknown>, Reference extends Record<string, any> = Record<string, unknown>> = {
20
+ input: Input;
21
+ prediction?: Prediction;
22
+ reference?: Reference;
23
23
  run: Run;
24
24
  example?: Example;
25
25
  };
@@ -0,0 +1 @@
1
+ module.exports = require('../../dist/document_loaders/web/browserbase.cjs');
@@ -0,0 +1 @@
1
+ export * from '../../dist/document_loaders/web/browserbase.js'
@@ -0,0 +1 @@
1
+ export * from '../../dist/document_loaders/web/browserbase.js'
@@ -0,0 +1 @@
1
+ export * from '../../dist/document_loaders/web/browserbase.js'
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "langchain",
3
- "version": "0.2.0-rc.0",
3
+ "version": "0.2.0-rc.1",
4
4
  "description": "Typescript bindings for langchain",
5
5
  "type": "module",
6
6
  "engines": {
@@ -182,6 +182,10 @@
182
182
  "document_loaders/web/azure_blob_storage_file.js",
183
183
  "document_loaders/web/azure_blob_storage_file.d.ts",
184
184
  "document_loaders/web/azure_blob_storage_file.d.cts",
185
+ "document_loaders/web/browserbase.cjs",
186
+ "document_loaders/web/browserbase.js",
187
+ "document_loaders/web/browserbase.d.ts",
188
+ "document_loaders/web/browserbase.d.cts",
185
189
  "document_loaders/web/cheerio.cjs",
186
190
  "document_loaders/web/cheerio.js",
187
191
  "document_loaders/web/cheerio.d.ts",
@@ -578,6 +582,7 @@
578
582
  "@aws-sdk/credential-provider-node": "^3.388.0",
579
583
  "@aws-sdk/types": "^3.357.0",
580
584
  "@azure/storage-blob": "^12.15.0",
585
+ "@browserbasehq/sdk": "^1.0.0",
581
586
  "@cloudflare/workers-types": "^4.20230922.0",
582
587
  "@faker-js/faker": "^7.6.0",
583
588
  "@gomomento/sdk": "^1.51.1",
@@ -665,6 +670,7 @@
665
670
  "@aws-sdk/client-sfn": "^3.310.0",
666
671
  "@aws-sdk/credential-provider-node": "^3.388.0",
667
672
  "@azure/storage-blob": "^12.15.0",
673
+ "@browserbasehq/sdk": "*",
668
674
  "@gomomento/sdk": "^1.51.1",
669
675
  "@gomomento/sdk-core": "^1.51.1",
670
676
  "@gomomento/sdk-web": "^1.51.1",
@@ -726,6 +732,9 @@
726
732
  "@azure/storage-blob": {
727
733
  "optional": true
728
734
  },
735
+ "@browserbasehq/sdk": {
736
+ "optional": true
737
+ },
729
738
  "@gomomento/sdk": {
730
739
  "optional": true
731
740
  },
@@ -1285,6 +1294,15 @@
1285
1294
  "import": "./document_loaders/web/azure_blob_storage_file.js",
1286
1295
  "require": "./document_loaders/web/azure_blob_storage_file.cjs"
1287
1296
  },
1297
+ "./document_loaders/web/browserbase": {
1298
+ "types": {
1299
+ "import": "./document_loaders/web/browserbase.d.ts",
1300
+ "require": "./document_loaders/web/browserbase.d.cts",
1301
+ "default": "./document_loaders/web/browserbase.d.ts"
1302
+ },
1303
+ "import": "./document_loaders/web/browserbase.js",
1304
+ "require": "./document_loaders/web/browserbase.cjs"
1305
+ },
1288
1306
  "./document_loaders/web/cheerio": {
1289
1307
  "types": {
1290
1308
  "import": "./document_loaders/web/cheerio.d.ts",