@langchain/google-common 2.1.18 → 2.1.19
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/CHANGELOG.md +9 -0
- package/dist/auth.cjs +1 -2
- package/dist/auth.cjs.map +1 -1
- package/dist/auth.d.cts.map +1 -1
- package/dist/auth.d.ts.map +1 -1
- package/dist/auth.js +1 -2
- package/dist/auth.js.map +1 -1
- package/dist/chat_models.cjs +24 -27
- package/dist/chat_models.cjs.map +1 -1
- package/dist/chat_models.d.cts.map +1 -1
- package/dist/chat_models.d.ts.map +1 -1
- package/dist/chat_models.js +7 -9
- package/dist/chat_models.js.map +1 -1
- package/dist/connection.cjs +16 -26
- package/dist/connection.cjs.map +1 -1
- package/dist/connection.d.cts.map +1 -1
- package/dist/connection.d.ts.map +1 -1
- package/dist/connection.js +13 -22
- package/dist/connection.js.map +1 -1
- package/dist/embeddings.cjs +12 -22
- package/dist/embeddings.cjs.map +1 -1
- package/dist/embeddings.d.cts +0 -1
- package/dist/embeddings.d.cts.map +1 -1
- package/dist/embeddings.d.ts +0 -1
- package/dist/embeddings.d.ts.map +1 -1
- package/dist/embeddings.js +7 -16
- package/dist/embeddings.js.map +1 -1
- package/dist/experimental/media.cjs +41 -70
- package/dist/experimental/media.cjs.map +1 -1
- package/dist/experimental/media.d.cts.map +1 -1
- package/dist/experimental/media.d.ts.map +1 -1
- package/dist/experimental/media.js +36 -65
- package/dist/experimental/media.js.map +1 -1
- package/dist/experimental/utils/media_core.cjs +22 -39
- package/dist/experimental/utils/media_core.cjs.map +1 -1
- package/dist/experimental/utils/media_core.d.cts.map +1 -1
- package/dist/experimental/utils/media_core.d.ts.map +1 -1
- package/dist/experimental/utils/media_core.js +16 -33
- package/dist/experimental/utils/media_core.js.map +1 -1
- package/dist/index.cjs +1 -0
- package/dist/llms.cjs +14 -19
- package/dist/llms.cjs.map +1 -1
- package/dist/llms.d.cts.map +1 -1
- package/dist/llms.d.ts.map +1 -1
- package/dist/llms.js +4 -8
- package/dist/llms.js.map +1 -1
- package/dist/output_parsers.cjs +12 -29
- package/dist/output_parsers.cjs.map +1 -1
- package/dist/output_parsers.d.cts.map +1 -1
- package/dist/output_parsers.d.ts.map +1 -1
- package/dist/output_parsers.js +10 -26
- package/dist/output_parsers.js.map +1 -1
- package/dist/profiles.cjs +100 -17
- package/dist/profiles.cjs.map +1 -1
- package/dist/profiles.js +100 -17
- package/dist/profiles.js.map +1 -1
- package/dist/types-anthropic.d.cts.map +1 -1
- package/dist/types-anthropic.d.ts.map +1 -1
- package/dist/types.cjs +1 -0
- package/dist/types.cjs.map +1 -1
- package/dist/types.d.cts +0 -1
- package/dist/types.d.cts.map +1 -1
- package/dist/types.d.ts +0 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/dist/utils/anthropic.cjs +73 -113
- package/dist/utils/anthropic.cjs.map +1 -1
- package/dist/utils/anthropic.js +63 -102
- package/dist/utils/anthropic.js.map +1 -1
- package/dist/utils/common.cjs +10 -13
- package/dist/utils/common.cjs.map +1 -1
- package/dist/utils/common.d.cts.map +1 -1
- package/dist/utils/common.d.ts.map +1 -1
- package/dist/utils/common.js +6 -8
- package/dist/utils/common.js.map +1 -1
- package/dist/utils/failed_handler.cjs +1 -2
- package/dist/utils/failed_handler.cjs.map +1 -1
- package/dist/utils/failed_handler.d.cts.map +1 -1
- package/dist/utils/failed_handler.d.ts.map +1 -1
- package/dist/utils/failed_handler.js +1 -2
- package/dist/utils/failed_handler.js.map +1 -1
- package/dist/utils/gemini.cjs +83 -135
- package/dist/utils/gemini.cjs.map +1 -1
- package/dist/utils/gemini.d.cts.map +1 -1
- package/dist/utils/gemini.d.ts.map +1 -1
- package/dist/utils/gemini.js +58 -109
- package/dist/utils/gemini.js.map +1 -1
- package/dist/utils/index.cjs +1 -0
- package/dist/utils/palm.d.cts.map +1 -1
- package/dist/utils/palm.d.ts.map +1 -1
- package/dist/utils/safety.cjs.map +1 -1
- package/dist/utils/safety.d.cts.map +1 -1
- package/dist/utils/safety.d.ts.map +1 -1
- package/dist/utils/safety.js.map +1 -1
- package/dist/utils/stream.cjs +5 -9
- package/dist/utils/stream.cjs.map +1 -1
- package/dist/utils/stream.d.cts.map +1 -1
- package/dist/utils/stream.d.ts.map +1 -1
- package/dist/utils/stream.js +5 -9
- package/dist/utils/stream.js.map +1 -1
- package/dist/utils/zod_to_gemini_parameters.cjs +4 -7
- package/dist/utils/zod_to_gemini_parameters.cjs.map +1 -1
- package/dist/utils/zod_to_gemini_parameters.d.cts.map +1 -1
- package/dist/utils/zod_to_gemini_parameters.d.ts.map +1 -1
- package/dist/utils/zod_to_gemini_parameters.js +2 -4
- package/dist/utils/zod_to_gemini_parameters.js.map +1 -1
- package/package.json +3 -3
- package/dist/_virtual/rolldown_runtime.cjs +0 -25
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,14 @@
|
|
|
1
1
|
# @langchain/google-common
|
|
2
2
|
|
|
3
|
+
## 2.1.19
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [#10078](https://github.com/langchain-ai/langchainjs/pull/10078) [`7be50a7`](https://github.com/langchain-ai/langchainjs/commit/7be50a7014d7622e0ab8d303dfc9c633ebc96333) Thanks [@christian-bromann](https://github.com/christian-bromann)! - chore(\*): update model profiles
|
|
8
|
+
|
|
9
|
+
- Updated dependencies [[`27186c5`](https://github.com/langchain-ai/langchainjs/commit/27186c54884cfe7c2522fa50b42c3ca0ccaefdba), [`05396f7`](https://github.com/langchain-ai/langchainjs/commit/05396f7ce0a91c49a3bae4bbcd3dbdd6cbd18089), [`5a6f26b`](https://github.com/langchain-ai/langchainjs/commit/5a6f26bbaed80195dc538c538b96219a8b03f38f)]:
|
|
10
|
+
- @langchain/core@1.1.25
|
|
11
|
+
|
|
3
12
|
## 2.1.18
|
|
4
13
|
|
|
5
14
|
### Patch Changes
|
package/dist/auth.cjs
CHANGED
|
@@ -62,9 +62,8 @@ var GoogleAbstractedFetchClient = class {
|
|
|
62
62
|
const body = await res.text();
|
|
63
63
|
this._throwRequestError(res.status, body, res, context);
|
|
64
64
|
}
|
|
65
|
-
const data = await this._buildData(res, opts);
|
|
66
65
|
return {
|
|
67
|
-
data,
|
|
66
|
+
data: await this._buildData(res, opts),
|
|
68
67
|
config: {},
|
|
69
68
|
status: res.status,
|
|
70
69
|
statusText: res.statusText,
|
package/dist/auth.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.cjs","names":["
|
|
1
|
+
{"version":3,"file":"auth.cjs","names":["ReadableJsonStream"],"sources":["../src/auth.ts"],"sourcesContent":["import { ReadableJsonStream } from \"./utils/stream.js\";\nimport { GooglePlatformType } from \"./types.js\";\n\nexport type GoogleAbstractedClientOpsMethod = \"GET\" | \"POST\" | \"DELETE\";\n\nexport type GoogleAbstractedClientOpsResponseType = \"json\" | \"stream\" | \"blob\";\n\nexport type GoogleAbstractedClientOps = {\n url?: string;\n method?: GoogleAbstractedClientOpsMethod;\n headers?: Record<string, string>;\n data?: unknown;\n responseType?: GoogleAbstractedClientOpsResponseType;\n signal?: AbortSignal;\n};\n\nexport interface GoogleAbstractedClient {\n request: (opts: GoogleAbstractedClientOps) => unknown;\n getProjectId: () => Promise<string>;\n get clientType(): string;\n}\n\nexport abstract class GoogleAbstractedFetchClient implements GoogleAbstractedClient {\n abstract get clientType(): string;\n\n abstract getProjectId(): Promise<string>;\n\n abstract request(opts: GoogleAbstractedClientOps): unknown;\n\n _fetch: typeof fetch = fetch;\n\n async _buildData(res: Response, opts: GoogleAbstractedClientOps) {\n switch (opts.responseType) {\n case \"json\":\n return res.json();\n case \"stream\":\n return new ReadableJsonStream(res.body);\n default:\n return res.blob();\n }\n }\n\n /**\n * Build and throw a standardised Google request error.\n * Both the `!res.ok` path (native fetch) and the catch path (gaxios)\n * funnel through here so the caller always sees the same shape.\n */\n protected _throwRequestError(\n status: number,\n body: string | undefined,\n response: unknown,\n context: {\n url: string;\n opts: GoogleAbstractedClientOps;\n fetchOptions?: Record<string, unknown>;\n }\n ): never {\n const message = body\n ? `Google request failed with status code ${status}: ${body}`\n : `Google request failed with status code ${status}`;\n const error = new Error(message);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (error as any).response = response;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (error as any).details = context;\n throw error;\n }\n\n async _request(\n url: string | undefined,\n opts: GoogleAbstractedClientOps,\n additionalHeaders: Record<string, string>\n ) {\n if (url == null) throw new Error(\"Missing URL\");\n const fetchOptions: {\n method?: string;\n headers: Record<string, string>;\n body?: string;\n signal?: AbortSignal;\n } = {\n method: opts.method,\n headers: {\n \"Content-Type\": \"application/json\",\n ...(opts.headers ?? {}),\n ...(additionalHeaders ?? {}),\n },\n signal: opts.signal,\n };\n if (opts.data !== undefined) {\n if (typeof opts.data === \"string\") {\n fetchOptions.body = opts.data;\n } else {\n fetchOptions.body = JSON.stringify(opts.data);\n }\n }\n\n const context = { url, opts, fetchOptions };\n\n let res: Response;\n try {\n res = await this._fetch(url, fetchOptions);\n } catch (fetchError) {\n // The _fetch implementation (e.g. GAuthClient using google-auth-library)\n // may throw its own error (e.g. GaxiosError) for non-2xx responses\n // before we can handle them here. Extract what we can from the error\n // and re-throw with a useful, formatted message.\n /* eslint-disable @typescript-eslint/no-explicit-any */\n const err = fetchError as any;\n const status = err?.response?.status ?? err?.status;\n\n if (status != null) {\n let body: string | undefined;\n\n if (err?.response?.data != null) {\n if (typeof err.response.data === \"string\") {\n body = err.response.data;\n } else if (typeof err.response.data === \"object\") {\n try {\n body = JSON.stringify(err.response.data);\n } catch {\n // best effort\n }\n }\n }\n\n this._throwRequestError(\n status,\n body,\n err?.response ?? { status },\n context\n );\n }\n\n // No status info available — re-throw the original error as-is\n throw fetchError;\n /* eslint-enable @typescript-eslint/no-explicit-any */\n }\n\n if (!res.ok) {\n const body = await res.text();\n this._throwRequestError(res.status, body, res, context);\n }\n\n const data = await this._buildData(res, opts);\n return {\n data,\n config: {},\n status: res.status,\n statusText: res.statusText,\n headers: res.headers,\n request: { responseURL: res.url },\n };\n }\n}\n\nexport class ApiKeyGoogleAuth extends GoogleAbstractedFetchClient {\n apiKey: string;\n\n constructor(apiKey: string) {\n super();\n this.apiKey = apiKey;\n }\n\n get clientType(): string {\n return \"apiKey\";\n }\n\n getProjectId(): Promise<string> {\n throw new Error(\"APIs that require a project ID cannot use an API key\");\n // Perhaps we could implement this if needed:\n // https://cloud.google.com/docs/authentication/api-keys#get-info\n }\n\n request(opts: GoogleAbstractedClientOps): unknown {\n const authHeader = {\n \"X-Goog-Api-Key\": this.apiKey,\n };\n return this._request(opts.url, opts, authHeader);\n }\n}\n\nexport function aiPlatformScope(platform: GooglePlatformType): string[] {\n switch (platform) {\n case \"gai\":\n return [\"https://www.googleapis.com/auth/generative-language\"];\n default:\n return [\"https://www.googleapis.com/auth/cloud-platform\"];\n }\n}\n\nexport function ensureAuthOptionScopes<AuthOptions>(\n authOption: AuthOptions | undefined,\n scopeProperty: string,\n scopesOrPlatform: string[] | GooglePlatformType | undefined\n): AuthOptions {\n // If the property is already set, return it\n if (authOption && Object.hasOwn(authOption, scopeProperty)) {\n return authOption;\n }\n\n // Otherwise add it\n const scopes: string[] = Array.isArray(scopesOrPlatform)\n ? (scopesOrPlatform as string[])\n : aiPlatformScope(scopesOrPlatform ?? \"gcp\");\n return {\n [scopeProperty]: scopes,\n ...(authOption ?? {}),\n } as AuthOptions;\n}\n"],"mappings":";;;AAsBA,IAAsB,8BAAtB,MAAoF;CAOlF,SAAuB;CAEvB,MAAM,WAAW,KAAe,MAAiC;AAC/D,UAAQ,KAAK,cAAb;GACE,KAAK,OACH,QAAO,IAAI,MAAM;GACnB,KAAK,SACH,QAAO,IAAIA,kCAAmB,IAAI,KAAK;GACzC,QACE,QAAO,IAAI,MAAM;;;;;;;;CASvB,AAAU,mBACR,QACA,MACA,UACA,SAKO;EACP,MAAM,UAAU,OACZ,0CAA0C,OAAO,IAAI,SACrD,0CAA0C;EAC9C,MAAM,QAAQ,IAAI,MAAM,QAAQ;AAEhC,EAAC,MAAc,WAAW;AAE1B,EAAC,MAAc,UAAU;AACzB,QAAM;;CAGR,MAAM,SACJ,KACA,MACA,mBACA;AACA,MAAI,OAAO,KAAM,OAAM,IAAI,MAAM,cAAc;EAC/C,MAAM,eAKF;GACF,QAAQ,KAAK;GACb,SAAS;IACP,gBAAgB;IAChB,GAAI,KAAK,WAAW,EAAE;IACtB,GAAI,qBAAqB,EAAE;IAC5B;GACD,QAAQ,KAAK;GACd;AACD,MAAI,KAAK,SAAS,OAChB,KAAI,OAAO,KAAK,SAAS,SACvB,cAAa,OAAO,KAAK;MAEzB,cAAa,OAAO,KAAK,UAAU,KAAK,KAAK;EAIjD,MAAM,UAAU;GAAE;GAAK;GAAM;GAAc;EAE3C,IAAI;AACJ,MAAI;AACF,SAAM,MAAM,KAAK,OAAO,KAAK,aAAa;WACnC,YAAY;GAMnB,MAAM,MAAM;GACZ,MAAM,SAAS,KAAK,UAAU,UAAU,KAAK;AAE7C,OAAI,UAAU,MAAM;IAClB,IAAI;AAEJ,QAAI,KAAK,UAAU,QAAQ,MACzB;SAAI,OAAO,IAAI,SAAS,SAAS,SAC/B,QAAO,IAAI,SAAS;cACX,OAAO,IAAI,SAAS,SAAS,SACtC,KAAI;AACF,aAAO,KAAK,UAAU,IAAI,SAAS,KAAK;aAClC;;AAMZ,SAAK,mBACH,QACA,MACA,KAAK,YAAY,EAAE,QAAQ,EAC3B,QACD;;AAIH,SAAM;;AAIR,MAAI,CAAC,IAAI,IAAI;GACX,MAAM,OAAO,MAAM,IAAI,MAAM;AAC7B,QAAK,mBAAmB,IAAI,QAAQ,MAAM,KAAK,QAAQ;;AAIzD,SAAO;GACL,MAFW,MAAM,KAAK,WAAW,KAAK,KAAK;GAG3C,QAAQ,EAAE;GACV,QAAQ,IAAI;GACZ,YAAY,IAAI;GAChB,SAAS,IAAI;GACb,SAAS,EAAE,aAAa,IAAI,KAAK;GAClC;;;AAIL,IAAa,mBAAb,cAAsC,4BAA4B;CAChE;CAEA,YAAY,QAAgB;AAC1B,SAAO;AACP,OAAK,SAAS;;CAGhB,IAAI,aAAqB;AACvB,SAAO;;CAGT,eAAgC;AAC9B,QAAM,IAAI,MAAM,uDAAuD;;CAKzE,QAAQ,MAA0C;EAChD,MAAM,aAAa,EACjB,kBAAkB,KAAK,QACxB;AACD,SAAO,KAAK,SAAS,KAAK,KAAK,MAAM,WAAW;;;AAIpD,SAAgB,gBAAgB,UAAwC;AACtE,SAAQ,UAAR;EACE,KAAK,MACH,QAAO,CAAC,sDAAsD;EAChE,QACE,QAAO,CAAC,iDAAiD;;;AAI/D,SAAgB,uBACd,YACA,eACA,kBACa;AAEb,KAAI,cAAc,OAAO,OAAO,YAAY,cAAc,CACxD,QAAO;CAIT,MAAM,SAAmB,MAAM,QAAQ,iBAAiB,GACnD,mBACD,gBAAgB,oBAAoB,MAAM;AAC9C,QAAO;GACJ,gBAAgB;EACjB,GAAI,cAAc,EAAE;EACrB"}
|
package/dist/auth.d.cts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.d.cts","names":[
|
|
1
|
+
{"version":3,"file":"auth.d.cts","names":[],"sources":["../src/auth.ts"],"mappings":";;;KAGY,+BAAA;AAAA,KAEA,qCAAA;AAAA,KAEA,yBAAA;EACV,GAAA;EACA,MAAA,GAAS,+BAAA;EACT,OAAA,GAAU,MAAA;EACV,IAAA;EACA,YAAA,GAAe,qCAAA;EACf,MAAA,GAAS,WAAA;AAAA;AAAA,UAGM,sBAAA;EACf,OAAA,GAAU,IAAA,EAAM,yBAAA;EAChB,YAAA,QAAoB,OAAA;EAAA,IAChB,UAAA;AAAA;AAAA,uBAGgB,2BAAA,YAAuC,sBAAA;EAAA,aAC9C,UAAA,CAAA;EAAA,SAEJ,YAAA,CAAA,GAAgB,OAAA;EAAA,SAEhB,OAAA,CAAQ,IAAA,EAAM,yBAAA;EAEvB,MAAA,SAAe,KAAA;EAET,UAAA,CAAW,GAAA,EAAK,QAAA,EAAU,IAAA,EAAM,yBAAA,GAAyB,OAAA;EAvB/D;;;;;EAAA,UAuCU,kBAAA,CACR,MAAA,UACA,IAAA,sBACA,QAAA,WACA,OAAA;IACE,GAAA;IACA,IAAA,EAAM,yBAAA;IACN,YAAA,GAAe,MAAA;EAAA;EAcb,QAAA,CACJ,GAAA,sBACA,IAAA,EAAM,yBAAA,EACN,iBAAA,EAAmB,MAAA,mBAAsB,OAAA;;;;;;;;;;;cAoFhC,gBAAA,SAAyB,2BAAA;EACpC,MAAA;EAEA,WAAA,CAAY,MAAA;EAAA,IAKR,UAAA,CAAA;EAIJ,YAAA,CAAA,GAAgB,OAAA;EAMhB,OAAA,CAAQ,IAAA,EAAM,yBAAA;AAAA;AAAA,iBAQA,eAAA,CAAgB,QAAA,EAAU,kBAAA;AAAA,iBAS1B,sBAAA,aAAA,CACd,UAAA,EAAY,WAAA,cACZ,aAAA,UACA,gBAAA,aAA6B,kBAAA,eAC5B,WAAA"}
|
package/dist/auth.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.d.ts","names":[
|
|
1
|
+
{"version":3,"file":"auth.d.ts","names":[],"sources":["../src/auth.ts"],"mappings":";;;KAGY,+BAAA;AAAA,KAEA,qCAAA;AAAA,KAEA,yBAAA;EACV,GAAA;EACA,MAAA,GAAS,+BAAA;EACT,OAAA,GAAU,MAAA;EACV,IAAA;EACA,YAAA,GAAe,qCAAA;EACf,MAAA,GAAS,WAAA;AAAA;AAAA,UAGM,sBAAA;EACf,OAAA,GAAU,IAAA,EAAM,yBAAA;EAChB,YAAA,QAAoB,OAAA;EAAA,IAChB,UAAA;AAAA;AAAA,uBAGgB,2BAAA,YAAuC,sBAAA;EAAA,aAC9C,UAAA,CAAA;EAAA,SAEJ,YAAA,CAAA,GAAgB,OAAA;EAAA,SAEhB,OAAA,CAAQ,IAAA,EAAM,yBAAA;EAEvB,MAAA,SAAe,KAAA;EAET,UAAA,CAAW,GAAA,EAAK,QAAA,EAAU,IAAA,EAAM,yBAAA,GAAyB,OAAA;EAvB/D;;;;;EAAA,UAuCU,kBAAA,CACR,MAAA,UACA,IAAA,sBACA,QAAA,WACA,OAAA;IACE,GAAA;IACA,IAAA,EAAM,yBAAA;IACN,YAAA,GAAe,MAAA;EAAA;EAcb,QAAA,CACJ,GAAA,sBACA,IAAA,EAAM,yBAAA,EACN,iBAAA,EAAmB,MAAA,mBAAsB,OAAA;;;;;;;;;;;cAoFhC,gBAAA,SAAyB,2BAAA;EACpC,MAAA;EAEA,WAAA,CAAY,MAAA;EAAA,IAKR,UAAA,CAAA;EAIJ,YAAA,CAAA,GAAgB,OAAA;EAMhB,OAAA,CAAQ,IAAA,EAAM,yBAAA;AAAA;AAAA,iBAQA,eAAA,CAAgB,QAAA,EAAU,kBAAA;AAAA,iBAS1B,sBAAA,aAAA,CACd,UAAA,EAAY,WAAA,cACZ,aAAA,UACA,gBAAA,aAA6B,kBAAA,eAC5B,WAAA"}
|
package/dist/auth.js
CHANGED
|
@@ -62,9 +62,8 @@ var GoogleAbstractedFetchClient = class {
|
|
|
62
62
|
const body = await res.text();
|
|
63
63
|
this._throwRequestError(res.status, body, res, context);
|
|
64
64
|
}
|
|
65
|
-
const data = await this._buildData(res, opts);
|
|
66
65
|
return {
|
|
67
|
-
data,
|
|
66
|
+
data: await this._buildData(res, opts),
|
|
68
67
|
config: {},
|
|
69
68
|
status: res.status,
|
|
70
69
|
statusText: res.statusText,
|
package/dist/auth.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","names":[
|
|
1
|
+
{"version":3,"file":"auth.js","names":[],"sources":["../src/auth.ts"],"sourcesContent":["import { ReadableJsonStream } from \"./utils/stream.js\";\nimport { GooglePlatformType } from \"./types.js\";\n\nexport type GoogleAbstractedClientOpsMethod = \"GET\" | \"POST\" | \"DELETE\";\n\nexport type GoogleAbstractedClientOpsResponseType = \"json\" | \"stream\" | \"blob\";\n\nexport type GoogleAbstractedClientOps = {\n url?: string;\n method?: GoogleAbstractedClientOpsMethod;\n headers?: Record<string, string>;\n data?: unknown;\n responseType?: GoogleAbstractedClientOpsResponseType;\n signal?: AbortSignal;\n};\n\nexport interface GoogleAbstractedClient {\n request: (opts: GoogleAbstractedClientOps) => unknown;\n getProjectId: () => Promise<string>;\n get clientType(): string;\n}\n\nexport abstract class GoogleAbstractedFetchClient implements GoogleAbstractedClient {\n abstract get clientType(): string;\n\n abstract getProjectId(): Promise<string>;\n\n abstract request(opts: GoogleAbstractedClientOps): unknown;\n\n _fetch: typeof fetch = fetch;\n\n async _buildData(res: Response, opts: GoogleAbstractedClientOps) {\n switch (opts.responseType) {\n case \"json\":\n return res.json();\n case \"stream\":\n return new ReadableJsonStream(res.body);\n default:\n return res.blob();\n }\n }\n\n /**\n * Build and throw a standardised Google request error.\n * Both the `!res.ok` path (native fetch) and the catch path (gaxios)\n * funnel through here so the caller always sees the same shape.\n */\n protected _throwRequestError(\n status: number,\n body: string | undefined,\n response: unknown,\n context: {\n url: string;\n opts: GoogleAbstractedClientOps;\n fetchOptions?: Record<string, unknown>;\n }\n ): never {\n const message = body\n ? `Google request failed with status code ${status}: ${body}`\n : `Google request failed with status code ${status}`;\n const error = new Error(message);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (error as any).response = response;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (error as any).details = context;\n throw error;\n }\n\n async _request(\n url: string | undefined,\n opts: GoogleAbstractedClientOps,\n additionalHeaders: Record<string, string>\n ) {\n if (url == null) throw new Error(\"Missing URL\");\n const fetchOptions: {\n method?: string;\n headers: Record<string, string>;\n body?: string;\n signal?: AbortSignal;\n } = {\n method: opts.method,\n headers: {\n \"Content-Type\": \"application/json\",\n ...(opts.headers ?? {}),\n ...(additionalHeaders ?? {}),\n },\n signal: opts.signal,\n };\n if (opts.data !== undefined) {\n if (typeof opts.data === \"string\") {\n fetchOptions.body = opts.data;\n } else {\n fetchOptions.body = JSON.stringify(opts.data);\n }\n }\n\n const context = { url, opts, fetchOptions };\n\n let res: Response;\n try {\n res = await this._fetch(url, fetchOptions);\n } catch (fetchError) {\n // The _fetch implementation (e.g. GAuthClient using google-auth-library)\n // may throw its own error (e.g. GaxiosError) for non-2xx responses\n // before we can handle them here. Extract what we can from the error\n // and re-throw with a useful, formatted message.\n /* eslint-disable @typescript-eslint/no-explicit-any */\n const err = fetchError as any;\n const status = err?.response?.status ?? err?.status;\n\n if (status != null) {\n let body: string | undefined;\n\n if (err?.response?.data != null) {\n if (typeof err.response.data === \"string\") {\n body = err.response.data;\n } else if (typeof err.response.data === \"object\") {\n try {\n body = JSON.stringify(err.response.data);\n } catch {\n // best effort\n }\n }\n }\n\n this._throwRequestError(\n status,\n body,\n err?.response ?? { status },\n context\n );\n }\n\n // No status info available — re-throw the original error as-is\n throw fetchError;\n /* eslint-enable @typescript-eslint/no-explicit-any */\n }\n\n if (!res.ok) {\n const body = await res.text();\n this._throwRequestError(res.status, body, res, context);\n }\n\n const data = await this._buildData(res, opts);\n return {\n data,\n config: {},\n status: res.status,\n statusText: res.statusText,\n headers: res.headers,\n request: { responseURL: res.url },\n };\n }\n}\n\nexport class ApiKeyGoogleAuth extends GoogleAbstractedFetchClient {\n apiKey: string;\n\n constructor(apiKey: string) {\n super();\n this.apiKey = apiKey;\n }\n\n get clientType(): string {\n return \"apiKey\";\n }\n\n getProjectId(): Promise<string> {\n throw new Error(\"APIs that require a project ID cannot use an API key\");\n // Perhaps we could implement this if needed:\n // https://cloud.google.com/docs/authentication/api-keys#get-info\n }\n\n request(opts: GoogleAbstractedClientOps): unknown {\n const authHeader = {\n \"X-Goog-Api-Key\": this.apiKey,\n };\n return this._request(opts.url, opts, authHeader);\n }\n}\n\nexport function aiPlatformScope(platform: GooglePlatformType): string[] {\n switch (platform) {\n case \"gai\":\n return [\"https://www.googleapis.com/auth/generative-language\"];\n default:\n return [\"https://www.googleapis.com/auth/cloud-platform\"];\n }\n}\n\nexport function ensureAuthOptionScopes<AuthOptions>(\n authOption: AuthOptions | undefined,\n scopeProperty: string,\n scopesOrPlatform: string[] | GooglePlatformType | undefined\n): AuthOptions {\n // If the property is already set, return it\n if (authOption && Object.hasOwn(authOption, scopeProperty)) {\n return authOption;\n }\n\n // Otherwise add it\n const scopes: string[] = Array.isArray(scopesOrPlatform)\n ? (scopesOrPlatform as string[])\n : aiPlatformScope(scopesOrPlatform ?? \"gcp\");\n return {\n [scopeProperty]: scopes,\n ...(authOption ?? {}),\n } as AuthOptions;\n}\n"],"mappings":";;;AAsBA,IAAsB,8BAAtB,MAAoF;CAOlF,SAAuB;CAEvB,MAAM,WAAW,KAAe,MAAiC;AAC/D,UAAQ,KAAK,cAAb;GACE,KAAK,OACH,QAAO,IAAI,MAAM;GACnB,KAAK,SACH,QAAO,IAAI,mBAAmB,IAAI,KAAK;GACzC,QACE,QAAO,IAAI,MAAM;;;;;;;;CASvB,AAAU,mBACR,QACA,MACA,UACA,SAKO;EACP,MAAM,UAAU,OACZ,0CAA0C,OAAO,IAAI,SACrD,0CAA0C;EAC9C,MAAM,QAAQ,IAAI,MAAM,QAAQ;AAEhC,EAAC,MAAc,WAAW;AAE1B,EAAC,MAAc,UAAU;AACzB,QAAM;;CAGR,MAAM,SACJ,KACA,MACA,mBACA;AACA,MAAI,OAAO,KAAM,OAAM,IAAI,MAAM,cAAc;EAC/C,MAAM,eAKF;GACF,QAAQ,KAAK;GACb,SAAS;IACP,gBAAgB;IAChB,GAAI,KAAK,WAAW,EAAE;IACtB,GAAI,qBAAqB,EAAE;IAC5B;GACD,QAAQ,KAAK;GACd;AACD,MAAI,KAAK,SAAS,OAChB,KAAI,OAAO,KAAK,SAAS,SACvB,cAAa,OAAO,KAAK;MAEzB,cAAa,OAAO,KAAK,UAAU,KAAK,KAAK;EAIjD,MAAM,UAAU;GAAE;GAAK;GAAM;GAAc;EAE3C,IAAI;AACJ,MAAI;AACF,SAAM,MAAM,KAAK,OAAO,KAAK,aAAa;WACnC,YAAY;GAMnB,MAAM,MAAM;GACZ,MAAM,SAAS,KAAK,UAAU,UAAU,KAAK;AAE7C,OAAI,UAAU,MAAM;IAClB,IAAI;AAEJ,QAAI,KAAK,UAAU,QAAQ,MACzB;SAAI,OAAO,IAAI,SAAS,SAAS,SAC/B,QAAO,IAAI,SAAS;cACX,OAAO,IAAI,SAAS,SAAS,SACtC,KAAI;AACF,aAAO,KAAK,UAAU,IAAI,SAAS,KAAK;aAClC;;AAMZ,SAAK,mBACH,QACA,MACA,KAAK,YAAY,EAAE,QAAQ,EAC3B,QACD;;AAIH,SAAM;;AAIR,MAAI,CAAC,IAAI,IAAI;GACX,MAAM,OAAO,MAAM,IAAI,MAAM;AAC7B,QAAK,mBAAmB,IAAI,QAAQ,MAAM,KAAK,QAAQ;;AAIzD,SAAO;GACL,MAFW,MAAM,KAAK,WAAW,KAAK,KAAK;GAG3C,QAAQ,EAAE;GACV,QAAQ,IAAI;GACZ,YAAY,IAAI;GAChB,SAAS,IAAI;GACb,SAAS,EAAE,aAAa,IAAI,KAAK;GAClC;;;AAIL,IAAa,mBAAb,cAAsC,4BAA4B;CAChE;CAEA,YAAY,QAAgB;AAC1B,SAAO;AACP,OAAK,SAAS;;CAGhB,IAAI,aAAqB;AACvB,SAAO;;CAGT,eAAgC;AAC9B,QAAM,IAAI,MAAM,uDAAuD;;CAKzE,QAAQ,MAA0C;EAChD,MAAM,aAAa,EACjB,kBAAkB,KAAK,QACxB;AACD,SAAO,KAAK,SAAS,KAAK,KAAK,MAAM,WAAW;;;AAIpD,SAAgB,gBAAgB,UAAwC;AACtE,SAAQ,UAAR;EACE,KAAK,MACH,QAAO,CAAC,sDAAsD;EAChE,QACE,QAAO,CAAC,iDAAiD;;;AAI/D,SAAgB,uBACd,YACA,eACA,kBACa;AAEb,KAAI,cAAc,OAAO,OAAO,YAAY,cAAc,CACxD,QAAO;CAIT,MAAM,SAAmB,MAAM,QAAQ,iBAAiB,GACnD,mBACD,gBAAgB,oBAAoB,MAAM;AAC9C,QAAO;GACJ,gBAAgB;EACjB,GAAI,cAAc,EAAE;EACrB"}
|
package/dist/chat_models.cjs
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
const require_rolldown_runtime = require('./_virtual/rolldown_runtime.cjs');
|
|
2
1
|
const require_zod_to_gemini_parameters = require('./utils/zod_to_gemini_parameters.cjs');
|
|
3
2
|
const require_gemini = require('./utils/gemini.cjs');
|
|
4
3
|
const require_common = require('./utils/common.cjs');
|
|
@@ -6,15 +5,15 @@ const require_failed_handler = require('./utils/failed_handler.cjs');
|
|
|
6
5
|
const require_connection = require('./connection.cjs');
|
|
7
6
|
const require_auth = require('./auth.cjs');
|
|
8
7
|
const require_profiles = require('./profiles.cjs');
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
8
|
+
let _langchain_core_utils_env = require("@langchain/core/utils/env");
|
|
9
|
+
let _langchain_core_language_models_chat_models = require("@langchain/core/language_models/chat_models");
|
|
10
|
+
let _langchain_core_outputs = require("@langchain/core/outputs");
|
|
11
|
+
let _langchain_core_messages = require("@langchain/core/messages");
|
|
12
|
+
let _langchain_core_runnables = require("@langchain/core/runnables");
|
|
13
|
+
let _langchain_core_output_parsers_openai_tools = require("@langchain/core/output_parsers/openai_tools");
|
|
14
|
+
let _langchain_core_output_parsers = require("@langchain/core/output_parsers");
|
|
15
|
+
let _langchain_core_utils_stream = require("@langchain/core/utils/stream");
|
|
16
|
+
let _langchain_core_utils_types = require("@langchain/core/utils/types");
|
|
18
17
|
|
|
19
18
|
//#region src/chat_models.ts
|
|
20
19
|
var ChatConnection = class extends require_connection.AbstractGoogleLLMConnection {
|
|
@@ -48,12 +47,11 @@ var ChatConnection = class extends require_connection.AbstractGoogleLLMConnectio
|
|
|
48
47
|
buildGeminiAPI() {
|
|
49
48
|
const apiConfig = this.apiConfig ?? {};
|
|
50
49
|
const googleSearchToolAdjustment = this.computeGoogleSearchToolAdjustment(apiConfig);
|
|
51
|
-
|
|
50
|
+
return require_gemini.getGeminiAPI({
|
|
52
51
|
useSystemInstruction: this.useSystemInstruction,
|
|
53
52
|
googleSearchToolAdjustment,
|
|
54
53
|
...apiConfig
|
|
55
|
-
};
|
|
56
|
-
return require_gemini.getGeminiAPI(geminiConfig);
|
|
54
|
+
});
|
|
57
55
|
}
|
|
58
56
|
get api() {
|
|
59
57
|
switch (this.apiName) {
|
|
@@ -65,7 +63,7 @@ var ChatConnection = class extends require_connection.AbstractGoogleLLMConnectio
|
|
|
65
63
|
/**
|
|
66
64
|
* Integration with a Google chat model.
|
|
67
65
|
*/
|
|
68
|
-
var ChatGoogleBase = class extends
|
|
66
|
+
var ChatGoogleBase = class extends _langchain_core_language_models_chat_models.BaseChatModel {
|
|
69
67
|
static lc_name() {
|
|
70
68
|
return "ChatGoogle";
|
|
71
69
|
}
|
|
@@ -119,7 +117,7 @@ var ChatGoogleBase = class extends __langchain_core_language_models_chat_models.
|
|
|
119
117
|
return new require_auth.ApiKeyGoogleAuth(apiKey);
|
|
120
118
|
}
|
|
121
119
|
buildApiKey(fields) {
|
|
122
|
-
return fields?.apiKey ?? (0,
|
|
120
|
+
return fields?.apiKey ?? (0, _langchain_core_utils_env.getEnvironmentVariable)("GOOGLE_API_KEY");
|
|
123
121
|
}
|
|
124
122
|
buildClient(fields) {
|
|
125
123
|
const apiKey = this.buildApiKey(fields);
|
|
@@ -160,7 +158,7 @@ var ChatGoogleBase = class extends __langchain_core_language_models_chat_models.
|
|
|
160
158
|
if (this.streaming) {
|
|
161
159
|
const stream = this._streamResponseChunks(messages, options, runManager);
|
|
162
160
|
let finalChunk = null;
|
|
163
|
-
for await (const chunk
|
|
161
|
+
for await (const chunk of stream) finalChunk = !finalChunk ? chunk : (0, _langchain_core_utils_stream.concat)(finalChunk, chunk);
|
|
164
162
|
if (!finalChunk) throw new Error("No chunks were returned from the stream.");
|
|
165
163
|
return { generations: [finalChunk] };
|
|
166
164
|
}
|
|
@@ -172,8 +170,7 @@ var ChatGoogleBase = class extends __langchain_core_language_models_chat_models.
|
|
|
172
170
|
}
|
|
173
171
|
async *_streamResponseChunks(_messages, options, runManager) {
|
|
174
172
|
const parameters = this.invocationParams(options);
|
|
175
|
-
const
|
|
176
|
-
const stream = response.data;
|
|
173
|
+
const stream = (await this.streamedConnection.request(_messages, parameters, options, runManager)).data;
|
|
177
174
|
let usageMetadata;
|
|
178
175
|
while (!stream.streamDone) {
|
|
179
176
|
if (options.signal?.aborted) return;
|
|
@@ -184,10 +181,10 @@ var ChatGoogleBase = class extends __langchain_core_language_models_chat_models.
|
|
|
184
181
|
output_tokens: output.usageMetadata.candidatesTokenCount,
|
|
185
182
|
total_tokens: output.usageMetadata.totalTokenCount
|
|
186
183
|
};
|
|
187
|
-
const chunk = output !== null ? this.connection.api.responseToChatGeneration({ data: output }) : new
|
|
184
|
+
const chunk = output !== null ? this.connection.api.responseToChatGeneration({ data: output }) : new _langchain_core_outputs.ChatGenerationChunk({
|
|
188
185
|
text: "",
|
|
189
186
|
generationInfo: { finishReason: "stop" },
|
|
190
|
-
message: new
|
|
187
|
+
message: new _langchain_core_messages.AIMessageChunk({
|
|
191
188
|
content: "",
|
|
192
189
|
usage_metadata: usageMetadata
|
|
193
190
|
})
|
|
@@ -225,14 +222,14 @@ var ChatGoogleBase = class extends __langchain_core_language_models_chat_models.
|
|
|
225
222
|
if (method === "functionCalling") {
|
|
226
223
|
let functionName = name ?? "extract";
|
|
227
224
|
let tools;
|
|
228
|
-
if ((0,
|
|
225
|
+
if ((0, _langchain_core_utils_types.isInteropZodSchema)(schema)) {
|
|
229
226
|
const jsonSchema = require_zod_to_gemini_parameters.schemaToGeminiParameters(schema);
|
|
230
227
|
tools = [{ functionDeclarations: [{
|
|
231
228
|
name: functionName,
|
|
232
229
|
description: jsonSchema.description ?? "A function available to call.",
|
|
233
230
|
parameters: jsonSchema
|
|
234
231
|
}] }];
|
|
235
|
-
outputParser = new
|
|
232
|
+
outputParser = new _langchain_core_output_parsers_openai_tools.JsonOutputKeyToolsParser({
|
|
236
233
|
returnSingle: true,
|
|
237
234
|
keyName: functionName,
|
|
238
235
|
zodSchema: schema
|
|
@@ -251,7 +248,7 @@ var ChatGoogleBase = class extends __langchain_core_language_models_chat_models.
|
|
|
251
248
|
};
|
|
252
249
|
}
|
|
253
250
|
tools = [{ functionDeclarations: [geminiFunctionDefinition] }];
|
|
254
|
-
outputParser = new
|
|
251
|
+
outputParser = new _langchain_core_output_parsers_openai_tools.JsonOutputKeyToolsParser({
|
|
255
252
|
returnSingle: true,
|
|
256
253
|
keyName: functionName
|
|
257
254
|
});
|
|
@@ -260,13 +257,13 @@ var ChatGoogleBase = class extends __langchain_core_language_models_chat_models.
|
|
|
260
257
|
} else {
|
|
261
258
|
const jsonSchema = require_zod_to_gemini_parameters.schemaToGeminiParameters(schema);
|
|
262
259
|
llm = this.withConfig({ responseSchema: jsonSchema });
|
|
263
|
-
outputParser = new
|
|
260
|
+
outputParser = new _langchain_core_output_parsers.JsonOutputParser();
|
|
264
261
|
}
|
|
265
262
|
if (!includeRaw) return llm.pipe(outputParser).withConfig({ runName: "ChatGoogleStructuredOutput" });
|
|
266
|
-
const parserAssign =
|
|
267
|
-
const parserNone =
|
|
263
|
+
const parserAssign = _langchain_core_runnables.RunnablePassthrough.assign({ parsed: (input, config) => outputParser.invoke(input.raw, config) });
|
|
264
|
+
const parserNone = _langchain_core_runnables.RunnablePassthrough.assign({ parsed: () => null });
|
|
268
265
|
const parsedWithFallback = parserAssign.withFallbacks({ fallbacks: [parserNone] });
|
|
269
|
-
return
|
|
266
|
+
return _langchain_core_runnables.RunnableSequence.from([{ raw: llm }, parsedWithFallback]).withConfig({ runName: "StructuredOutputRunnable" });
|
|
270
267
|
}
|
|
271
268
|
};
|
|
272
269
|
|
package/dist/chat_models.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat_models.cjs","names":["AbstractGoogleLLMConnection","fields: GoogleAIBaseLLMInput<AuthOptions> | undefined","caller: AsyncCaller","client: GoogleAbstractedClient","streaming: boolean","apiConfig: GeminiAPIConfig","geminiConfig: GeminiAPIConfig","getGeminiAPI","BaseChatModel","fields?: ChatGoogleBaseInput<AuthOptions>","ensureParams","copyAndValidateModelParamsInto","DefaultGeminiSafetyHandler","options: this[\"ParsedCallOptions\"]","apiKey: string","ApiKeyGoogleAuth","fields?: GoogleAIBaseLLMInput<AuthOptions>","fields: GoogleBaseLLMInput<AuthOptions>","tools: GoogleAIToolType[]","kwargs?: Partial<GoogleAIBaseLanguageModelCallOptions>","convertToGeminiTools","options?: this[\"ParsedCallOptions\"]","copyAIModelParams","messages: BaseMessage[]","runManager: CallbackManagerForLLMRun | undefined","finalChunk: ChatGenerationChunk | null","chunk","_messages: BaseMessage[]","runManager?: CallbackManagerForLLMRun","usageMetadata: UsageMetadata | undefined","ChatGenerationChunk","AIMessageChunk","PROFILES","outputSchema:\n | InteropZodType<RunOutput>\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n | Record<string, any>","config?: StructuredOutputMethodOptions<boolean>","schema: InteropZodType<RunOutput> | Record<string, any>","outputParser: BaseLLMOutputParser<RunOutput>","tools: GeminiTool[]","schemaToGeminiParameters","JsonOutputKeyToolsParser","geminiFunctionDefinition: GeminiFunctionDeclaration","parameters: GeminiJsonSchema","removeAdditionalProperties","JsonOutputParser","RunnablePassthrough","input: any","config","RunnableSequence"],"sources":["../src/chat_models.ts"],"sourcesContent":["import { getEnvironmentVariable } from \"@langchain/core/utils/env\";\nimport { UsageMetadata, type BaseMessage } from \"@langchain/core/messages\";\nimport { CallbackManagerForLLMRun } from \"@langchain/core/callbacks/manager\";\n\nimport {\n BaseChatModel,\n LangSmithParams,\n type BaseChatModelParams,\n} from \"@langchain/core/language_models/chat_models\";\nimport { ChatGenerationChunk, ChatResult } from \"@langchain/core/outputs\";\nimport { AIMessageChunk } from \"@langchain/core/messages\";\nimport {\n BaseLanguageModelInput,\n StructuredOutputMethodOptions,\n} from \"@langchain/core/language_models/base\";\nimport { type ModelProfile } from \"@langchain/core/language_models/profile\";\nimport {\n Runnable,\n RunnablePassthrough,\n RunnableSequence,\n} from \"@langchain/core/runnables\";\nimport { JsonOutputKeyToolsParser } from \"@langchain/core/output_parsers/openai_tools\";\nimport {\n BaseLLMOutputParser,\n JsonOutputParser,\n} from \"@langchain/core/output_parsers\";\nimport { AsyncCaller } from \"@langchain/core/utils/async_caller\";\nimport { concat } from \"@langchain/core/utils/stream\";\nimport {\n InteropZodType,\n isInteropZodSchema,\n} from \"@langchain/core/utils/types\";\nimport {\n GoogleAIBaseLLMInput,\n GoogleAIModelParams,\n GoogleAISafetySetting,\n GoogleConnectionParams,\n GooglePlatformType,\n GeminiTool,\n GoogleAIBaseLanguageModelCallOptions,\n GoogleAIAPI,\n GoogleAIAPIParams,\n GoogleSearchToolSetting,\n GoogleSpeechConfig,\n GeminiJsonSchema,\n} from \"./types.js\";\nimport {\n convertToGeminiTools,\n copyAIModelParams,\n copyAndValidateModelParamsInto,\n} from \"./utils/common.js\";\nimport { AbstractGoogleLLMConnection } from \"./connection.js\";\nimport { DefaultGeminiSafetyHandler, getGeminiAPI } from \"./utils/gemini.js\";\nimport { ApiKeyGoogleAuth, GoogleAbstractedClient } from \"./auth.js\";\nimport { JsonStream } from \"./utils/stream.js\";\nimport { ensureParams } from \"./utils/failed_handler.js\";\nimport type {\n GoogleBaseLLMInput,\n GoogleAISafetyHandler,\n GoogleAISafetyParams,\n GeminiFunctionDeclaration,\n GeminiFunctionSchema,\n GoogleAIToolType,\n GeminiAPIConfig,\n GoogleAIModelModality,\n} from \"./types.js\";\nimport {\n removeAdditionalProperties,\n schemaToGeminiParameters,\n} from \"./utils/zod_to_gemini_parameters.js\";\nimport PROFILES from \"./profiles.js\";\n\nexport class ChatConnection<AuthOptions> extends AbstractGoogleLLMConnection<\n BaseMessage[],\n AuthOptions\n> {\n convertSystemMessageToHumanContent: boolean | undefined;\n\n constructor(\n fields: GoogleAIBaseLLMInput<AuthOptions> | undefined,\n caller: AsyncCaller,\n client: GoogleAbstractedClient,\n streaming: boolean\n ) {\n super(fields, caller, client, streaming);\n this.convertSystemMessageToHumanContent =\n fields?.convertSystemMessageToHumanContent;\n }\n\n get useSystemInstruction(): boolean {\n return typeof this.convertSystemMessageToHumanContent === \"boolean\"\n ? !this.convertSystemMessageToHumanContent\n : this.computeUseSystemInstruction;\n }\n\n get computeUseSystemInstruction(): boolean {\n // This works on models from April 2024 and later\n // Vertex AI: gemini-1.5-pro and gemini-1.0-002 and later\n // AI Studio: gemini-1.5-pro-latest\n if (this.modelFamily === \"palm\") {\n return false;\n } else if (this.modelName === \"gemini-1.0-pro-001\") {\n return false;\n } else if (this.modelName.startsWith(\"gemini-pro-vision\")) {\n return false;\n } else if (this.modelName.startsWith(\"gemini-1.0-pro-vision\")) {\n return false;\n } else if (this.modelName === \"gemini-pro\" && this.platform === \"gai\") {\n // on AI Studio gemini-pro is still pointing at gemini-1.0-pro-001\n return false;\n } else if (this.modelFamily === \"gemma\") {\n // At least as of 12 Mar 2025 gemma 3 on AIS, trying to use system instructions yields an error:\n // \"Developer instruction is not enabled for models/gemma-3-27b-it\"\n return false;\n }\n return true;\n }\n\n computeGoogleSearchToolAdjustmentFromModel(): Exclude<\n GoogleSearchToolSetting,\n boolean\n > {\n if (this.modelName.startsWith(\"gemini-1.0\")) {\n return \"googleSearchRetrieval\";\n } else if (this.modelName.startsWith(\"gemini-1.5\")) {\n return \"googleSearchRetrieval\";\n } else {\n return \"googleSearch\";\n }\n }\n\n computeGoogleSearchToolAdjustment(\n apiConfig: GeminiAPIConfig\n ): Exclude<GoogleSearchToolSetting, true> {\n const adj = apiConfig.googleSearchToolAdjustment;\n if (adj === undefined || adj === true) {\n return this.computeGoogleSearchToolAdjustmentFromModel();\n } else {\n return adj;\n }\n }\n\n buildGeminiAPI(): GoogleAIAPI {\n const apiConfig: GeminiAPIConfig =\n (this.apiConfig as GeminiAPIConfig) ?? {};\n const googleSearchToolAdjustment =\n this.computeGoogleSearchToolAdjustment(apiConfig);\n const geminiConfig: GeminiAPIConfig = {\n useSystemInstruction: this.useSystemInstruction,\n googleSearchToolAdjustment,\n ...apiConfig,\n };\n return getGeminiAPI(geminiConfig);\n }\n\n get api(): GoogleAIAPI {\n switch (this.apiName) {\n case \"google\":\n return this.buildGeminiAPI();\n default:\n return super.api;\n }\n }\n}\n\n/**\n * Input to chat model class.\n */\nexport interface ChatGoogleBaseInput<AuthOptions>\n extends\n BaseChatModelParams,\n GoogleConnectionParams<AuthOptions>,\n GoogleAIModelParams,\n GoogleAISafetyParams,\n GoogleAIAPIParams,\n Pick<GoogleAIBaseLanguageModelCallOptions, \"streamUsage\"> {}\n\n/**\n * Integration with a Google chat model.\n */\nexport abstract class ChatGoogleBase<AuthOptions>\n extends BaseChatModel<GoogleAIBaseLanguageModelCallOptions, AIMessageChunk>\n implements ChatGoogleBaseInput<AuthOptions>\n{\n // Used for tracing, replace with the same name as your class\n static lc_name() {\n return \"ChatGoogle\";\n }\n\n get lc_secrets(): { [key: string]: string } | undefined {\n return {\n authOptions: \"GOOGLE_AUTH_OPTIONS\",\n };\n }\n\n lc_serializable = true;\n\n // Set based on modelName\n model: string;\n\n modelName = \"gemini-pro\";\n\n temperature: number;\n\n maxOutputTokens: number;\n\n maxReasoningTokens: number;\n\n topP: number;\n\n topK: number;\n\n seed: number;\n\n presencePenalty: number;\n\n frequencyPenalty: number;\n\n stopSequences: string[] = [];\n\n logprobs: boolean;\n\n topLogprobs: number = 0;\n\n safetySettings: GoogleAISafetySetting[] = [];\n\n responseModalities?: GoogleAIModelModality[];\n\n // May intentionally be undefined, meaning to compute this.\n convertSystemMessageToHumanContent: boolean | undefined;\n\n safetyHandler: GoogleAISafetyHandler;\n\n speechConfig: GoogleSpeechConfig;\n\n streamUsage = true;\n\n streaming = false;\n\n labels?: Record<string, string>;\n\n protected connection: ChatConnection<AuthOptions>;\n\n protected streamedConnection: ChatConnection<AuthOptions>;\n\n constructor(fields?: ChatGoogleBaseInput<AuthOptions>) {\n super(ensureParams(fields));\n\n copyAndValidateModelParamsInto(fields, this);\n this.safetyHandler =\n fields?.safetyHandler ?? new DefaultGeminiSafetyHandler();\n this.streamUsage = fields?.streamUsage ?? this.streamUsage;\n const client = this.buildClient(fields);\n this.buildConnection(fields ?? {}, client);\n }\n\n getLsParams(options: this[\"ParsedCallOptions\"]): LangSmithParams {\n const params = this.invocationParams(options);\n return {\n ls_provider: \"google_vertexai\",\n ls_model_name: this.model,\n ls_model_type: \"chat\",\n ls_temperature: params.temperature ?? undefined,\n ls_max_tokens: params.maxOutputTokens ?? undefined,\n ls_stop: options.stop,\n };\n }\n\n abstract buildAbstractedClient(\n fields?: GoogleAIBaseLLMInput<AuthOptions>\n ): GoogleAbstractedClient;\n\n buildApiKeyClient(apiKey: string): GoogleAbstractedClient {\n return new ApiKeyGoogleAuth(apiKey);\n }\n\n buildApiKey(fields?: GoogleAIBaseLLMInput<AuthOptions>): string | undefined {\n return fields?.apiKey ?? getEnvironmentVariable(\"GOOGLE_API_KEY\");\n }\n\n buildClient(\n fields?: GoogleAIBaseLLMInput<AuthOptions>\n ): GoogleAbstractedClient {\n const apiKey = this.buildApiKey(fields);\n if (apiKey) {\n return this.buildApiKeyClient(apiKey);\n } else {\n return this.buildAbstractedClient(fields);\n }\n }\n\n buildConnection(\n fields: GoogleBaseLLMInput<AuthOptions>,\n client: GoogleAbstractedClient\n ) {\n this.connection = new ChatConnection(\n { ...fields, ...this },\n this.caller,\n client,\n false\n );\n\n this.streamedConnection = new ChatConnection(\n { ...fields, ...this },\n this.caller,\n client,\n true\n );\n }\n\n get platform(): GooglePlatformType {\n return this.connection.platform;\n }\n\n override bindTools(\n tools: GoogleAIToolType[],\n kwargs?: Partial<GoogleAIBaseLanguageModelCallOptions>\n ): Runnable<\n BaseLanguageModelInput,\n AIMessageChunk,\n GoogleAIBaseLanguageModelCallOptions\n > {\n return this.withConfig({ tools: convertToGeminiTools(tools), ...kwargs });\n }\n\n _llmType() {\n return \"google\";\n }\n\n /**\n * Get the parameters used to invoke the model\n */\n override invocationParams(options?: this[\"ParsedCallOptions\"]) {\n return copyAIModelParams(this, options);\n }\n\n async _generate(\n messages: BaseMessage[],\n options: this[\"ParsedCallOptions\"],\n runManager: CallbackManagerForLLMRun | undefined\n ): Promise<ChatResult> {\n options.signal?.throwIfAborted();\n const parameters = this.invocationParams(options);\n if (this.streaming) {\n const stream = this._streamResponseChunks(messages, options, runManager);\n let finalChunk: ChatGenerationChunk | null = null;\n for await (const chunk of stream) {\n finalChunk = !finalChunk ? chunk : concat(finalChunk, chunk);\n }\n if (!finalChunk) {\n throw new Error(\"No chunks were returned from the stream.\");\n }\n return {\n generations: [finalChunk],\n };\n }\n\n const response = await this.connection.request(\n messages,\n parameters,\n options,\n runManager\n );\n const ret = this.connection.api.responseToChatResult(response);\n const chunk = ret?.generations?.[0];\n if (chunk) {\n await runManager?.handleLLMNewToken(chunk.text || \"\");\n }\n return ret;\n }\n\n async *_streamResponseChunks(\n _messages: BaseMessage[],\n options: this[\"ParsedCallOptions\"],\n runManager?: CallbackManagerForLLMRun\n ): AsyncGenerator<ChatGenerationChunk> {\n // Make the call as a streaming request\n const parameters = this.invocationParams(options);\n const response = await this.streamedConnection.request(\n _messages,\n parameters,\n options,\n runManager\n );\n\n // Get the streaming parser of the response\n const stream = response.data as JsonStream;\n let usageMetadata: UsageMetadata | undefined;\n // Loop until the end of the stream\n // During the loop, yield each time we get a chunk from the streaming parser\n // that is either available or added to the queue\n while (!stream.streamDone) {\n if (options.signal?.aborted) {\n return;\n }\n const output = await stream.nextChunk();\n await runManager?.handleCustomEvent(\n `google-chunk-${this.constructor.name}`,\n {\n output,\n }\n );\n if (\n output &&\n output.usageMetadata &&\n this.streamUsage !== false &&\n options.streamUsage !== false\n ) {\n usageMetadata = {\n input_tokens: output.usageMetadata.promptTokenCount,\n output_tokens: output.usageMetadata.candidatesTokenCount,\n total_tokens: output.usageMetadata.totalTokenCount,\n };\n }\n const chunk =\n output !== null\n ? this.connection.api.responseToChatGeneration({ data: output })\n : new ChatGenerationChunk({\n text: \"\",\n generationInfo: { finishReason: \"stop\" },\n message: new AIMessageChunk({\n content: \"\",\n usage_metadata: usageMetadata,\n }),\n });\n if (chunk) {\n yield chunk;\n await runManager?.handleLLMNewToken(\n chunk.text ?? \"\",\n undefined,\n undefined,\n undefined,\n undefined,\n { chunk }\n );\n }\n }\n }\n\n /** @ignore */\n _combineLLMOutput() {\n return [];\n }\n\n /**\n * Return profiling information for the model.\n *\n * Provides information about the model's capabilities and constraints,\n * including token limits, multimodal support, and advanced features like\n * tool calling and structured output.\n *\n * @returns {ModelProfile} An object describing the model's capabilities and constraints\n */\n get profile(): ModelProfile {\n return PROFILES[this.model] ?? {};\n }\n\n withStructuredOutput<\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n RunOutput extends Record<string, any> = Record<string, any>,\n >(\n outputSchema:\n | InteropZodType<RunOutput>\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n | Record<string, any>,\n config?: StructuredOutputMethodOptions<false>\n ): Runnable<BaseLanguageModelInput, RunOutput>;\n\n withStructuredOutput<\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n RunOutput extends Record<string, any> = Record<string, any>,\n >(\n outputSchema:\n | InteropZodType<RunOutput>\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n | Record<string, any>,\n config?: StructuredOutputMethodOptions<true>\n ): Runnable<BaseLanguageModelInput, { raw: BaseMessage; parsed: RunOutput }>;\n\n withStructuredOutput<\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n RunOutput extends Record<string, any> = Record<string, any>,\n >(\n outputSchema:\n | InteropZodType<RunOutput>\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n | Record<string, any>,\n config?: StructuredOutputMethodOptions<boolean>\n ):\n | Runnable<BaseLanguageModelInput, RunOutput>\n | Runnable<\n BaseLanguageModelInput,\n { raw: BaseMessage; parsed: RunOutput }\n > {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const schema: InteropZodType<RunOutput> | Record<string, any> =\n outputSchema;\n const name = config?.name;\n const method = config?.method;\n const includeRaw = config?.includeRaw;\n if (method === \"jsonMode\") {\n throw new Error(\n `Google only supports \"jsonSchema\" or \"functionCalling\" as a method.`\n );\n }\n\n let llm;\n let outputParser: BaseLLMOutputParser<RunOutput>;\n if (method === \"functionCalling\") {\n let functionName = name ?? \"extract\";\n let tools: GeminiTool[];\n if (isInteropZodSchema(schema)) {\n const jsonSchema = schemaToGeminiParameters(schema);\n tools = [\n {\n functionDeclarations: [\n {\n name: functionName,\n description:\n jsonSchema.description ?? \"A function available to call.\",\n parameters: jsonSchema as GeminiFunctionSchema,\n },\n ],\n },\n ];\n outputParser = new JsonOutputKeyToolsParser({\n returnSingle: true,\n keyName: functionName,\n zodSchema: schema,\n });\n } else {\n let geminiFunctionDefinition: GeminiFunctionDeclaration;\n if (\n typeof schema.name === \"string\" &&\n typeof schema.parameters === \"object\" &&\n schema.parameters != null\n ) {\n geminiFunctionDefinition = schema as GeminiFunctionDeclaration;\n functionName = schema.name;\n } else {\n // We are providing the schema for *just* the parameters, probably\n const parameters: GeminiJsonSchema =\n removeAdditionalProperties(schema);\n geminiFunctionDefinition = {\n name: functionName,\n description: schema.description ?? \"\",\n parameters,\n };\n }\n tools = [\n {\n functionDeclarations: [geminiFunctionDefinition],\n },\n ];\n outputParser = new JsonOutputKeyToolsParser<RunOutput>({\n returnSingle: true,\n keyName: functionName,\n });\n }\n llm = this.bindTools(tools).withConfig({ tool_choice: functionName });\n } else {\n // Default to jsonSchema method\n const jsonSchema = schemaToGeminiParameters(schema);\n llm = this.withConfig({\n responseSchema: jsonSchema as GeminiJsonSchema,\n });\n outputParser = new JsonOutputParser();\n }\n\n if (!includeRaw) {\n return llm.pipe(outputParser).withConfig({\n runName: \"ChatGoogleStructuredOutput\",\n }) as Runnable<BaseLanguageModelInput, RunOutput>;\n }\n\n const parserAssign = RunnablePassthrough.assign({\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n parsed: (input: any, config) => outputParser.invoke(input.raw, config),\n });\n const parserNone = RunnablePassthrough.assign({\n parsed: () => null,\n });\n const parsedWithFallback = parserAssign.withFallbacks({\n fallbacks: [parserNone],\n });\n return RunnableSequence.from<\n BaseLanguageModelInput,\n { raw: BaseMessage; parsed: RunOutput }\n >([\n {\n raw: llm,\n },\n parsedWithFallback,\n ]).withConfig({\n runName: \"StructuredOutputRunnable\",\n });\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"chat_models.cjs","names":["AbstractGoogleLLMConnection","getGeminiAPI","BaseChatModel","ensureParams","DefaultGeminiSafetyHandler","ApiKeyGoogleAuth","convertToGeminiTools","copyAIModelParams","ChatGenerationChunk","AIMessageChunk","PROFILES","schemaToGeminiParameters","JsonOutputKeyToolsParser","removeAdditionalProperties","JsonOutputParser","RunnablePassthrough","RunnableSequence"],"sources":["../src/chat_models.ts"],"sourcesContent":["import { getEnvironmentVariable } from \"@langchain/core/utils/env\";\nimport { UsageMetadata, type BaseMessage } from \"@langchain/core/messages\";\nimport { CallbackManagerForLLMRun } from \"@langchain/core/callbacks/manager\";\n\nimport {\n BaseChatModel,\n LangSmithParams,\n type BaseChatModelParams,\n} from \"@langchain/core/language_models/chat_models\";\nimport { ChatGenerationChunk, ChatResult } from \"@langchain/core/outputs\";\nimport { AIMessageChunk } from \"@langchain/core/messages\";\nimport {\n BaseLanguageModelInput,\n StructuredOutputMethodOptions,\n} from \"@langchain/core/language_models/base\";\nimport { type ModelProfile } from \"@langchain/core/language_models/profile\";\nimport {\n Runnable,\n RunnablePassthrough,\n RunnableSequence,\n} from \"@langchain/core/runnables\";\nimport { JsonOutputKeyToolsParser } from \"@langchain/core/output_parsers/openai_tools\";\nimport {\n BaseLLMOutputParser,\n JsonOutputParser,\n} from \"@langchain/core/output_parsers\";\nimport { AsyncCaller } from \"@langchain/core/utils/async_caller\";\nimport { concat } from \"@langchain/core/utils/stream\";\nimport {\n InteropZodType,\n isInteropZodSchema,\n} from \"@langchain/core/utils/types\";\nimport {\n GoogleAIBaseLLMInput,\n GoogleAIModelParams,\n GoogleAISafetySetting,\n GoogleConnectionParams,\n GooglePlatformType,\n GeminiTool,\n GoogleAIBaseLanguageModelCallOptions,\n GoogleAIAPI,\n GoogleAIAPIParams,\n GoogleSearchToolSetting,\n GoogleSpeechConfig,\n GeminiJsonSchema,\n} from \"./types.js\";\nimport {\n convertToGeminiTools,\n copyAIModelParams,\n copyAndValidateModelParamsInto,\n} from \"./utils/common.js\";\nimport { AbstractGoogleLLMConnection } from \"./connection.js\";\nimport { DefaultGeminiSafetyHandler, getGeminiAPI } from \"./utils/gemini.js\";\nimport { ApiKeyGoogleAuth, GoogleAbstractedClient } from \"./auth.js\";\nimport { JsonStream } from \"./utils/stream.js\";\nimport { ensureParams } from \"./utils/failed_handler.js\";\nimport type {\n GoogleBaseLLMInput,\n GoogleAISafetyHandler,\n GoogleAISafetyParams,\n GeminiFunctionDeclaration,\n GeminiFunctionSchema,\n GoogleAIToolType,\n GeminiAPIConfig,\n GoogleAIModelModality,\n} from \"./types.js\";\nimport {\n removeAdditionalProperties,\n schemaToGeminiParameters,\n} from \"./utils/zod_to_gemini_parameters.js\";\nimport PROFILES from \"./profiles.js\";\n\nexport class ChatConnection<AuthOptions> extends AbstractGoogleLLMConnection<\n BaseMessage[],\n AuthOptions\n> {\n convertSystemMessageToHumanContent: boolean | undefined;\n\n constructor(\n fields: GoogleAIBaseLLMInput<AuthOptions> | undefined,\n caller: AsyncCaller,\n client: GoogleAbstractedClient,\n streaming: boolean\n ) {\n super(fields, caller, client, streaming);\n this.convertSystemMessageToHumanContent =\n fields?.convertSystemMessageToHumanContent;\n }\n\n get useSystemInstruction(): boolean {\n return typeof this.convertSystemMessageToHumanContent === \"boolean\"\n ? !this.convertSystemMessageToHumanContent\n : this.computeUseSystemInstruction;\n }\n\n get computeUseSystemInstruction(): boolean {\n // This works on models from April 2024 and later\n // Vertex AI: gemini-1.5-pro and gemini-1.0-002 and later\n // AI Studio: gemini-1.5-pro-latest\n if (this.modelFamily === \"palm\") {\n return false;\n } else if (this.modelName === \"gemini-1.0-pro-001\") {\n return false;\n } else if (this.modelName.startsWith(\"gemini-pro-vision\")) {\n return false;\n } else if (this.modelName.startsWith(\"gemini-1.0-pro-vision\")) {\n return false;\n } else if (this.modelName === \"gemini-pro\" && this.platform === \"gai\") {\n // on AI Studio gemini-pro is still pointing at gemini-1.0-pro-001\n return false;\n } else if (this.modelFamily === \"gemma\") {\n // At least as of 12 Mar 2025 gemma 3 on AIS, trying to use system instructions yields an error:\n // \"Developer instruction is not enabled for models/gemma-3-27b-it\"\n return false;\n }\n return true;\n }\n\n computeGoogleSearchToolAdjustmentFromModel(): Exclude<\n GoogleSearchToolSetting,\n boolean\n > {\n if (this.modelName.startsWith(\"gemini-1.0\")) {\n return \"googleSearchRetrieval\";\n } else if (this.modelName.startsWith(\"gemini-1.5\")) {\n return \"googleSearchRetrieval\";\n } else {\n return \"googleSearch\";\n }\n }\n\n computeGoogleSearchToolAdjustment(\n apiConfig: GeminiAPIConfig\n ): Exclude<GoogleSearchToolSetting, true> {\n const adj = apiConfig.googleSearchToolAdjustment;\n if (adj === undefined || adj === true) {\n return this.computeGoogleSearchToolAdjustmentFromModel();\n } else {\n return adj;\n }\n }\n\n buildGeminiAPI(): GoogleAIAPI {\n const apiConfig: GeminiAPIConfig =\n (this.apiConfig as GeminiAPIConfig) ?? {};\n const googleSearchToolAdjustment =\n this.computeGoogleSearchToolAdjustment(apiConfig);\n const geminiConfig: GeminiAPIConfig = {\n useSystemInstruction: this.useSystemInstruction,\n googleSearchToolAdjustment,\n ...apiConfig,\n };\n return getGeminiAPI(geminiConfig);\n }\n\n get api(): GoogleAIAPI {\n switch (this.apiName) {\n case \"google\":\n return this.buildGeminiAPI();\n default:\n return super.api;\n }\n }\n}\n\n/**\n * Input to chat model class.\n */\nexport interface ChatGoogleBaseInput<AuthOptions>\n extends\n BaseChatModelParams,\n GoogleConnectionParams<AuthOptions>,\n GoogleAIModelParams,\n GoogleAISafetyParams,\n GoogleAIAPIParams,\n Pick<GoogleAIBaseLanguageModelCallOptions, \"streamUsage\"> {}\n\n/**\n * Integration with a Google chat model.\n */\nexport abstract class ChatGoogleBase<AuthOptions>\n extends BaseChatModel<GoogleAIBaseLanguageModelCallOptions, AIMessageChunk>\n implements ChatGoogleBaseInput<AuthOptions>\n{\n // Used for tracing, replace with the same name as your class\n static lc_name() {\n return \"ChatGoogle\";\n }\n\n get lc_secrets(): { [key: string]: string } | undefined {\n return {\n authOptions: \"GOOGLE_AUTH_OPTIONS\",\n };\n }\n\n lc_serializable = true;\n\n // Set based on modelName\n model: string;\n\n modelName = \"gemini-pro\";\n\n temperature: number;\n\n maxOutputTokens: number;\n\n maxReasoningTokens: number;\n\n topP: number;\n\n topK: number;\n\n seed: number;\n\n presencePenalty: number;\n\n frequencyPenalty: number;\n\n stopSequences: string[] = [];\n\n logprobs: boolean;\n\n topLogprobs: number = 0;\n\n safetySettings: GoogleAISafetySetting[] = [];\n\n responseModalities?: GoogleAIModelModality[];\n\n // May intentionally be undefined, meaning to compute this.\n convertSystemMessageToHumanContent: boolean | undefined;\n\n safetyHandler: GoogleAISafetyHandler;\n\n speechConfig: GoogleSpeechConfig;\n\n streamUsage = true;\n\n streaming = false;\n\n labels?: Record<string, string>;\n\n protected connection: ChatConnection<AuthOptions>;\n\n protected streamedConnection: ChatConnection<AuthOptions>;\n\n constructor(fields?: ChatGoogleBaseInput<AuthOptions>) {\n super(ensureParams(fields));\n\n copyAndValidateModelParamsInto(fields, this);\n this.safetyHandler =\n fields?.safetyHandler ?? new DefaultGeminiSafetyHandler();\n this.streamUsage = fields?.streamUsage ?? this.streamUsage;\n const client = this.buildClient(fields);\n this.buildConnection(fields ?? {}, client);\n }\n\n getLsParams(options: this[\"ParsedCallOptions\"]): LangSmithParams {\n const params = this.invocationParams(options);\n return {\n ls_provider: \"google_vertexai\",\n ls_model_name: this.model,\n ls_model_type: \"chat\",\n ls_temperature: params.temperature ?? undefined,\n ls_max_tokens: params.maxOutputTokens ?? undefined,\n ls_stop: options.stop,\n };\n }\n\n abstract buildAbstractedClient(\n fields?: GoogleAIBaseLLMInput<AuthOptions>\n ): GoogleAbstractedClient;\n\n buildApiKeyClient(apiKey: string): GoogleAbstractedClient {\n return new ApiKeyGoogleAuth(apiKey);\n }\n\n buildApiKey(fields?: GoogleAIBaseLLMInput<AuthOptions>): string | undefined {\n return fields?.apiKey ?? getEnvironmentVariable(\"GOOGLE_API_KEY\");\n }\n\n buildClient(\n fields?: GoogleAIBaseLLMInput<AuthOptions>\n ): GoogleAbstractedClient {\n const apiKey = this.buildApiKey(fields);\n if (apiKey) {\n return this.buildApiKeyClient(apiKey);\n } else {\n return this.buildAbstractedClient(fields);\n }\n }\n\n buildConnection(\n fields: GoogleBaseLLMInput<AuthOptions>,\n client: GoogleAbstractedClient\n ) {\n this.connection = new ChatConnection(\n { ...fields, ...this },\n this.caller,\n client,\n false\n );\n\n this.streamedConnection = new ChatConnection(\n { ...fields, ...this },\n this.caller,\n client,\n true\n );\n }\n\n get platform(): GooglePlatformType {\n return this.connection.platform;\n }\n\n override bindTools(\n tools: GoogleAIToolType[],\n kwargs?: Partial<GoogleAIBaseLanguageModelCallOptions>\n ): Runnable<\n BaseLanguageModelInput,\n AIMessageChunk,\n GoogleAIBaseLanguageModelCallOptions\n > {\n return this.withConfig({ tools: convertToGeminiTools(tools), ...kwargs });\n }\n\n _llmType() {\n return \"google\";\n }\n\n /**\n * Get the parameters used to invoke the model\n */\n override invocationParams(options?: this[\"ParsedCallOptions\"]) {\n return copyAIModelParams(this, options);\n }\n\n async _generate(\n messages: BaseMessage[],\n options: this[\"ParsedCallOptions\"],\n runManager: CallbackManagerForLLMRun | undefined\n ): Promise<ChatResult> {\n options.signal?.throwIfAborted();\n const parameters = this.invocationParams(options);\n if (this.streaming) {\n const stream = this._streamResponseChunks(messages, options, runManager);\n let finalChunk: ChatGenerationChunk | null = null;\n for await (const chunk of stream) {\n finalChunk = !finalChunk ? chunk : concat(finalChunk, chunk);\n }\n if (!finalChunk) {\n throw new Error(\"No chunks were returned from the stream.\");\n }\n return {\n generations: [finalChunk],\n };\n }\n\n const response = await this.connection.request(\n messages,\n parameters,\n options,\n runManager\n );\n const ret = this.connection.api.responseToChatResult(response);\n const chunk = ret?.generations?.[0];\n if (chunk) {\n await runManager?.handleLLMNewToken(chunk.text || \"\");\n }\n return ret;\n }\n\n async *_streamResponseChunks(\n _messages: BaseMessage[],\n options: this[\"ParsedCallOptions\"],\n runManager?: CallbackManagerForLLMRun\n ): AsyncGenerator<ChatGenerationChunk> {\n // Make the call as a streaming request\n const parameters = this.invocationParams(options);\n const response = await this.streamedConnection.request(\n _messages,\n parameters,\n options,\n runManager\n );\n\n // Get the streaming parser of the response\n const stream = response.data as JsonStream;\n let usageMetadata: UsageMetadata | undefined;\n // Loop until the end of the stream\n // During the loop, yield each time we get a chunk from the streaming parser\n // that is either available or added to the queue\n while (!stream.streamDone) {\n if (options.signal?.aborted) {\n return;\n }\n const output = await stream.nextChunk();\n await runManager?.handleCustomEvent(\n `google-chunk-${this.constructor.name}`,\n {\n output,\n }\n );\n if (\n output &&\n output.usageMetadata &&\n this.streamUsage !== false &&\n options.streamUsage !== false\n ) {\n usageMetadata = {\n input_tokens: output.usageMetadata.promptTokenCount,\n output_tokens: output.usageMetadata.candidatesTokenCount,\n total_tokens: output.usageMetadata.totalTokenCount,\n };\n }\n const chunk =\n output !== null\n ? this.connection.api.responseToChatGeneration({ data: output })\n : new ChatGenerationChunk({\n text: \"\",\n generationInfo: { finishReason: \"stop\" },\n message: new AIMessageChunk({\n content: \"\",\n usage_metadata: usageMetadata,\n }),\n });\n if (chunk) {\n yield chunk;\n await runManager?.handleLLMNewToken(\n chunk.text ?? \"\",\n undefined,\n undefined,\n undefined,\n undefined,\n { chunk }\n );\n }\n }\n }\n\n /** @ignore */\n _combineLLMOutput() {\n return [];\n }\n\n /**\n * Return profiling information for the model.\n *\n * Provides information about the model's capabilities and constraints,\n * including token limits, multimodal support, and advanced features like\n * tool calling and structured output.\n *\n * @returns {ModelProfile} An object describing the model's capabilities and constraints\n */\n get profile(): ModelProfile {\n return PROFILES[this.model] ?? {};\n }\n\n withStructuredOutput<\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n RunOutput extends Record<string, any> = Record<string, any>,\n >(\n outputSchema:\n | InteropZodType<RunOutput>\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n | Record<string, any>,\n config?: StructuredOutputMethodOptions<false>\n ): Runnable<BaseLanguageModelInput, RunOutput>;\n\n withStructuredOutput<\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n RunOutput extends Record<string, any> = Record<string, any>,\n >(\n outputSchema:\n | InteropZodType<RunOutput>\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n | Record<string, any>,\n config?: StructuredOutputMethodOptions<true>\n ): Runnable<BaseLanguageModelInput, { raw: BaseMessage; parsed: RunOutput }>;\n\n withStructuredOutput<\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n RunOutput extends Record<string, any> = Record<string, any>,\n >(\n outputSchema:\n | InteropZodType<RunOutput>\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n | Record<string, any>,\n config?: StructuredOutputMethodOptions<boolean>\n ):\n | Runnable<BaseLanguageModelInput, RunOutput>\n | Runnable<\n BaseLanguageModelInput,\n { raw: BaseMessage; parsed: RunOutput }\n > {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const schema: InteropZodType<RunOutput> | Record<string, any> =\n outputSchema;\n const name = config?.name;\n const method = config?.method;\n const includeRaw = config?.includeRaw;\n if (method === \"jsonMode\") {\n throw new Error(\n `Google only supports \"jsonSchema\" or \"functionCalling\" as a method.`\n );\n }\n\n let llm;\n let outputParser: BaseLLMOutputParser<RunOutput>;\n if (method === \"functionCalling\") {\n let functionName = name ?? \"extract\";\n let tools: GeminiTool[];\n if (isInteropZodSchema(schema)) {\n const jsonSchema = schemaToGeminiParameters(schema);\n tools = [\n {\n functionDeclarations: [\n {\n name: functionName,\n description:\n jsonSchema.description ?? \"A function available to call.\",\n parameters: jsonSchema as GeminiFunctionSchema,\n },\n ],\n },\n ];\n outputParser = new JsonOutputKeyToolsParser({\n returnSingle: true,\n keyName: functionName,\n zodSchema: schema,\n });\n } else {\n let geminiFunctionDefinition: GeminiFunctionDeclaration;\n if (\n typeof schema.name === \"string\" &&\n typeof schema.parameters === \"object\" &&\n schema.parameters != null\n ) {\n geminiFunctionDefinition = schema as GeminiFunctionDeclaration;\n functionName = schema.name;\n } else {\n // We are providing the schema for *just* the parameters, probably\n const parameters: GeminiJsonSchema =\n removeAdditionalProperties(schema);\n geminiFunctionDefinition = {\n name: functionName,\n description: schema.description ?? \"\",\n parameters,\n };\n }\n tools = [\n {\n functionDeclarations: [geminiFunctionDefinition],\n },\n ];\n outputParser = new JsonOutputKeyToolsParser<RunOutput>({\n returnSingle: true,\n keyName: functionName,\n });\n }\n llm = this.bindTools(tools).withConfig({ tool_choice: functionName });\n } else {\n // Default to jsonSchema method\n const jsonSchema = schemaToGeminiParameters(schema);\n llm = this.withConfig({\n responseSchema: jsonSchema as GeminiJsonSchema,\n });\n outputParser = new JsonOutputParser();\n }\n\n if (!includeRaw) {\n return llm.pipe(outputParser).withConfig({\n runName: \"ChatGoogleStructuredOutput\",\n }) as Runnable<BaseLanguageModelInput, RunOutput>;\n }\n\n const parserAssign = RunnablePassthrough.assign({\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n parsed: (input: any, config) => outputParser.invoke(input.raw, config),\n });\n const parserNone = RunnablePassthrough.assign({\n parsed: () => null,\n });\n const parsedWithFallback = parserAssign.withFallbacks({\n fallbacks: [parserNone],\n });\n return RunnableSequence.from<\n BaseLanguageModelInput,\n { raw: BaseMessage; parsed: RunOutput }\n >([\n {\n raw: llm,\n },\n parsedWithFallback,\n ]).withConfig({\n runName: \"StructuredOutputRunnable\",\n });\n }\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat_models.d.cts","names":["BaseMessage","CallbackManagerForLLMRun","BaseChatModel","LangSmithParams","BaseChatModelParams","ChatGenerationChunk","ChatResult","AIMessageChunk","BaseLanguageModelInput","StructuredOutputMethodOptions","ModelProfile","Runnable","AsyncCaller","InteropZodType","GoogleAIBaseLLMInput","GoogleAIModelParams","GoogleAISafetySetting","GoogleConnectionParams","GooglePlatformType","GoogleAIBaseLanguageModelCallOptions","GoogleAIAPI","GoogleAIAPIParams","GoogleSearchToolSetting","GoogleSpeechConfig","AbstractGoogleLLMConnection","GoogleAbstractedClient","GoogleBaseLLMInput","GoogleAISafetyHandler","GoogleAISafetyParams","GoogleAIToolType","GeminiAPIConfig","GoogleAIModelModality","ChatConnection","AuthOptions","Exclude","ChatGoogleBaseInput","Pick","ChatGoogleBase","RunOutput","Record","Partial","__types_js0","GoogleAIModelRequestParams","Promise","AsyncGenerator"],"sources":["../src/chat_models.d.ts"],"sourcesContent":["import { type BaseMessage } from \"@langchain/core/messages\";\nimport { CallbackManagerForLLMRun } from \"@langchain/core/callbacks/manager\";\nimport { BaseChatModel, LangSmithParams, type BaseChatModelParams } from \"@langchain/core/language_models/chat_models\";\nimport { ChatGenerationChunk, ChatResult } from \"@langchain/core/outputs\";\nimport { AIMessageChunk } from \"@langchain/core/messages\";\nimport { BaseLanguageModelInput, StructuredOutputMethodOptions } from \"@langchain/core/language_models/base\";\nimport { type ModelProfile } from \"@langchain/core/language_models/profile\";\nimport { Runnable } from \"@langchain/core/runnables\";\nimport { AsyncCaller } from \"@langchain/core/utils/async_caller\";\nimport { InteropZodType } from \"@langchain/core/utils/types\";\nimport { GoogleAIBaseLLMInput, GoogleAIModelParams, GoogleAISafetySetting, GoogleConnectionParams, GooglePlatformType, GoogleAIBaseLanguageModelCallOptions, GoogleAIAPI, GoogleAIAPIParams, GoogleSearchToolSetting, GoogleSpeechConfig } from \"./types.js\";\nimport { AbstractGoogleLLMConnection } from \"./connection.js\";\nimport { GoogleAbstractedClient } from \"./auth.js\";\nimport type { GoogleBaseLLMInput, GoogleAISafetyHandler, GoogleAISafetyParams, GoogleAIToolType, GeminiAPIConfig, GoogleAIModelModality } from \"./types.js\";\nexport declare class ChatConnection<AuthOptions> extends AbstractGoogleLLMConnection<BaseMessage[], AuthOptions> {\n convertSystemMessageToHumanContent: boolean | undefined;\n constructor(fields: GoogleAIBaseLLMInput<AuthOptions> | undefined, caller: AsyncCaller, client: GoogleAbstractedClient, streaming: boolean);\n get useSystemInstruction(): boolean;\n get computeUseSystemInstruction(): boolean;\n computeGoogleSearchToolAdjustmentFromModel(): Exclude<GoogleSearchToolSetting, boolean>;\n computeGoogleSearchToolAdjustment(apiConfig: GeminiAPIConfig): Exclude<GoogleSearchToolSetting, true>;\n buildGeminiAPI(): GoogleAIAPI;\n get api(): GoogleAIAPI;\n}\n/**\n * Input to chat model class.\n */\nexport interface ChatGoogleBaseInput<AuthOptions> extends BaseChatModelParams, GoogleConnectionParams<AuthOptions>, GoogleAIModelParams, GoogleAISafetyParams, GoogleAIAPIParams, Pick<GoogleAIBaseLanguageModelCallOptions, \"streamUsage\"> {\n}\n/**\n * Integration with a Google chat model.\n */\nexport declare abstract class ChatGoogleBase<AuthOptions> extends BaseChatModel<GoogleAIBaseLanguageModelCallOptions, AIMessageChunk> implements ChatGoogleBaseInput<AuthOptions> {\n static lc_name(): string;\n get lc_secrets(): {\n [key: string]: string;\n } | undefined;\n lc_serializable: boolean;\n model: string;\n modelName: string;\n temperature: number;\n maxOutputTokens: number;\n maxReasoningTokens: number;\n topP: number;\n topK: number;\n seed: number;\n presencePenalty: number;\n frequencyPenalty: number;\n stopSequences: string[];\n logprobs: boolean;\n topLogprobs: number;\n safetySettings: GoogleAISafetySetting[];\n responseModalities?: GoogleAIModelModality[];\n convertSystemMessageToHumanContent: boolean | undefined;\n safetyHandler: GoogleAISafetyHandler;\n speechConfig: GoogleSpeechConfig;\n streamUsage: boolean;\n streaming: boolean;\n labels?: Record<string, string>;\n protected connection: ChatConnection<AuthOptions>;\n protected streamedConnection: ChatConnection<AuthOptions>;\n constructor(fields?: ChatGoogleBaseInput<AuthOptions>);\n getLsParams(options: this[\"ParsedCallOptions\"]): LangSmithParams;\n abstract buildAbstractedClient(fields?: GoogleAIBaseLLMInput<AuthOptions>): GoogleAbstractedClient;\n buildApiKeyClient(apiKey: string): GoogleAbstractedClient;\n buildApiKey(fields?: GoogleAIBaseLLMInput<AuthOptions>): string | undefined;\n buildClient(fields?: GoogleAIBaseLLMInput<AuthOptions>): GoogleAbstractedClient;\n buildConnection(fields: GoogleBaseLLMInput<AuthOptions>, client: GoogleAbstractedClient): void;\n get platform(): GooglePlatformType;\n bindTools(tools: GoogleAIToolType[], kwargs?: Partial<GoogleAIBaseLanguageModelCallOptions>): Runnable<BaseLanguageModelInput, AIMessageChunk, GoogleAIBaseLanguageModelCallOptions>;\n _llmType(): string;\n /**\n * Get the parameters used to invoke the model\n */\n invocationParams(options?: this[\"ParsedCallOptions\"]): import(\"./types.js\").GoogleAIModelRequestParams;\n _generate(messages: BaseMessage[], options: this[\"ParsedCallOptions\"], runManager: CallbackManagerForLLMRun | undefined): Promise<ChatResult>;\n _streamResponseChunks(_messages: BaseMessage[], options: this[\"ParsedCallOptions\"], runManager?: CallbackManagerForLLMRun): AsyncGenerator<ChatGenerationChunk>;\n /** @ignore */\n _combineLLMOutput(): never[];\n /**\n * Return profiling information for the model.\n *\n * Provides information about the model's capabilities and constraints,\n * including token limits, multimodal support, and advanced features like\n * tool calling and structured output.\n *\n * @returns {ModelProfile} An object describing the model's capabilities and constraints\n */\n get profile(): ModelProfile;\n withStructuredOutput<RunOutput extends Record<string, any> = Record<string, any>>(outputSchema: InteropZodType<RunOutput> | Record<string, any>, config?: StructuredOutputMethodOptions<false>): Runnable<BaseLanguageModelInput, RunOutput>;\n withStructuredOutput<RunOutput extends Record<string, any> = Record<string, any>>(outputSchema: InteropZodType<RunOutput> | Record<string, any>, config?: StructuredOutputMethodOptions<true>): Runnable<BaseLanguageModelInput, {\n raw: BaseMessage;\n parsed: RunOutput;\n }>;\n}\n//# sourceMappingURL=chat_models.d.ts.map"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"chat_models.d.cts","names":[],"sources":["../src/chat_models.ts"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat_models.d.ts","names":["BaseMessage","CallbackManagerForLLMRun","BaseChatModel","LangSmithParams","BaseChatModelParams","ChatGenerationChunk","ChatResult","AIMessageChunk","BaseLanguageModelInput","StructuredOutputMethodOptions","ModelProfile","Runnable","AsyncCaller","InteropZodType","GoogleAIBaseLLMInput","GoogleAIModelParams","GoogleAISafetySetting","GoogleConnectionParams","GooglePlatformType","GoogleAIBaseLanguageModelCallOptions","GoogleAIAPI","GoogleAIAPIParams","GoogleSearchToolSetting","GoogleSpeechConfig","AbstractGoogleLLMConnection","GoogleAbstractedClient","GoogleBaseLLMInput","GoogleAISafetyHandler","GoogleAISafetyParams","GoogleAIToolType","GeminiAPIConfig","GoogleAIModelModality","ChatConnection","AuthOptions","Exclude","ChatGoogleBaseInput","Pick","ChatGoogleBase","RunOutput","Record","Partial","__types_js0","GoogleAIModelRequestParams","Promise","AsyncGenerator"],"sources":["../src/chat_models.d.ts"],"sourcesContent":["import { type BaseMessage } from \"@langchain/core/messages\";\nimport { CallbackManagerForLLMRun } from \"@langchain/core/callbacks/manager\";\nimport { BaseChatModel, LangSmithParams, type BaseChatModelParams } from \"@langchain/core/language_models/chat_models\";\nimport { ChatGenerationChunk, ChatResult } from \"@langchain/core/outputs\";\nimport { AIMessageChunk } from \"@langchain/core/messages\";\nimport { BaseLanguageModelInput, StructuredOutputMethodOptions } from \"@langchain/core/language_models/base\";\nimport { type ModelProfile } from \"@langchain/core/language_models/profile\";\nimport { Runnable } from \"@langchain/core/runnables\";\nimport { AsyncCaller } from \"@langchain/core/utils/async_caller\";\nimport { InteropZodType } from \"@langchain/core/utils/types\";\nimport { GoogleAIBaseLLMInput, GoogleAIModelParams, GoogleAISafetySetting, GoogleConnectionParams, GooglePlatformType, GoogleAIBaseLanguageModelCallOptions, GoogleAIAPI, GoogleAIAPIParams, GoogleSearchToolSetting, GoogleSpeechConfig } from \"./types.js\";\nimport { AbstractGoogleLLMConnection } from \"./connection.js\";\nimport { GoogleAbstractedClient } from \"./auth.js\";\nimport type { GoogleBaseLLMInput, GoogleAISafetyHandler, GoogleAISafetyParams, GoogleAIToolType, GeminiAPIConfig, GoogleAIModelModality } from \"./types.js\";\nexport declare class ChatConnection<AuthOptions> extends AbstractGoogleLLMConnection<BaseMessage[], AuthOptions> {\n convertSystemMessageToHumanContent: boolean | undefined;\n constructor(fields: GoogleAIBaseLLMInput<AuthOptions> | undefined, caller: AsyncCaller, client: GoogleAbstractedClient, streaming: boolean);\n get useSystemInstruction(): boolean;\n get computeUseSystemInstruction(): boolean;\n computeGoogleSearchToolAdjustmentFromModel(): Exclude<GoogleSearchToolSetting, boolean>;\n computeGoogleSearchToolAdjustment(apiConfig: GeminiAPIConfig): Exclude<GoogleSearchToolSetting, true>;\n buildGeminiAPI(): GoogleAIAPI;\n get api(): GoogleAIAPI;\n}\n/**\n * Input to chat model class.\n */\nexport interface ChatGoogleBaseInput<AuthOptions> extends BaseChatModelParams, GoogleConnectionParams<AuthOptions>, GoogleAIModelParams, GoogleAISafetyParams, GoogleAIAPIParams, Pick<GoogleAIBaseLanguageModelCallOptions, \"streamUsage\"> {\n}\n/**\n * Integration with a Google chat model.\n */\nexport declare abstract class ChatGoogleBase<AuthOptions> extends BaseChatModel<GoogleAIBaseLanguageModelCallOptions, AIMessageChunk> implements ChatGoogleBaseInput<AuthOptions> {\n static lc_name(): string;\n get lc_secrets(): {\n [key: string]: string;\n } | undefined;\n lc_serializable: boolean;\n model: string;\n modelName: string;\n temperature: number;\n maxOutputTokens: number;\n maxReasoningTokens: number;\n topP: number;\n topK: number;\n seed: number;\n presencePenalty: number;\n frequencyPenalty: number;\n stopSequences: string[];\n logprobs: boolean;\n topLogprobs: number;\n safetySettings: GoogleAISafetySetting[];\n responseModalities?: GoogleAIModelModality[];\n convertSystemMessageToHumanContent: boolean | undefined;\n safetyHandler: GoogleAISafetyHandler;\n speechConfig: GoogleSpeechConfig;\n streamUsage: boolean;\n streaming: boolean;\n labels?: Record<string, string>;\n protected connection: ChatConnection<AuthOptions>;\n protected streamedConnection: ChatConnection<AuthOptions>;\n constructor(fields?: ChatGoogleBaseInput<AuthOptions>);\n getLsParams(options: this[\"ParsedCallOptions\"]): LangSmithParams;\n abstract buildAbstractedClient(fields?: GoogleAIBaseLLMInput<AuthOptions>): GoogleAbstractedClient;\n buildApiKeyClient(apiKey: string): GoogleAbstractedClient;\n buildApiKey(fields?: GoogleAIBaseLLMInput<AuthOptions>): string | undefined;\n buildClient(fields?: GoogleAIBaseLLMInput<AuthOptions>): GoogleAbstractedClient;\n buildConnection(fields: GoogleBaseLLMInput<AuthOptions>, client: GoogleAbstractedClient): void;\n get platform(): GooglePlatformType;\n bindTools(tools: GoogleAIToolType[], kwargs?: Partial<GoogleAIBaseLanguageModelCallOptions>): Runnable<BaseLanguageModelInput, AIMessageChunk, GoogleAIBaseLanguageModelCallOptions>;\n _llmType(): string;\n /**\n * Get the parameters used to invoke the model\n */\n invocationParams(options?: this[\"ParsedCallOptions\"]): import(\"./types.js\").GoogleAIModelRequestParams;\n _generate(messages: BaseMessage[], options: this[\"ParsedCallOptions\"], runManager: CallbackManagerForLLMRun | undefined): Promise<ChatResult>;\n _streamResponseChunks(_messages: BaseMessage[], options: this[\"ParsedCallOptions\"], runManager?: CallbackManagerForLLMRun): AsyncGenerator<ChatGenerationChunk>;\n /** @ignore */\n _combineLLMOutput(): never[];\n /**\n * Return profiling information for the model.\n *\n * Provides information about the model's capabilities and constraints,\n * including token limits, multimodal support, and advanced features like\n * tool calling and structured output.\n *\n * @returns {ModelProfile} An object describing the model's capabilities and constraints\n */\n get profile(): ModelProfile;\n withStructuredOutput<RunOutput extends Record<string, any> = Record<string, any>>(outputSchema: InteropZodType<RunOutput> | Record<string, any>, config?: StructuredOutputMethodOptions<false>): Runnable<BaseLanguageModelInput, RunOutput>;\n withStructuredOutput<RunOutput extends Record<string, any> = Record<string, any>>(outputSchema: InteropZodType<RunOutput> | Record<string, any>, config?: StructuredOutputMethodOptions<true>): Runnable<BaseLanguageModelInput, {\n raw: BaseMessage;\n parsed: RunOutput;\n }>;\n}\n//# sourceMappingURL=chat_models.d.ts.map"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"chat_models.d.ts","names":[],"sources":["../src/chat_models.ts"],"mappings":"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"}
|
package/dist/chat_models.js
CHANGED
|
@@ -4,7 +4,7 @@ import { convertToGeminiTools, copyAIModelParams, copyAndValidateModelParamsInto
|
|
|
4
4
|
import { ensureParams } from "./utils/failed_handler.js";
|
|
5
5
|
import { AbstractGoogleLLMConnection } from "./connection.js";
|
|
6
6
|
import { ApiKeyGoogleAuth } from "./auth.js";
|
|
7
|
-
import
|
|
7
|
+
import PROFILES from "./profiles.js";
|
|
8
8
|
import { getEnvironmentVariable } from "@langchain/core/utils/env";
|
|
9
9
|
import { BaseChatModel } from "@langchain/core/language_models/chat_models";
|
|
10
10
|
import { ChatGenerationChunk } from "@langchain/core/outputs";
|
|
@@ -47,12 +47,11 @@ var ChatConnection = class extends AbstractGoogleLLMConnection {
|
|
|
47
47
|
buildGeminiAPI() {
|
|
48
48
|
const apiConfig = this.apiConfig ?? {};
|
|
49
49
|
const googleSearchToolAdjustment = this.computeGoogleSearchToolAdjustment(apiConfig);
|
|
50
|
-
|
|
50
|
+
return getGeminiAPI({
|
|
51
51
|
useSystemInstruction: this.useSystemInstruction,
|
|
52
52
|
googleSearchToolAdjustment,
|
|
53
53
|
...apiConfig
|
|
54
|
-
};
|
|
55
|
-
return getGeminiAPI(geminiConfig);
|
|
54
|
+
});
|
|
56
55
|
}
|
|
57
56
|
get api() {
|
|
58
57
|
switch (this.apiName) {
|
|
@@ -159,7 +158,7 @@ var ChatGoogleBase = class extends BaseChatModel {
|
|
|
159
158
|
if (this.streaming) {
|
|
160
159
|
const stream = this._streamResponseChunks(messages, options, runManager);
|
|
161
160
|
let finalChunk = null;
|
|
162
|
-
for await (const chunk
|
|
161
|
+
for await (const chunk of stream) finalChunk = !finalChunk ? chunk : concat(finalChunk, chunk);
|
|
163
162
|
if (!finalChunk) throw new Error("No chunks were returned from the stream.");
|
|
164
163
|
return { generations: [finalChunk] };
|
|
165
164
|
}
|
|
@@ -171,8 +170,7 @@ var ChatGoogleBase = class extends BaseChatModel {
|
|
|
171
170
|
}
|
|
172
171
|
async *_streamResponseChunks(_messages, options, runManager) {
|
|
173
172
|
const parameters = this.invocationParams(options);
|
|
174
|
-
const
|
|
175
|
-
const stream = response.data;
|
|
173
|
+
const stream = (await this.streamedConnection.request(_messages, parameters, options, runManager)).data;
|
|
176
174
|
let usageMetadata;
|
|
177
175
|
while (!stream.streamDone) {
|
|
178
176
|
if (options.signal?.aborted) return;
|
|
@@ -211,7 +209,7 @@ var ChatGoogleBase = class extends BaseChatModel {
|
|
|
211
209
|
* @returns {ModelProfile} An object describing the model's capabilities and constraints
|
|
212
210
|
*/
|
|
213
211
|
get profile() {
|
|
214
|
-
return
|
|
212
|
+
return PROFILES[this.model] ?? {};
|
|
215
213
|
}
|
|
216
214
|
withStructuredOutput(outputSchema, config) {
|
|
217
215
|
const schema = outputSchema;
|
|
@@ -262,7 +260,7 @@ var ChatGoogleBase = class extends BaseChatModel {
|
|
|
262
260
|
outputParser = new JsonOutputParser();
|
|
263
261
|
}
|
|
264
262
|
if (!includeRaw) return llm.pipe(outputParser).withConfig({ runName: "ChatGoogleStructuredOutput" });
|
|
265
|
-
const parserAssign = RunnablePassthrough.assign({ parsed: (input, config
|
|
263
|
+
const parserAssign = RunnablePassthrough.assign({ parsed: (input, config) => outputParser.invoke(input.raw, config) });
|
|
266
264
|
const parserNone = RunnablePassthrough.assign({ parsed: () => null });
|
|
267
265
|
const parsedWithFallback = parserAssign.withFallbacks({ fallbacks: [parserNone] });
|
|
268
266
|
return RunnableSequence.from([{ raw: llm }, parsedWithFallback]).withConfig({ runName: "StructuredOutputRunnable" });
|