@langchain/community
Version:
Third-party integrations for LangChain.js
1 lines • 4.87 kB
Source Map (JSON)
{"version":3,"file":"gradient_ai.cjs","names":["LLM","Gradient"],"sources":["../../src/llms/gradient_ai.ts"],"sourcesContent":["import { Gradient } from \"@gradientai/nodejs-sdk\";\nimport {\n type BaseLLMCallOptions,\n type BaseLLMParams,\n LLM,\n} from \"@langchain/core/language_models/llms\";\nimport { getEnvironmentVariable } from \"@langchain/core/utils/env\";\n\n/**\n * The GradientLLMParams interface defines the input parameters for\n * the GradientLLM class.\n */\nexport interface GradientLLMParams extends BaseLLMParams {\n /**\n * Gradient AI Access Token.\n * Provide Access Token if you do not wish to automatically pull from env.\n */\n gradientAccessKey?: string;\n /**\n * Gradient Workspace Id.\n * Provide workspace id if you do not wish to automatically pull from env.\n */\n workspaceId?: string;\n /**\n * Parameters accepted by the Gradient npm package.\n */\n inferenceParameters?: Record<string, unknown>;\n /**\n * Gradient AI Model Slug.\n */\n modelSlug?: string;\n /**\n * Gradient Adapter ID for custom fine tuned models.\n */\n adapterId?: string;\n}\n\n/**\n * The GradientLLM class is used to interact with Gradient AI inference Endpoint models.\n * This requires your Gradient AI Access Token which is autoloaded if not specified.\n */\nexport class GradientLLM extends LLM<BaseLLMCallOptions> {\n static lc_name() {\n return \"GradientLLM\";\n }\n\n get lc_secrets(): { [key: string]: string } | undefined {\n return {\n gradientAccessKey: \"GRADIENT_ACCESS_TOKEN\",\n workspaceId: \"GRADIENT_WORKSPACE_ID\",\n };\n }\n\n modelSlug = \"llama2-7b-chat\";\n\n adapterId?: string;\n\n gradientAccessKey?: string;\n\n workspaceId?: string;\n\n inferenceParameters?: Record<string, unknown>;\n\n lc_serializable = true;\n\n // Gradient AI does not export the BaseModel type. Once it does, we can use it here.\n // oxlint-disable-next-line typescript/no-explicit-any\n model: any;\n\n constructor(fields: GradientLLMParams) {\n super(fields);\n\n this.modelSlug = fields?.modelSlug ?? this.modelSlug;\n this.adapterId = fields?.adapterId;\n this.gradientAccessKey =\n fields?.gradientAccessKey ??\n getEnvironmentVariable(\"GRADIENT_ACCESS_TOKEN\");\n this.workspaceId =\n fields?.workspaceId ?? getEnvironmentVariable(\"GRADIENT_WORKSPACE_ID\");\n\n this.inferenceParameters = fields.inferenceParameters;\n\n if (!this.gradientAccessKey) {\n throw new Error(\"Missing Gradient AI Access Token\");\n }\n\n if (!this.workspaceId) {\n throw new Error(\"Missing Gradient AI Workspace ID\");\n }\n }\n\n _llmType() {\n return \"gradient_ai\";\n }\n\n /**\n * Calls the Gradient AI endpoint and retrieves the result.\n * @param {string} prompt The input prompt.\n * @returns {Promise<string>} A promise that resolves to the generated string.\n */\n /** @ignore */\n async _call(\n prompt: string,\n _options: this[\"ParsedCallOptions\"]\n ): Promise<string> {\n await this.setModel();\n\n // GradientLLM does not export the CompleteResponse type. Once it does, we can use it here.\n interface CompleteResponse {\n finishReason: string;\n generatedOutput: string;\n }\n\n const response = (await this.caller.call(async () =>\n this.model.complete({\n query: prompt,\n ...this.inferenceParameters,\n })\n )) as CompleteResponse;\n\n return response.generatedOutput;\n }\n\n async setModel() {\n if (this.model) return;\n\n const gradient = new Gradient({\n accessToken: this.gradientAccessKey,\n workspaceId: this.workspaceId,\n });\n\n if (this.adapterId) {\n this.model = await gradient.getModelAdapter({\n modelAdapterId: this.adapterId,\n });\n } else {\n this.model = await gradient.getBaseModel({\n baseModelSlug: this.modelSlug,\n });\n }\n }\n}\n"],"mappings":";;;;;;;;;;;AAyCA,IAAa,cAAb,cAAiCA,qCAAAA,IAAwB;CACvD,OAAO,UAAU;AACf,SAAO;;CAGT,IAAI,aAAoD;AACtD,SAAO;GACL,mBAAmB;GACnB,aAAa;GACd;;CAGH,YAAY;CAEZ;CAEA;CAEA;CAEA;CAEA,kBAAkB;CAIlB;CAEA,YAAY,QAA2B;AACrC,QAAM,OAAO;AAEb,OAAK,YAAY,QAAQ,aAAa,KAAK;AAC3C,OAAK,YAAY,QAAQ;AACzB,OAAK,oBACH,QAAQ,sBAAA,GAAA,0BAAA,wBACe,wBAAwB;AACjD,OAAK,cACH,QAAQ,gBAAA,GAAA,0BAAA,wBAAsC,wBAAwB;AAExE,OAAK,sBAAsB,OAAO;AAElC,MAAI,CAAC,KAAK,kBACR,OAAM,IAAI,MAAM,mCAAmC;AAGrD,MAAI,CAAC,KAAK,YACR,OAAM,IAAI,MAAM,mCAAmC;;CAIvD,WAAW;AACT,SAAO;;;;;;;;CAST,MAAM,MACJ,QACA,UACiB;AACjB,QAAM,KAAK,UAAU;AAerB,UAPkB,MAAM,KAAK,OAAO,KAAK,YACvC,KAAK,MAAM,SAAS;GAClB,OAAO;GACP,GAAG,KAAK;GACT,CAAC,CACH,EAEe;;CAGlB,MAAM,WAAW;AACf,MAAI,KAAK,MAAO;EAEhB,MAAM,WAAW,IAAIC,uBAAAA,SAAS;GAC5B,aAAa,KAAK;GAClB,aAAa,KAAK;GACnB,CAAC;AAEF,MAAI,KAAK,UACP,MAAK,QAAQ,MAAM,SAAS,gBAAgB,EAC1C,gBAAgB,KAAK,WACtB,CAAC;MAEF,MAAK,QAAQ,MAAM,SAAS,aAAa,EACvC,eAAe,KAAK,WACrB,CAAC"}