From 6fb775fe9555b3b337b48bf8a8bd99152f926623 Mon Sep 17 00:00:00 2001 From: jiabaow <60721007+jiabaow@users.noreply.github.com> Date: Tue, 11 Jun 2024 13:56:34 -0700 Subject: [PATCH] add Fireworks LLM (#2597) * add Fireworks LLM * support multiple models * Update Fireworks.ts * fix linting --------- Co-authored-by: Henry Heng --- .../nodes/llms/Fireworks/Fireworks.ts | 68 ++++++++++++++++++ .../nodes/llms/Fireworks/fireworks.png | Bin 0 -> 4411 bytes 2 files changed, 68 insertions(+) create mode 100644 packages/components/nodes/llms/Fireworks/Fireworks.ts create mode 100644 packages/components/nodes/llms/Fireworks/fireworks.png diff --git a/packages/components/nodes/llms/Fireworks/Fireworks.ts b/packages/components/nodes/llms/Fireworks/Fireworks.ts new file mode 100644 index 000000000..9d1c1791a --- /dev/null +++ b/packages/components/nodes/llms/Fireworks/Fireworks.ts @@ -0,0 +1,68 @@ +import { getBaseClasses, getCredentialData, getCredentialParam, ICommonObject, INode, INodeData, INodeParams } from '../../../src' +import { Fireworks } from '@langchain/community/llms/fireworks' +import { BaseCache } from '@langchain/core/caches' + +class Fireworks_LLMs implements INode { + label: string + name: string + version: number + type: string + icon: string + category: string + description: string + baseClasses: string[] + credential: INodeParams + inputs: INodeParams[] + + constructor() { + this.label = 'Fireworks' + this.name = 'fireworks' + this.version = 1.0 + this.type = 'Fireworks' + this.icon = 'fireworks.png' + this.category = 'LLMs' + this.description = 'Wrapper around Fireworks API for large language models' + this.baseClasses = [this.type, ...getBaseClasses(Fireworks)] + this.credential = { + label: 'Connect Credential', + name: 'credential', + type: 'credential', + credentialNames: ['fireworksApi'] + } + this.inputs = [ + { + label: 'Cache', + name: 'cache', + type: 'BaseCache', + optional: true + }, + { + label: 'Model Name', + name: 'modelName', + type: 'string', + default: 'accounts/fireworks/models/llama-v3-70b-instruct-hf', + description: 'For more details see https://fireworks.ai/models', + optional: true + } + ] + } + + async init(nodeData: INodeData, _: string, options: ICommonObject): Promise { + const cache = nodeData.inputs?.cache as BaseCache + const modelName = nodeData.inputs?.modelName as string + + const credentialData = await getCredentialData(nodeData.credential ?? '', options) + const fireworksKey = getCredentialParam('fireworksApiKey', credentialData, nodeData) + + const obj: any = { + fireworksApiKey: fireworksKey, + modelName: modelName + } + if (cache) obj.cache = cache + + const fireworks = new Fireworks(obj) + return fireworks + } +} + +module.exports = { nodeClass: Fireworks_LLMs } diff --git a/packages/components/nodes/llms/Fireworks/fireworks.png b/packages/components/nodes/llms/Fireworks/fireworks.png new file mode 100644 index 0000000000000000000000000000000000000000..7b8d6cfd07cc8c8f124e52955f9dad54b34397ee GIT binary patch literal 4411 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 literal 0 HcmV?d00001