langchain 0.0.197 → 0.0.199

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.
Files changed (85) hide show
  1. package/dist/agents/index.d.ts +1 -1
  2. package/dist/chains/conversational_retrieval_chain.cjs +16 -2
  3. package/dist/chains/conversational_retrieval_chain.d.ts +2 -0
  4. package/dist/chains/conversational_retrieval_chain.js +16 -2
  5. package/dist/chat_models/llama_cpp.cjs +45 -0
  6. package/dist/chat_models/llama_cpp.d.ts +4 -1
  7. package/dist/chat_models/llama_cpp.js +45 -0
  8. package/dist/document_loaders/fs/chatgpt.cjs +85 -0
  9. package/dist/document_loaders/fs/chatgpt.d.ts +8 -0
  10. package/dist/document_loaders/fs/chatgpt.js +81 -0
  11. package/dist/document_loaders/fs/pptx.cjs +39 -0
  12. package/dist/document_loaders/fs/pptx.d.ts +23 -0
  13. package/dist/document_loaders/fs/pptx.js +35 -0
  14. package/dist/document_loaders/web/confluence.cjs +31 -7
  15. package/dist/document_loaders/web/confluence.d.ts +12 -5
  16. package/dist/document_loaders/web/confluence.js +31 -7
  17. package/dist/experimental/openai_assistant/index.cjs +32 -0
  18. package/dist/experimental/openai_assistant/index.d.ts +26 -0
  19. package/dist/experimental/openai_assistant/index.js +32 -0
  20. package/dist/experimental/tools/pyinterpreter.cjs +248 -0
  21. package/dist/experimental/tools/pyinterpreter.d.ts +18 -0
  22. package/dist/experimental/tools/pyinterpreter.js +244 -0
  23. package/dist/graphs/neo4j_graph.cjs +49 -14
  24. package/dist/graphs/neo4j_graph.d.ts +30 -0
  25. package/dist/graphs/neo4j_graph.js +49 -14
  26. package/dist/llms/gradient_ai.cjs +98 -0
  27. package/dist/llms/gradient_ai.d.ts +50 -0
  28. package/dist/llms/gradient_ai.js +94 -0
  29. package/dist/llms/hf.cjs +13 -2
  30. package/dist/llms/hf.d.ts +5 -0
  31. package/dist/llms/hf.js +13 -2
  32. package/dist/llms/llama_cpp.cjs +17 -3
  33. package/dist/llms/llama_cpp.d.ts +4 -1
  34. package/dist/llms/llama_cpp.js +17 -3
  35. package/dist/llms/watsonx_ai.cjs +154 -0
  36. package/dist/llms/watsonx_ai.d.ts +72 -0
  37. package/dist/llms/watsonx_ai.js +150 -0
  38. package/dist/load/import_constants.cjs +6 -0
  39. package/dist/load/import_constants.js +6 -0
  40. package/dist/load/import_map.cjs +4 -3
  41. package/dist/load/import_map.d.ts +1 -0
  42. package/dist/load/import_map.js +1 -0
  43. package/dist/output_parsers/json.cjs +4 -0
  44. package/dist/output_parsers/json.js +4 -0
  45. package/dist/tools/google_places.cjs +81 -0
  46. package/dist/tools/google_places.d.ts +21 -0
  47. package/dist/tools/google_places.js +77 -0
  48. package/dist/vectorstores/clickhouse.cjs +286 -0
  49. package/dist/vectorstores/clickhouse.d.ts +126 -0
  50. package/dist/vectorstores/clickhouse.js +259 -0
  51. package/dist/vectorstores/elasticsearch.cjs +16 -3
  52. package/dist/vectorstores/elasticsearch.d.ts +6 -2
  53. package/dist/vectorstores/elasticsearch.js +16 -3
  54. package/dist/vectorstores/pgvector.cjs +142 -18
  55. package/dist/vectorstores/pgvector.d.ts +21 -0
  56. package/dist/vectorstores/pgvector.js +142 -18
  57. package/dist/vectorstores/prisma.cjs +1 -1
  58. package/dist/vectorstores/prisma.js +1 -1
  59. package/dist/vectorstores/weaviate.cjs +45 -2
  60. package/dist/vectorstores/weaviate.d.ts +27 -1
  61. package/dist/vectorstores/weaviate.js +45 -2
  62. package/dist/vectorstores/xata.cjs +3 -2
  63. package/dist/vectorstores/xata.js +3 -2
  64. package/document_loaders/fs/chatgpt.cjs +1 -0
  65. package/document_loaders/fs/chatgpt.d.ts +1 -0
  66. package/document_loaders/fs/chatgpt.js +1 -0
  67. package/document_loaders/fs/pptx.cjs +1 -0
  68. package/document_loaders/fs/pptx.d.ts +1 -0
  69. package/document_loaders/fs/pptx.js +1 -0
  70. package/experimental/tools/pyinterpreter.cjs +1 -0
  71. package/experimental/tools/pyinterpreter.d.ts +1 -0
  72. package/experimental/tools/pyinterpreter.js +1 -0
  73. package/llms/gradient_ai.cjs +1 -0
  74. package/llms/gradient_ai.d.ts +1 -0
  75. package/llms/gradient_ai.js +1 -0
  76. package/llms/watsonx_ai.cjs +1 -0
  77. package/llms/watsonx_ai.d.ts +1 -0
  78. package/llms/watsonx_ai.js +1 -0
  79. package/package.json +87 -13
  80. package/tools/google_places.cjs +1 -0
  81. package/tools/google_places.d.ts +1 -0
  82. package/tools/google_places.js +1 -0
  83. package/vectorstores/clickhouse.cjs +1 -0
  84. package/vectorstores/clickhouse.d.ts +1 -0
  85. package/vectorstores/clickhouse.js +1 -0
@@ -0,0 +1,154 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.WatsonxAI = void 0;
4
+ const base_js_1 = require("./base.cjs");
5
+ const env_js_1 = require("../util/env.cjs");
6
+ const endpointConstructor = (region, version) => `https://${region}.ml.cloud.ibm.com/ml/v1-beta/generation/text?version=${version}`;
7
+ /**
8
+ * The WatsonxAI class is used to interact with Watsonx AI
9
+ * Inference Endpoint models. It uses IBM Cloud for authentication.
10
+ * This requires your IBM Cloud API Key which is autoloaded if not specified.
11
+ */
12
+ class WatsonxAI extends base_js_1.LLM {
13
+ static lc_name() {
14
+ return "WatsonxAI";
15
+ }
16
+ get lc_secrets() {
17
+ return {
18
+ ibmCloudApiKey: "IBM_CLOUD_API_KEY",
19
+ projectId: "WATSONX_PROJECT_ID",
20
+ };
21
+ }
22
+ constructor(fields) {
23
+ super(fields);
24
+ Object.defineProperty(this, "endpoint", {
25
+ enumerable: true,
26
+ configurable: true,
27
+ writable: true,
28
+ value: void 0
29
+ });
30
+ Object.defineProperty(this, "region", {
31
+ enumerable: true,
32
+ configurable: true,
33
+ writable: true,
34
+ value: "us-south"
35
+ });
36
+ Object.defineProperty(this, "version", {
37
+ enumerable: true,
38
+ configurable: true,
39
+ writable: true,
40
+ value: "2023-05-29"
41
+ });
42
+ Object.defineProperty(this, "modelId", {
43
+ enumerable: true,
44
+ configurable: true,
45
+ writable: true,
46
+ value: "meta-llama/llama-2-70b-chat"
47
+ });
48
+ Object.defineProperty(this, "modelKwargs", {
49
+ enumerable: true,
50
+ configurable: true,
51
+ writable: true,
52
+ value: void 0
53
+ });
54
+ Object.defineProperty(this, "ibmCloudApiKey", {
55
+ enumerable: true,
56
+ configurable: true,
57
+ writable: true,
58
+ value: void 0
59
+ });
60
+ Object.defineProperty(this, "ibmCloudToken", {
61
+ enumerable: true,
62
+ configurable: true,
63
+ writable: true,
64
+ value: void 0
65
+ });
66
+ Object.defineProperty(this, "ibmCloudTokenExpiresAt", {
67
+ enumerable: true,
68
+ configurable: true,
69
+ writable: true,
70
+ value: void 0
71
+ });
72
+ Object.defineProperty(this, "projectId", {
73
+ enumerable: true,
74
+ configurable: true,
75
+ writable: true,
76
+ value: void 0
77
+ });
78
+ Object.defineProperty(this, "modelParameters", {
79
+ enumerable: true,
80
+ configurable: true,
81
+ writable: true,
82
+ value: void 0
83
+ });
84
+ this.region = fields?.region ?? this.region;
85
+ this.version = fields?.version ?? this.version;
86
+ this.modelId = fields?.modelId ?? this.modelId;
87
+ this.ibmCloudApiKey =
88
+ fields?.ibmCloudApiKey ?? (0, env_js_1.getEnvironmentVariable)("IBM_CLOUD_API_KEY");
89
+ this.projectId =
90
+ fields?.projectId ?? (0, env_js_1.getEnvironmentVariable)("WATSONX_PROJECT_ID");
91
+ this.endpoint =
92
+ fields?.endpoint ?? endpointConstructor(this.region, this.version);
93
+ this.modelParameters = fields.modelParameters;
94
+ if (!this.ibmCloudApiKey) {
95
+ throw new Error("Missing IBM Cloud API Key");
96
+ }
97
+ if (!this.projectId) {
98
+ throw new Error("Missing WatsonX AI Project ID");
99
+ }
100
+ }
101
+ _llmType() {
102
+ return "watsonx_ai";
103
+ }
104
+ /**
105
+ * Calls the WatsonX AI endpoint and retrieves the result.
106
+ * @param {string} prompt The input prompt.
107
+ * @returns {Promise<string>} A promise that resolves to the generated string.
108
+ */
109
+ /** @ignore */
110
+ async _call(prompt, _options) {
111
+ const response = (await this.caller.call(async () => fetch(this.endpoint, {
112
+ method: "POST",
113
+ headers: {
114
+ "Content-Type": "application/json",
115
+ Accept: "application/json",
116
+ Authorization: `Bearer ${await this.generateToken()}`,
117
+ },
118
+ body: JSON.stringify({
119
+ project_id: this.projectId,
120
+ model_id: this.modelId,
121
+ input: prompt,
122
+ parameters: this.modelParameters,
123
+ }),
124
+ }).then((res) => res.json())));
125
+ /**
126
+ * Handle Errors for invalid requests.
127
+ */
128
+ if (response.errors) {
129
+ throw new Error(response.errors[0].message);
130
+ }
131
+ return response.results[0].generated_text;
132
+ }
133
+ async generateToken() {
134
+ if (this.ibmCloudToken && this.ibmCloudTokenExpiresAt) {
135
+ if (this.ibmCloudTokenExpiresAt > Date.now()) {
136
+ return this.ibmCloudToken;
137
+ }
138
+ }
139
+ const urlTokenParams = new URLSearchParams();
140
+ urlTokenParams.append("grant_type", "urn:ibm:params:oauth:grant-type:apikey");
141
+ urlTokenParams.append("apikey", this.ibmCloudApiKey);
142
+ const data = (await fetch("https://iam.cloud.ibm.com/identity/token", {
143
+ method: "POST",
144
+ headers: {
145
+ "Content-Type": "application/x-www-form-urlencoded",
146
+ },
147
+ body: urlTokenParams,
148
+ }).then((res) => res.json()));
149
+ this.ibmCloudTokenExpiresAt = data.expiration * 1000;
150
+ this.ibmCloudToken = data.access_token;
151
+ return this.ibmCloudToken;
152
+ }
153
+ }
154
+ exports.WatsonxAI = WatsonxAI;
@@ -0,0 +1,72 @@
1
+ import { BaseLLMCallOptions, BaseLLMParams, LLM } from "./base.js";
2
+ /**
3
+ * The WatsonxAIParams interface defines the input parameters for
4
+ * the WatsonxAI class.
5
+ */
6
+ export interface WatsonxAIParams extends BaseLLMParams {
7
+ /**
8
+ * WatsonX AI Complete Endpoint.
9
+ * Can be used if you want a fully custom endpoint.
10
+ */
11
+ endpoint?: string;
12
+ /**
13
+ * IBM Cloud Compute Region.
14
+ * eg. us-south, us-east, etc.
15
+ */
16
+ region?: string;
17
+ /**
18
+ * WatsonX AI Version.
19
+ * Date representing the WatsonX AI Version.
20
+ * eg. 2023-05-29
21
+ */
22
+ version?: string;
23
+ /**
24
+ * WatsonX AI Key.
25
+ * Provide API Key if you do not wish to automatically pull from env.
26
+ */
27
+ ibmCloudApiKey?: string;
28
+ /**
29
+ * WatsonX AI Key.
30
+ * Provide API Key if you do not wish to automatically pull from env.
31
+ */
32
+ projectId?: string;
33
+ /**
34
+ * Parameters accepted by the WatsonX AI Endpoint.
35
+ */
36
+ modelParameters?: Record<string, unknown>;
37
+ /**
38
+ * WatsonX AI Model ID.
39
+ */
40
+ modelId?: string;
41
+ }
42
+ /**
43
+ * The WatsonxAI class is used to interact with Watsonx AI
44
+ * Inference Endpoint models. It uses IBM Cloud for authentication.
45
+ * This requires your IBM Cloud API Key which is autoloaded if not specified.
46
+ */
47
+ export declare class WatsonxAI extends LLM<BaseLLMCallOptions> {
48
+ static lc_name(): string;
49
+ get lc_secrets(): {
50
+ [key: string]: string;
51
+ } | undefined;
52
+ endpoint: string;
53
+ region: string;
54
+ version: string;
55
+ modelId: string;
56
+ modelKwargs?: Record<string, unknown>;
57
+ ibmCloudApiKey?: string;
58
+ ibmCloudToken?: string;
59
+ ibmCloudTokenExpiresAt?: number;
60
+ projectId?: string;
61
+ modelParameters?: Record<string, unknown>;
62
+ constructor(fields: WatsonxAIParams);
63
+ _llmType(): string;
64
+ /**
65
+ * Calls the WatsonX AI endpoint and retrieves the result.
66
+ * @param {string} prompt The input prompt.
67
+ * @returns {Promise<string>} A promise that resolves to the generated string.
68
+ */
69
+ /** @ignore */
70
+ _call(prompt: string, _options: this["ParsedCallOptions"]): Promise<string>;
71
+ generateToken(): Promise<string>;
72
+ }
@@ -0,0 +1,150 @@
1
+ import { LLM } from "./base.js";
2
+ import { getEnvironmentVariable } from "../util/env.js";
3
+ const endpointConstructor = (region, version) => `https://${region}.ml.cloud.ibm.com/ml/v1-beta/generation/text?version=${version}`;
4
+ /**
5
+ * The WatsonxAI class is used to interact with Watsonx AI
6
+ * Inference Endpoint models. It uses IBM Cloud for authentication.
7
+ * This requires your IBM Cloud API Key which is autoloaded if not specified.
8
+ */
9
+ export class WatsonxAI extends LLM {
10
+ static lc_name() {
11
+ return "WatsonxAI";
12
+ }
13
+ get lc_secrets() {
14
+ return {
15
+ ibmCloudApiKey: "IBM_CLOUD_API_KEY",
16
+ projectId: "WATSONX_PROJECT_ID",
17
+ };
18
+ }
19
+ constructor(fields) {
20
+ super(fields);
21
+ Object.defineProperty(this, "endpoint", {
22
+ enumerable: true,
23
+ configurable: true,
24
+ writable: true,
25
+ value: void 0
26
+ });
27
+ Object.defineProperty(this, "region", {
28
+ enumerable: true,
29
+ configurable: true,
30
+ writable: true,
31
+ value: "us-south"
32
+ });
33
+ Object.defineProperty(this, "version", {
34
+ enumerable: true,
35
+ configurable: true,
36
+ writable: true,
37
+ value: "2023-05-29"
38
+ });
39
+ Object.defineProperty(this, "modelId", {
40
+ enumerable: true,
41
+ configurable: true,
42
+ writable: true,
43
+ value: "meta-llama/llama-2-70b-chat"
44
+ });
45
+ Object.defineProperty(this, "modelKwargs", {
46
+ enumerable: true,
47
+ configurable: true,
48
+ writable: true,
49
+ value: void 0
50
+ });
51
+ Object.defineProperty(this, "ibmCloudApiKey", {
52
+ enumerable: true,
53
+ configurable: true,
54
+ writable: true,
55
+ value: void 0
56
+ });
57
+ Object.defineProperty(this, "ibmCloudToken", {
58
+ enumerable: true,
59
+ configurable: true,
60
+ writable: true,
61
+ value: void 0
62
+ });
63
+ Object.defineProperty(this, "ibmCloudTokenExpiresAt", {
64
+ enumerable: true,
65
+ configurable: true,
66
+ writable: true,
67
+ value: void 0
68
+ });
69
+ Object.defineProperty(this, "projectId", {
70
+ enumerable: true,
71
+ configurable: true,
72
+ writable: true,
73
+ value: void 0
74
+ });
75
+ Object.defineProperty(this, "modelParameters", {
76
+ enumerable: true,
77
+ configurable: true,
78
+ writable: true,
79
+ value: void 0
80
+ });
81
+ this.region = fields?.region ?? this.region;
82
+ this.version = fields?.version ?? this.version;
83
+ this.modelId = fields?.modelId ?? this.modelId;
84
+ this.ibmCloudApiKey =
85
+ fields?.ibmCloudApiKey ?? getEnvironmentVariable("IBM_CLOUD_API_KEY");
86
+ this.projectId =
87
+ fields?.projectId ?? getEnvironmentVariable("WATSONX_PROJECT_ID");
88
+ this.endpoint =
89
+ fields?.endpoint ?? endpointConstructor(this.region, this.version);
90
+ this.modelParameters = fields.modelParameters;
91
+ if (!this.ibmCloudApiKey) {
92
+ throw new Error("Missing IBM Cloud API Key");
93
+ }
94
+ if (!this.projectId) {
95
+ throw new Error("Missing WatsonX AI Project ID");
96
+ }
97
+ }
98
+ _llmType() {
99
+ return "watsonx_ai";
100
+ }
101
+ /**
102
+ * Calls the WatsonX AI endpoint and retrieves the result.
103
+ * @param {string} prompt The input prompt.
104
+ * @returns {Promise<string>} A promise that resolves to the generated string.
105
+ */
106
+ /** @ignore */
107
+ async _call(prompt, _options) {
108
+ const response = (await this.caller.call(async () => fetch(this.endpoint, {
109
+ method: "POST",
110
+ headers: {
111
+ "Content-Type": "application/json",
112
+ Accept: "application/json",
113
+ Authorization: `Bearer ${await this.generateToken()}`,
114
+ },
115
+ body: JSON.stringify({
116
+ project_id: this.projectId,
117
+ model_id: this.modelId,
118
+ input: prompt,
119
+ parameters: this.modelParameters,
120
+ }),
121
+ }).then((res) => res.json())));
122
+ /**
123
+ * Handle Errors for invalid requests.
124
+ */
125
+ if (response.errors) {
126
+ throw new Error(response.errors[0].message);
127
+ }
128
+ return response.results[0].generated_text;
129
+ }
130
+ async generateToken() {
131
+ if (this.ibmCloudToken && this.ibmCloudTokenExpiresAt) {
132
+ if (this.ibmCloudTokenExpiresAt > Date.now()) {
133
+ return this.ibmCloudToken;
134
+ }
135
+ }
136
+ const urlTokenParams = new URLSearchParams();
137
+ urlTokenParams.append("grant_type", "urn:ibm:params:oauth:grant-type:apikey");
138
+ urlTokenParams.append("apikey", this.ibmCloudApiKey);
139
+ const data = (await fetch("https://iam.cloud.ibm.com/identity/token", {
140
+ method: "POST",
141
+ headers: {
142
+ "Content-Type": "application/x-www-form-urlencoded",
143
+ },
144
+ body: urlTokenParams,
145
+ }).then((res) => res.json()));
146
+ this.ibmCloudTokenExpiresAt = data.expiration * 1000;
147
+ this.ibmCloudToken = data.access_token;
148
+ return this.ibmCloudToken;
149
+ }
150
+ }
@@ -34,13 +34,16 @@ exports.optionalImportEntrypoints = [
34
34
  "langchain/llms/googlevertexai",
35
35
  "langchain/llms/googlevertexai/web",
36
36
  "langchain/llms/googlepalm",
37
+ "langchain/llms/gradient_ai",
37
38
  "langchain/llms/sagemaker_endpoint",
39
+ "langchain/llms/watsonx_ai",
38
40
  "langchain/llms/bedrock",
39
41
  "langchain/llms/bedrock/web",
40
42
  "langchain/llms/llama_cpp",
41
43
  "langchain/llms/writer",
42
44
  "langchain/llms/portkey",
43
45
  "langchain/prompts/load",
46
+ "langchain/vectorstores/clickhouse",
44
47
  "langchain/vectorstores/analyticdb",
45
48
  "langchain/vectorstores/cassandra",
46
49
  "langchain/vectorstores/convex",
@@ -99,6 +102,7 @@ exports.optionalImportEntrypoints = [
99
102
  "langchain/document_loaders/web/youtube",
100
103
  "langchain/document_loaders/fs/directory",
101
104
  "langchain/document_loaders/fs/buffer",
105
+ "langchain/document_loaders/fs/chatgpt",
102
106
  "langchain/document_loaders/fs/text",
103
107
  "langchain/document_loaders/fs/json",
104
108
  "langchain/document_loaders/fs/srt",
@@ -109,6 +113,7 @@ exports.optionalImportEntrypoints = [
109
113
  "langchain/document_loaders/fs/notion",
110
114
  "langchain/document_loaders/fs/unstructured",
111
115
  "langchain/document_loaders/fs/openai_whisper_audio",
116
+ "langchain/document_loaders/fs/pptx",
112
117
  "langchain/document_transformers/html_to_text",
113
118
  "langchain/document_transformers/mozilla_readability",
114
119
  "langchain/chat_models/portkey",
@@ -166,4 +171,5 @@ exports.optionalImportEntrypoints = [
166
171
  "langchain/experimental/chat_models/anthropic_functions",
167
172
  "langchain/experimental/llms/bittensor",
168
173
  "langchain/experimental/hubs/makersuite/googlemakersuitehub",
174
+ "langchain/experimental/tools/pyinterpreter",
169
175
  ];
@@ -31,13 +31,16 @@ export const optionalImportEntrypoints = [
31
31
  "langchain/llms/googlevertexai",
32
32
  "langchain/llms/googlevertexai/web",
33
33
  "langchain/llms/googlepalm",
34
+ "langchain/llms/gradient_ai",
34
35
  "langchain/llms/sagemaker_endpoint",
36
+ "langchain/llms/watsonx_ai",
35
37
  "langchain/llms/bedrock",
36
38
  "langchain/llms/bedrock/web",
37
39
  "langchain/llms/llama_cpp",
38
40
  "langchain/llms/writer",
39
41
  "langchain/llms/portkey",
40
42
  "langchain/prompts/load",
43
+ "langchain/vectorstores/clickhouse",
41
44
  "langchain/vectorstores/analyticdb",
42
45
  "langchain/vectorstores/cassandra",
43
46
  "langchain/vectorstores/convex",
@@ -96,6 +99,7 @@ export const optionalImportEntrypoints = [
96
99
  "langchain/document_loaders/web/youtube",
97
100
  "langchain/document_loaders/fs/directory",
98
101
  "langchain/document_loaders/fs/buffer",
102
+ "langchain/document_loaders/fs/chatgpt",
99
103
  "langchain/document_loaders/fs/text",
100
104
  "langchain/document_loaders/fs/json",
101
105
  "langchain/document_loaders/fs/srt",
@@ -106,6 +110,7 @@ export const optionalImportEntrypoints = [
106
110
  "langchain/document_loaders/fs/notion",
107
111
  "langchain/document_loaders/fs/unstructured",
108
112
  "langchain/document_loaders/fs/openai_whisper_audio",
113
+ "langchain/document_loaders/fs/pptx",
109
114
  "langchain/document_transformers/html_to_text",
110
115
  "langchain/document_transformers/mozilla_readability",
111
116
  "langchain/chat_models/portkey",
@@ -163,4 +168,5 @@ export const optionalImportEntrypoints = [
163
168
  "langchain/experimental/chat_models/anthropic_functions",
164
169
  "langchain/experimental/llms/bittensor",
165
170
  "langchain/experimental/hubs/makersuite/googlemakersuitehub",
171
+ "langchain/experimental/tools/pyinterpreter",
166
172
  ];
@@ -24,9 +24,9 @@ var __importStar = (this && this.__importStar) || function (mod) {
24
24
  return result;
25
25
  };
26
26
  Object.defineProperty(exports, "__esModule", { value: true });
27
- exports.chat_models__anthropic = exports.chat_models__openai = exports.chat_models__base = exports.document_transformers__openai_functions = exports.document_loaders__web__sort_xyz_blockchain = exports.document_loaders__web__serpapi = exports.document_loaders__web__searchapi = exports.document_loaders__base = exports.document = exports.memory = exports.text_splitter = exports.vectorstores__xata = exports.vectorstores__vectara = exports.vectorstores__prisma = exports.vectorstores__memory = exports.vectorstores__base = exports.prompts = exports.llms__fake = exports.llms__yandex = exports.llms__fireworks = exports.llms__ollama = exports.llms__cloudflare_workersai = exports.llms__aleph_alpha = exports.llms__ai21 = exports.llms__openai = exports.llms__base = exports.embeddings__voyage = exports.embeddings__minimax = exports.embeddings__openai = exports.embeddings__ollama = exports.embeddings__fake = exports.embeddings__cache_backed = exports.embeddings__base = exports.chains__openai_functions = exports.chains__combine_documents__reduce = exports.chains = exports.tools__render = exports.tools = exports.base_language = exports.agents__openai__output_parser = exports.agents__xml__output_parser = exports.agents__react__output_parser = exports.agents__format_scratchpad__log_to_message = exports.agents__format_scratchpad__xml = exports.agents__format_scratchpad__log = exports.agents__format_scratchpad__openai_tools = exports.agents__format_scratchpad = exports.agents__toolkits = exports.agents = exports.load__serializable = void 0;
28
- exports.experimental__chains__violation_of_expectations = exports.experimental__chat_models__ollama_functions = exports.experimental__chat_models__bittensor = exports.experimental__plan_and_execute = exports.experimental__generative_agents = exports.experimental__babyagi = exports.experimental__openai_files = exports.experimental__openai_assistant = exports.experimental__autogpt = exports.util__time = exports.util__math = exports.util__document = exports.storage__in_memory = exports.storage__encoder_backed = exports.stores__message__in_memory = exports.stores__file__in_memory = exports.stores__doc__in_memory = exports.cache = exports.retrievers__vespa = exports.retrievers__score_threshold = exports.retrievers__hyde = exports.retrievers__document_compressors__embeddings_filter = exports.retrievers__document_compressors__chain_extract = exports.retrievers__time_weighted = exports.retrievers__tavily_search_api = exports.retrievers__parent_document = exports.retrievers__multi_vector = exports.retrievers__multi_query = exports.retrievers__document_compressors = exports.retrievers__contextual_compression = exports.retrievers__databerry = exports.retrievers__chaindesk = exports.retrievers__remote = exports.output_parsers = exports.callbacks = exports.schema__storage = exports.schema__runnable = exports.schema__retriever = exports.schema__query_constructor = exports.schema__prompt_template = exports.schema__output_parser = exports.schema__document = exports.schema = exports.chat_models__fake = exports.chat_models__yandex = exports.chat_models__minimax = exports.chat_models__ollama = exports.chat_models__baiduwenxin = exports.chat_models__fireworks = exports.chat_models__cloudflare_workersai = void 0;
29
- exports.runnables__remote = exports.runnables = exports.evaluation = void 0;
27
+ exports.chat_models__openai = exports.chat_models__base = exports.document_transformers__openai_functions = exports.document_loaders__web__sort_xyz_blockchain = exports.document_loaders__web__serpapi = exports.document_loaders__web__searchapi = exports.document_loaders__base = exports.document = exports.memory = exports.text_splitter = exports.vectorstores__xata = exports.vectorstores__vectara = exports.vectorstores__prisma = exports.vectorstores__memory = exports.vectorstores__base = exports.prompts = exports.llms__fake = exports.llms__yandex = exports.llms__fireworks = exports.llms__ollama = exports.llms__cloudflare_workersai = exports.llms__aleph_alpha = exports.llms__ai21 = exports.llms__openai = exports.llms__base = exports.embeddings__voyage = exports.embeddings__minimax = exports.embeddings__openai = exports.embeddings__ollama = exports.embeddings__fake = exports.embeddings__cache_backed = exports.embeddings__base = exports.chains__openai_functions = exports.chains__combine_documents__reduce = exports.chains = exports.tools__google_places = exports.tools__render = exports.tools = exports.base_language = exports.agents__openai__output_parser = exports.agents__xml__output_parser = exports.agents__react__output_parser = exports.agents__format_scratchpad__log_to_message = exports.agents__format_scratchpad__xml = exports.agents__format_scratchpad__log = exports.agents__format_scratchpad__openai_tools = exports.agents__format_scratchpad = exports.agents__toolkits = exports.agents = exports.load__serializable = void 0;
28
+ exports.experimental__chat_models__ollama_functions = exports.experimental__chat_models__bittensor = exports.experimental__plan_and_execute = exports.experimental__generative_agents = exports.experimental__babyagi = exports.experimental__openai_files = exports.experimental__openai_assistant = exports.experimental__autogpt = exports.util__time = exports.util__math = exports.util__document = exports.storage__in_memory = exports.storage__encoder_backed = exports.stores__message__in_memory = exports.stores__file__in_memory = exports.stores__doc__in_memory = exports.cache = exports.retrievers__vespa = exports.retrievers__score_threshold = exports.retrievers__hyde = exports.retrievers__document_compressors__embeddings_filter = exports.retrievers__document_compressors__chain_extract = exports.retrievers__time_weighted = exports.retrievers__tavily_search_api = exports.retrievers__parent_document = exports.retrievers__multi_vector = exports.retrievers__multi_query = exports.retrievers__document_compressors = exports.retrievers__contextual_compression = exports.retrievers__databerry = exports.retrievers__chaindesk = exports.retrievers__remote = exports.output_parsers = exports.callbacks = exports.schema__storage = exports.schema__runnable = exports.schema__retriever = exports.schema__query_constructor = exports.schema__prompt_template = exports.schema__output_parser = exports.schema__document = exports.schema = exports.chat_models__fake = exports.chat_models__yandex = exports.chat_models__minimax = exports.chat_models__ollama = exports.chat_models__baiduwenxin = exports.chat_models__fireworks = exports.chat_models__cloudflare_workersai = exports.chat_models__anthropic = void 0;
29
+ exports.runnables__remote = exports.runnables = exports.evaluation = exports.experimental__chains__violation_of_expectations = void 0;
30
30
  exports.load__serializable = __importStar(require("../load/serializable.cjs"));
31
31
  exports.agents = __importStar(require("../agents/index.cjs"));
32
32
  exports.agents__toolkits = __importStar(require("../agents/toolkits/index.cjs"));
@@ -41,6 +41,7 @@ exports.agents__openai__output_parser = __importStar(require("../agents/openai/o
41
41
  exports.base_language = __importStar(require("../base_language/index.cjs"));
42
42
  exports.tools = __importStar(require("../tools/index.cjs"));
43
43
  exports.tools__render = __importStar(require("../tools/render.cjs"));
44
+ exports.tools__google_places = __importStar(require("../tools/google_places.cjs"));
44
45
  exports.chains = __importStar(require("../chains/index.cjs"));
45
46
  exports.chains__combine_documents__reduce = __importStar(require("../chains/combine_documents/reduce.cjs"));
46
47
  exports.chains__openai_functions = __importStar(require("../chains/openai_functions/index.cjs"));
@@ -12,6 +12,7 @@ export * as agents__openai__output_parser from "../agents/openai/output_parser.j
12
12
  export * as base_language from "../base_language/index.js";
13
13
  export * as tools from "../tools/index.js";
14
14
  export * as tools__render from "../tools/render.js";
15
+ export * as tools__google_places from "../tools/google_places.js";
15
16
  export * as chains from "../chains/index.js";
16
17
  export * as chains__combine_documents__reduce from "../chains/combine_documents/reduce.js";
17
18
  export * as chains__openai_functions from "../chains/openai_functions/index.js";
@@ -13,6 +13,7 @@ export * as agents__openai__output_parser from "../agents/openai/output_parser.j
13
13
  export * as base_language from "../base_language/index.js";
14
14
  export * as tools from "../tools/index.js";
15
15
  export * as tools__render from "../tools/render.js";
16
+ export * as tools__google_places from "../tools/google_places.js";
16
17
  export * as chains from "../chains/index.js";
17
18
  export * as chains__combine_documents__reduce from "../chains/combine_documents/reduce.js";
18
19
  export * as chains__openai_functions from "../chains/openai_functions/index.js";
@@ -4,6 +4,10 @@
4
4
  Object.defineProperty(exports, "__esModule", { value: true });
5
5
  exports.parsePartialJson = void 0;
6
6
  function parsePartialJson(s) {
7
+ // If the input is undefined, return null to indicate failure.
8
+ if (typeof s === "undefined") {
9
+ return null;
10
+ }
7
11
  // Attempt to parse the string as-is.
8
12
  try {
9
13
  return JSON.parse(s);
@@ -1,6 +1,10 @@
1
1
  // Adapted from https://github.com/KillianLucas/open-interpreter/blob/main/interpreter/utils/parse_partial_json.py
2
2
  // MIT License
3
3
  export function parsePartialJson(s) {
4
+ // If the input is undefined, return null to indicate failure.
5
+ if (typeof s === "undefined") {
6
+ return null;
7
+ }
4
8
  // Attempt to parse the string as-is.
5
9
  try {
6
10
  return JSON.parse(s);
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GooglePlacesAPI = void 0;
4
+ const env_js_1 = require("../util/env.cjs");
5
+ const base_js_1 = require("./base.cjs");
6
+ /**
7
+ * Tool that queries the Google Places API
8
+ */
9
+ class GooglePlacesAPI extends base_js_1.Tool {
10
+ static lc_name() {
11
+ return "GooglePlacesAPI";
12
+ }
13
+ get lc_secrets() {
14
+ return {
15
+ apiKey: "GOOGLE_PLACES_API_KEY",
16
+ };
17
+ }
18
+ constructor(fields) {
19
+ super(...arguments);
20
+ Object.defineProperty(this, "name", {
21
+ enumerable: true,
22
+ configurable: true,
23
+ writable: true,
24
+ value: "google_places"
25
+ });
26
+ Object.defineProperty(this, "apiKey", {
27
+ enumerable: true,
28
+ configurable: true,
29
+ writable: true,
30
+ value: void 0
31
+ });
32
+ Object.defineProperty(this, "description", {
33
+ enumerable: true,
34
+ configurable: true,
35
+ writable: true,
36
+ value: `A wrapper around Google Places API. Useful for when you need to validate or
37
+ discover addresses from ambiguous text. Input should be a search query.`
38
+ });
39
+ const apiKey = fields?.apiKey ?? (0, env_js_1.getEnvironmentVariable)("GOOGLE_PLACES_API_KEY");
40
+ if (apiKey === undefined) {
41
+ throw new Error(`Google Places API key not set. You can set it as "GOOGLE_PLACES_API_KEY" in your environment variables.`);
42
+ }
43
+ this.apiKey = apiKey;
44
+ }
45
+ async _call(input) {
46
+ const res = await fetch(`https://places.googleapis.com/v1/places:searchText`, {
47
+ method: "POST",
48
+ body: JSON.stringify({
49
+ textQuery: input,
50
+ languageCode: "en",
51
+ }),
52
+ headers: {
53
+ "X-Goog-Api-Key": this.apiKey,
54
+ "X-Goog-FieldMask": "places.displayName,places.formattedAddress,places.id,places.internationalPhoneNumber,places.websiteUri",
55
+ "Content-Type": "application/json",
56
+ },
57
+ });
58
+ if (!res.ok) {
59
+ let message;
60
+ try {
61
+ const json = await res.json();
62
+ message = json.error.message;
63
+ }
64
+ catch (e) {
65
+ message =
66
+ "Unable to parse error message: Google did not return a JSON response.";
67
+ }
68
+ throw new Error(`Got ${res.status}: ${res.statusText} error from Google Places API: ${message}`);
69
+ }
70
+ const json = await res.json();
71
+ const results = json?.places?.map((place) => ({
72
+ name: place.displayName?.text,
73
+ id: place.id,
74
+ address: place.formattedAddress,
75
+ phoneNumber: place.internationalPhoneNumber,
76
+ website: place.websiteUri,
77
+ })) ?? [];
78
+ return JSON.stringify(results);
79
+ }
80
+ }
81
+ exports.GooglePlacesAPI = GooglePlacesAPI;
@@ -0,0 +1,21 @@
1
+ import { Tool } from "./base.js";
2
+ /**
3
+ * Interface for parameters required by GooglePlacesAPI class.
4
+ */
5
+ export interface GooglePlacesAPIParams {
6
+ apiKey?: string;
7
+ }
8
+ /**
9
+ * Tool that queries the Google Places API
10
+ */
11
+ export declare class GooglePlacesAPI extends Tool {
12
+ static lc_name(): string;
13
+ get lc_secrets(): {
14
+ [key: string]: string;
15
+ } | undefined;
16
+ name: string;
17
+ protected apiKey: string;
18
+ description: string;
19
+ constructor(fields?: GooglePlacesAPIParams);
20
+ _call(input: string): Promise<string>;
21
+ }