From 34f2a9b071b1f5ca8a026a56f281a66131a9b04d Mon Sep 17 00:00:00 2001 From: jiabaow Date: Wed, 15 May 2024 21:47:12 -0700 Subject: [PATCH 01/19] add TogetherAI.ts skeleton --- .../nodes/llms/TogetherAI/TogetherAI.ts | 144 ++++++++++++++++++ 1 file changed, 144 insertions(+) create mode 100644 packages/components/nodes/llms/TogetherAI/TogetherAI.ts diff --git a/packages/components/nodes/llms/TogetherAI/TogetherAI.ts b/packages/components/nodes/llms/TogetherAI/TogetherAI.ts new file mode 100644 index 00000000000..3fdeb04072d --- /dev/null +++ b/packages/components/nodes/llms/TogetherAI/TogetherAI.ts @@ -0,0 +1,144 @@ +import { ICommonObject, INode, INodeOptionsValue, INodeParams } from '../../../src/Interface' +import { getBaseClasses, getCredentialData, getCredentialParam } from '../../../src/utils' +import { TogetherAI, TogetherAIInputs } from '@langchain/community/llms/togetherai' +import { getModels, MODEL_TYPE } from '../../../src/modelLoader' +import { INodeData } from '../../../dist/src' +import { BaseCache } from '@langchain/core/caches' +import { BaseLLMParams } from '@langchain/core/language_models/llms' + +class TogetherAI_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 = 'TogetherAI' + this.name = 'togetherAI' + this.type = 'TogetherAI' + this.category = 'LLMS' + this.description = 'Wrapper around TogetherAI large language models' + this.baseClasses = [this.type, ...getBaseClasses(TogetherAI)] + this.inputs = [ + { + label: 'Cache', + name: 'cache', + type: 'BaseCache', + optional: true + }, + { + label: 'Model', + name: 'model', + type: 'string', + description: 'If using own inference endpoint, leave this blank', + placeholder: '', // todo: check + optional: false + }, + { + label: 'Model Name', + name: 'modelName', + type: 'string', + placeholder: '' + }, + { + label: 'Top K', + name: 'topK', + type: 'number', + description: + 'Reduces the probability of generating nonsense. A higher value (e.g. 100) will give more diverse answers, while a lower value (e.g. 10) will be more conservative.', + step: 1, // todo: check + optional: false + }, + { + label: 'Top P', + name: 'topP', + type: 'number', + description: + 'Works together with top-k. A higher value (e.g., 0.95) will lead to more diverse text, while a lower value (e.g., 0.5) will generate more focused and conservative text.', + step: 0.1, + optional: false + }, + { + label: 'Temperature', + name: 'temperature', + type: 'number', + description: 'The temperature of the model. Increasing the temperature will make the model answer more creatively', + step: 0.1, + optional: false + }, + { + label: 'Repeat Penalty', + name: 'repeatPenalty', + type: 'number', + description: + 'Sets how strongly to penalize repetitions. A higher value (e.g., 1.5) will penalize repetitions more strongly, while a lower value (e.g., 0.9) will be more lenient.', + step: 0.1, + optional: false + }, + { + label: 'Streaming', + name: 'streaming', + type: 'boolean', + optional: false + }, + { + label: 'Max Tokens', + name: 'maxTokens', + type: 'number', + step: 1, + description: 'Max Tokens parameter may not apply to certain model. Please check available model parameters', + optional: true, + additionalParams: true + } + // safetyModel? stop? + ] + } + + //@ts-ignore + loadMethods = { + async listModels(): Promise { + return await getModels(MODEL_TYPE.LLM, 'togetherAI') + } + } + + async init(nodeData: INodeData, _: string, options: ICommonObject): Promise { + const model = nodeData.inputs?.model as string + const temperature = nodeData.inputs?.temperature as string + const maxTokens = nodeData.inputs?.maxTokens as string + const topP = nodeData.inputs?.topP as string + const topK = nodeData.inputs?.topK as string + const repeatPenalty = nodeData.inputs?.repeatPenalty as string + const modelName = nodeData.inputs?.modelName as string + const streaming = nodeData.inputs?.streaming as string + + const cache = nodeData.inputs?.cache as BaseCache + + const credentialData = await getCredentialData(nodeData.credential ?? '', options) + const togetherAiApiKey = getCredentialParam('togetherAIApiKey', credentialData, nodeData) + + // fixme + const obj: Partial & BaseLLMParams = { + modelName: modelName, + apiKey: togetherAiApiKey + } + + if (temperature) obj.temperature = parseFloat(temperature) + if (maxTokens) obj.maxTokens = parseInt(maxTokens, 10) + if (topP) obj.topP = parseFloat(topP) + if (topK) obj.topK = parseFloat(topK) + //if (streaming) obj.streaming = parseBoolean fixme + if (repeatPenalty) obj.repetitionPenalty = parseFloat(repeatPenalty) + if (cache) obj.cache = cache + + const togetherAI = new TogetherAI(obj) //fixme + return togetherAI + } +} + +module.exports = { nodeClass: TogetherAI_LLMs } From 090d7c267491b7df89708c95d1a185ebbe7cd8e9 Mon Sep 17 00:00:00 2001 From: jiabaow Date: Wed, 15 May 2024 21:49:24 -0700 Subject: [PATCH 02/19] add TogetherAI api links --- packages/components/nodes/llms/TogetherAI/TogetherAI.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/packages/components/nodes/llms/TogetherAI/TogetherAI.ts b/packages/components/nodes/llms/TogetherAI/TogetherAI.ts index 3fdeb04072d..ed10b244206 100644 --- a/packages/components/nodes/llms/TogetherAI/TogetherAI.ts +++ b/packages/components/nodes/llms/TogetherAI/TogetherAI.ts @@ -6,6 +6,9 @@ import { INodeData } from '../../../dist/src' import { BaseCache } from '@langchain/core/caches' import { BaseLLMParams } from '@langchain/core/language_models/llms' +/** https://v01.api.js.langchain.com/classes/langchain_community_llms_togetherai.TogetherAI.html + https://js.langchain.com/v0.1/docs/integrations/llms/togetherai/ **/ + class TogetherAI_LLMs implements INode { label: string name: string From 6f6db925a37e67c1625cfa731025a423866fd503 Mon Sep 17 00:00:00 2001 From: jiabaow Date: Fri, 17 May 2024 14:59:16 -0700 Subject: [PATCH 03/19] fix constructing final obj --- packages/components/nodes/llms/TogetherAI/TogetherAI.ts | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/packages/components/nodes/llms/TogetherAI/TogetherAI.ts b/packages/components/nodes/llms/TogetherAI/TogetherAI.ts index ed10b244206..5459820adb9 100644 --- a/packages/components/nodes/llms/TogetherAI/TogetherAI.ts +++ b/packages/components/nodes/llms/TogetherAI/TogetherAI.ts @@ -4,7 +4,6 @@ import { TogetherAI, TogetherAIInputs } from '@langchain/community/llms/together import { getModels, MODEL_TYPE } from '../../../src/modelLoader' import { INodeData } from '../../../dist/src' import { BaseCache } from '@langchain/core/caches' -import { BaseLLMParams } from '@langchain/core/language_models/llms' /** https://v01.api.js.langchain.com/classes/langchain_community_llms_togetherai.TogetherAI.html https://js.langchain.com/v0.1/docs/integrations/llms/togetherai/ **/ @@ -125,9 +124,8 @@ class TogetherAI_LLMs implements INode { const credentialData = await getCredentialData(nodeData.credential ?? '', options) const togetherAiApiKey = getCredentialParam('togetherAIApiKey', credentialData, nodeData) - // fixme - const obj: Partial & BaseLLMParams = { - modelName: modelName, + const obj: TogetherAIInputs = { + modelName, apiKey: togetherAiApiKey } @@ -139,7 +137,7 @@ class TogetherAI_LLMs implements INode { if (repeatPenalty) obj.repetitionPenalty = parseFloat(repeatPenalty) if (cache) obj.cache = cache - const togetherAI = new TogetherAI(obj) //fixme + const togetherAI = new TogetherAI(obj) return togetherAI } } From ae4dfc4b3fe46c9318edb02ef3f863cb9a7c4da8 Mon Sep 17 00:00:00 2001 From: jiabaow Date: Fri, 17 May 2024 21:14:59 -0700 Subject: [PATCH 04/19] fix INodeData import --- packages/components/nodes/llms/TogetherAI/TogetherAI.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/components/nodes/llms/TogetherAI/TogetherAI.ts b/packages/components/nodes/llms/TogetherAI/TogetherAI.ts index 5459820adb9..d4b4a85d1f9 100644 --- a/packages/components/nodes/llms/TogetherAI/TogetherAI.ts +++ b/packages/components/nodes/llms/TogetherAI/TogetherAI.ts @@ -1,8 +1,7 @@ -import { ICommonObject, INode, INodeOptionsValue, INodeParams } from '../../../src/Interface' +import { ICommonObject, INode, INodeOptionsValue, INodeParams, INodeData } from '../../../src/Interface' import { getBaseClasses, getCredentialData, getCredentialParam } from '../../../src/utils' import { TogetherAI, TogetherAIInputs } from '@langchain/community/llms/togetherai' import { getModels, MODEL_TYPE } from '../../../src/modelLoader' -import { INodeData } from '../../../dist/src' import { BaseCache } from '@langchain/core/caches' /** https://v01.api.js.langchain.com/classes/langchain_community_llms_togetherai.TogetherAI.html From 812917ee03f71a4588ef10935d2ab5274c5a0819 Mon Sep 17 00:00:00 2001 From: jiabaow Date: Fri, 17 May 2024 21:23:10 -0700 Subject: [PATCH 05/19] fix category --- packages/components/nodes/llms/TogetherAI/TogetherAI.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/components/nodes/llms/TogetherAI/TogetherAI.ts b/packages/components/nodes/llms/TogetherAI/TogetherAI.ts index d4b4a85d1f9..d1225ff9d73 100644 --- a/packages/components/nodes/llms/TogetherAI/TogetherAI.ts +++ b/packages/components/nodes/llms/TogetherAI/TogetherAI.ts @@ -23,7 +23,7 @@ class TogetherAI_LLMs implements INode { this.label = 'TogetherAI' this.name = 'togetherAI' this.type = 'TogetherAI' - this.category = 'LLMS' + this.category = 'LLMs' this.description = 'Wrapper around TogetherAI large language models' this.baseClasses = [this.type, ...getBaseClasses(TogetherAI)] this.inputs = [ From f6318969d3555cc197cd21f60d5800dc1c4ff49f Mon Sep 17 00:00:00 2001 From: jiabaow Date: Fri, 17 May 2024 21:49:44 -0700 Subject: [PATCH 06/19] fix version & streaming --- packages/components/nodes/llms/TogetherAI/TogetherAI.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/packages/components/nodes/llms/TogetherAI/TogetherAI.ts b/packages/components/nodes/llms/TogetherAI/TogetherAI.ts index d1225ff9d73..159342e69be 100644 --- a/packages/components/nodes/llms/TogetherAI/TogetherAI.ts +++ b/packages/components/nodes/llms/TogetherAI/TogetherAI.ts @@ -22,7 +22,9 @@ class TogetherAI_LLMs implements INode { constructor() { this.label = 'TogetherAI' this.name = 'togetherAI' + this.version = 1.0 this.type = 'TogetherAI' + // todo: this.icon = ? this.category = 'LLMs' this.description = 'Wrapper around TogetherAI large language models' this.baseClasses = [this.type, ...getBaseClasses(TogetherAI)] @@ -116,7 +118,7 @@ class TogetherAI_LLMs implements INode { const topK = nodeData.inputs?.topK as string const repeatPenalty = nodeData.inputs?.repeatPenalty as string const modelName = nodeData.inputs?.modelName as string - const streaming = nodeData.inputs?.streaming as string + const streaming = nodeData.inputs?.streaming as boolean const cache = nodeData.inputs?.cache as BaseCache @@ -132,7 +134,7 @@ class TogetherAI_LLMs implements INode { if (maxTokens) obj.maxTokens = parseInt(maxTokens, 10) if (topP) obj.topP = parseFloat(topP) if (topK) obj.topK = parseFloat(topK) - //if (streaming) obj.streaming = parseBoolean fixme + if (streaming) obj.streaming = streaming if (repeatPenalty) obj.repetitionPenalty = parseFloat(repeatPenalty) if (cache) obj.cache = cache From 61c477bc05f1bcf3a981f8ceac3797aadb676881 Mon Sep 17 00:00:00 2001 From: jiabaow Date: Fri, 17 May 2024 21:54:54 -0700 Subject: [PATCH 07/19] add stop --- .../nodes/llms/TogetherAI/TogetherAI.ts | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/packages/components/nodes/llms/TogetherAI/TogetherAI.ts b/packages/components/nodes/llms/TogetherAI/TogetherAI.ts index 159342e69be..26789d6e7dc 100644 --- a/packages/components/nodes/llms/TogetherAI/TogetherAI.ts +++ b/packages/components/nodes/llms/TogetherAI/TogetherAI.ts @@ -1,4 +1,4 @@ -import { ICommonObject, INode, INodeOptionsValue, INodeParams, INodeData } from '../../../src/Interface' +import { ICommonObject, INode, INodeData, INodeOptionsValue, INodeParams } from '../../../src/Interface' import { getBaseClasses, getCredentialData, getCredentialParam } from '../../../src/utils' import { TogetherAI, TogetherAIInputs } from '@langchain/community/llms/togetherai' import { getModels, MODEL_TYPE } from '../../../src/modelLoader' @@ -98,8 +98,18 @@ class TogetherAI_LLMs implements INode { description: 'Max Tokens parameter may not apply to certain model. Please check available model parameters', optional: true, additionalParams: true + }, + { + label: 'Stop Sequence', + name: 'stop', + type: 'string', + rows: 4, + placeholder: 'AI assistant:', + description: 'Sets the stop sequences to use. Use comma to separate different sequences.', + optional: true, + additionalParams: true } - // safetyModel? stop? + // safetyModel? ] } @@ -118,6 +128,7 @@ class TogetherAI_LLMs implements INode { const topK = nodeData.inputs?.topK as string const repeatPenalty = nodeData.inputs?.repeatPenalty as string const modelName = nodeData.inputs?.modelName as string + const stop = nodeData.inputs?.stop as string const streaming = nodeData.inputs?.streaming as boolean const cache = nodeData.inputs?.cache as BaseCache @@ -136,6 +147,9 @@ class TogetherAI_LLMs implements INode { if (topK) obj.topK = parseFloat(topK) if (streaming) obj.streaming = streaming if (repeatPenalty) obj.repetitionPenalty = parseFloat(repeatPenalty) + if (stop) { + obj.stop = stop.split(',') + } if (cache) obj.cache = cache const togetherAI = new TogetherAI(obj) From 590041b8932b6f8139ee9d1cebf3c9bad59662b3 Mon Sep 17 00:00:00 2001 From: jiabaow Date: Fri, 17 May 2024 22:09:01 -0700 Subject: [PATCH 08/19] update constructor --- .../nodes/llms/TogetherAI/TogetherAI.ts | 33 +++++++++---------- 1 file changed, 15 insertions(+), 18 deletions(-) diff --git a/packages/components/nodes/llms/TogetherAI/TogetherAI.ts b/packages/components/nodes/llms/TogetherAI/TogetherAI.ts index 26789d6e7dc..33e513be497 100644 --- a/packages/components/nodes/llms/TogetherAI/TogetherAI.ts +++ b/packages/components/nodes/llms/TogetherAI/TogetherAI.ts @@ -40,62 +40,59 @@ class TogetherAI_LLMs implements INode { name: 'model', type: 'string', description: 'If using own inference endpoint, leave this blank', - placeholder: '', // todo: check - optional: false + placeholder: '' // todo: check }, { label: 'Model Name', name: 'modelName', type: 'string', - placeholder: '' + placeholder: '', + description: 'The name of the model to query.' }, { label: 'Top K', name: 'topK', type: 'number', description: - 'Reduces the probability of generating nonsense. A higher value (e.g. 100) will give more diverse answers, while a lower value (e.g. 10) will be more conservative.', - step: 1, // todo: check - optional: false + 'The topK parameter is used to limit the number of choices for the next predicted word or token. It specifies the maximum number of tokens to consider at each step, based on their probability of occurrence. This technique helps to speed up the generation process and can improve the quality of the generated text by focusing on the most likely options.', + step: 1 // todo: check }, { label: 'Top P', name: 'topP', type: 'number', description: - 'Works together with top-k. A higher value (e.g., 0.95) will lead to more diverse text, while a lower value (e.g., 0.5) will generate more focused and conservative text.', - step: 0.1, - optional: false + 'The topP (nucleus) parameter is used to dynamically adjust the number of choices for each predicted token based on the cumulative probabilities. It specifies a probability threshold, below which all less likely tokens are filtered out. This technique helps to maintain diversity and generate more fluent and natural-sounding text.', + step: 0.1 }, { label: 'Temperature', name: 'temperature', type: 'number', - description: 'The temperature of the model. Increasing the temperature will make the model answer more creatively', - step: 0.1, - optional: false + description: + 'A decimal number that determines the degree of randomness in the response. A value of 1 will always yield the same output. A temperature less than 1 favors more correctness and is appropriate for question answering or summarization. A value greater than 1 introduces more randomness in the output.', + step: 0.1 }, { label: 'Repeat Penalty', name: 'repeatPenalty', type: 'number', description: - 'Sets how strongly to penalize repetitions. A higher value (e.g., 1.5) will penalize repetitions more strongly, while a lower value (e.g., 0.9) will be more lenient.', - step: 0.1, - optional: false + 'A number that controls the diversity of generated text by reducing the likelihood of repeated sequences. Higher values decrease repetition.', + step: 0.1 }, { label: 'Streaming', name: 'streaming', type: 'boolean', - optional: false + description: 'Whether or not to stream tokens as they are generated' }, { label: 'Max Tokens', name: 'maxTokens', type: 'number', step: 1, - description: 'Max Tokens parameter may not apply to certain model. Please check available model parameters', + description: 'Limit the number of tokens generated.', optional: true, additionalParams: true }, @@ -105,7 +102,7 @@ class TogetherAI_LLMs implements INode { type: 'string', rows: 4, placeholder: 'AI assistant:', - description: 'Sets the stop sequences to use. Use comma to separate different sequences.', + description: 'A list of tokens at which the generation should stop.', optional: true, additionalParams: true } From 408b94f01d34af6c02dbd90bea02d969aca23ce2 Mon Sep 17 00:00:00 2001 From: jiabaow Date: Fri, 17 May 2024 22:31:00 -0700 Subject: [PATCH 09/19] update constructor with default values --- .../nodes/llms/TogetherAI/TogetherAI.ts | 23 +++++++++++-------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/packages/components/nodes/llms/TogetherAI/TogetherAI.ts b/packages/components/nodes/llms/TogetherAI/TogetherAI.ts index 33e513be497..960ea7e627e 100644 --- a/packages/components/nodes/llms/TogetherAI/TogetherAI.ts +++ b/packages/components/nodes/llms/TogetherAI/TogetherAI.ts @@ -1,5 +1,5 @@ -import { ICommonObject, INode, INodeData, INodeOptionsValue, INodeParams } from '../../../src/Interface' -import { getBaseClasses, getCredentialData, getCredentialParam } from '../../../src/utils' +import { ICommonObject, INode, INodeData, INodeOptionsValue, INodeParams } from '../../../src' +import { getBaseClasses, getCredentialData, getCredentialParam } from '../../../src' import { TogetherAI, TogetherAIInputs } from '@langchain/community/llms/togetherai' import { getModels, MODEL_TYPE } from '../../../src/modelLoader' import { BaseCache } from '@langchain/core/caches' @@ -39,14 +39,12 @@ class TogetherAI_LLMs implements INode { label: 'Model', name: 'model', type: 'string', - description: 'If using own inference endpoint, leave this blank', - placeholder: '' // todo: check + description: 'If using own inference endpoint, leave this blank' }, { label: 'Model Name', name: 'modelName', type: 'string', - placeholder: '', description: 'The name of the model to query.' }, { @@ -55,7 +53,8 @@ class TogetherAI_LLMs implements INode { type: 'number', description: 'The topK parameter is used to limit the number of choices for the next predicted word or token. It specifies the maximum number of tokens to consider at each step, based on their probability of occurrence. This technique helps to speed up the generation process and can improve the quality of the generated text by focusing on the most likely options.', - step: 1 // todo: check + step: 1, + default: 50 }, { label: 'Top P', @@ -63,7 +62,8 @@ class TogetherAI_LLMs implements INode { type: 'number', description: 'The topP (nucleus) parameter is used to dynamically adjust the number of choices for each predicted token based on the cumulative probabilities. It specifies a probability threshold, below which all less likely tokens are filtered out. This technique helps to maintain diversity and generate more fluent and natural-sounding text.', - step: 0.1 + step: 0.1, + default: 0.7 }, { label: 'Temperature', @@ -71,7 +71,8 @@ class TogetherAI_LLMs implements INode { type: 'number', description: 'A decimal number that determines the degree of randomness in the response. A value of 1 will always yield the same output. A temperature less than 1 favors more correctness and is appropriate for question answering or summarization. A value greater than 1 introduces more randomness in the output.', - step: 0.1 + step: 0.1, + default: 0.7 }, { label: 'Repeat Penalty', @@ -79,12 +80,14 @@ class TogetherAI_LLMs implements INode { type: 'number', description: 'A number that controls the diversity of generated text by reducing the likelihood of repeated sequences. Higher values decrease repetition.', - step: 0.1 + step: 0.1, + default: 1 }, { label: 'Streaming', name: 'streaming', type: 'boolean', + default: false, description: 'Whether or not to stream tokens as they are generated' }, { @@ -106,7 +109,7 @@ class TogetherAI_LLMs implements INode { optional: true, additionalParams: true } - // safetyModel? + // todo: safetyModel? logprobs ] } From 87d7c31100af26bf152eb7f6f909ec6eef9de202 Mon Sep 17 00:00:00 2001 From: jiabaow Date: Fri, 17 May 2024 22:49:12 -0700 Subject: [PATCH 10/19] add togetherAI logo --- .../components/nodes/llms/TogetherAI/TogetherAI.ts | 2 +- .../nodes/llms/TogetherAI/togetherAI.svg | 14 ++++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) create mode 100644 packages/components/nodes/llms/TogetherAI/togetherAI.svg diff --git a/packages/components/nodes/llms/TogetherAI/TogetherAI.ts b/packages/components/nodes/llms/TogetherAI/TogetherAI.ts index 960ea7e627e..8badb783f7b 100644 --- a/packages/components/nodes/llms/TogetherAI/TogetherAI.ts +++ b/packages/components/nodes/llms/TogetherAI/TogetherAI.ts @@ -24,7 +24,7 @@ class TogetherAI_LLMs implements INode { this.name = 'togetherAI' this.version = 1.0 this.type = 'TogetherAI' - // todo: this.icon = ? + this.icon = 'togetherAI.svg' this.category = 'LLMs' this.description = 'Wrapper around TogetherAI large language models' this.baseClasses = [this.type, ...getBaseClasses(TogetherAI)] diff --git a/packages/components/nodes/llms/TogetherAI/togetherAI.svg b/packages/components/nodes/llms/TogetherAI/togetherAI.svg new file mode 100644 index 00000000000..314961ce4ec --- /dev/null +++ b/packages/components/nodes/llms/TogetherAI/togetherAI.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file From 266955301c5aeb030ac652aec5533574ea9581c2 Mon Sep 17 00:00:00 2001 From: jiabaow Date: Sat, 18 May 2024 22:09:25 -0700 Subject: [PATCH 11/19] add credential --- packages/components/nodes/llms/TogetherAI/TogetherAI.ts | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/packages/components/nodes/llms/TogetherAI/TogetherAI.ts b/packages/components/nodes/llms/TogetherAI/TogetherAI.ts index 8badb783f7b..75cea1026b2 100644 --- a/packages/components/nodes/llms/TogetherAI/TogetherAI.ts +++ b/packages/components/nodes/llms/TogetherAI/TogetherAI.ts @@ -28,6 +28,12 @@ class TogetherAI_LLMs implements INode { this.category = 'LLMs' this.description = 'Wrapper around TogetherAI large language models' this.baseClasses = [this.type, ...getBaseClasses(TogetherAI)] + this.credential = { + label: 'Connect Credential', + name: 'credential', + type: 'credential', + credentialNames: ['togetherAIApi'] + } this.inputs = [ { label: 'Cache', From 4088317c349ef6abda14327f411d5aed9180f776 Mon Sep 17 00:00:00 2001 From: jiabaow Date: Sat, 18 May 2024 22:13:40 -0700 Subject: [PATCH 12/19] change logo --- .../nodes/llms/TogetherAI/TogetherAI.ts | 2 +- .../nodes/llms/TogetherAI/togetherai.png | Bin 0 -> 1598 bytes 2 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 packages/components/nodes/llms/TogetherAI/togetherai.png diff --git a/packages/components/nodes/llms/TogetherAI/TogetherAI.ts b/packages/components/nodes/llms/TogetherAI/TogetherAI.ts index 75cea1026b2..e0aa219dc23 100644 --- a/packages/components/nodes/llms/TogetherAI/TogetherAI.ts +++ b/packages/components/nodes/llms/TogetherAI/TogetherAI.ts @@ -24,7 +24,7 @@ class TogetherAI_LLMs implements INode { this.name = 'togetherAI' this.version = 1.0 this.type = 'TogetherAI' - this.icon = 'togetherAI.svg' + this.icon = 'togetherai.png' this.category = 'LLMs' this.description = 'Wrapper around TogetherAI large language models' this.baseClasses = [this.type, ...getBaseClasses(TogetherAI)] diff --git a/packages/components/nodes/llms/TogetherAI/togetherai.png b/packages/components/nodes/llms/TogetherAI/togetherai.png new file mode 100644 index 0000000000000000000000000000000000000000..371103f6f83cc8a3efe7784ae7e0177ca5f245c7 GIT binary patch literal 1598 zcmZ{kc~DbV6vkgL88k?100UUjq5&i8V~@D72*!ZHfJh^V21vqE!lFS)2n>`>l)`|> zAZT%o0u}*T98^Rck%AjZ-pflOpeQP+KvWD3Tc38OGo4On?!Di9=iJ|%`R*ULkP$%D z$FITz0H9CX=@W!%1-eU@E@BS0H8%nS#JR#1q6U`7675jlHXk&=6E7%uR1cqU$6qZR9FsxE2V3|y*KooLVIxv91kZfQ;4#^;?R3?!i z5CqAjDg=?EcjR)JRH{UfXD9+eDg^>bBuXX9!OxTmguy|Xdrk82^l~dH>S$54#r&Rqz%0iM@ zv003)4 z^YIE!Q+}vc2uHx>dD)&_<(07=UgxA4iDR9Uv$qxv>0vQ6n@w%;A6t#Ji56#0Q!qv6 zjquCwf#`a;n_+_+y_#mRyxT9tds8p*O2u)P^Ou`V7;=*6exBt4x23_IBT?9&)?tW= zq!E4NY%-z!fTMXcCntEzS-sxiTW?43eXb|dPFPJ*3rkctj_rlIl7gojOTEs<88n94 zwANup^sBP4YVO^oTZ|ndC~?|G!%iJC!KRF~cg&h4&_8KaK%oO110uaF_%@CqW(^q8 zps=nlR^pdauaC#*fC-=S@Cp0&fxQMeaX7Jm&ce(}ZCdB~#ii{t=ko{a6)SBVY#Y^h z#t7Unlvr|i-rQnMV(aX(=D|aTS6XLH%bJIU(QQW9ONydg?nbgp2G)HtxqqwvxBU24 z;l^WrDH*EsCi#IT#7~A@ew~_kgagKzydq9z39zGXeU39b=w`~P0wDjR+_KN;KKnKf z3?28#3K5gbr-`0~EdJ`YZI(N1p0oX*8Xna#F=NWiYlV7DJNVjLWG*OdDEzuenGnvD zxvUN;4*8bLcZGd16W|2cR_!rZuu|W-K+>*JAYb=BseL?vZGbg9j!*!X!W95GPi^;Rs@7b@ji3@mIMdSvM$aFN9$?*Y-A7 zH(0(J$LOqK$0@hmb6uj%jZcqmcVneStGs}NwXcQBh@4;q8_lchLDk90GS zQh6f5D0|z$-3a^pFED`sb^hh~9w-_b&)YV>aWw(Q=<>`Kx~@}c)P-^HUR9DZe{Q>;o&nXZ}DIq z3G$D5CmF8LY*6Es9qX1oPuoojuWx85)CuYIob*1kd2cn>tuI*tg}q}J$&&^*0Zm zgEAy$Mb`aS3l8R-i>3)YcMLrpKbErniQNT{p5#>TWOiwk0DIX3I9OgD`F=3Ll^ zQOLCPxy4gV6FYNPJ$b~nKNBYspxCU zbm$ZOE{hy=Z!z4&OCKZ8#$W$ali@SZf|J;>zn$Gr-i7tXx=OE;ow{$?&!l-&KUGDd zala;B`_e=FMA8_#${hV}0Smq_lh2OebKIj2aZmvqK}Tm>(8U&X4t8*J2OZpac$SyhL^^SMdLU07rX+0_1-t@MC$L!~6(d(tjCer@x0-N?cSZ1JHZ}d>Xu2 Gzx)LY`}5`i literal 0 HcmV?d00001 From e27a091c60d4864a9ad98c9e97b132422a6ef0de Mon Sep 17 00:00:00 2001 From: jiabaow Date: Mon, 20 May 2024 17:36:38 -0700 Subject: [PATCH 13/19] update streaming --- packages/components/nodes/llms/TogetherAI/TogetherAI.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/components/nodes/llms/TogetherAI/TogetherAI.ts b/packages/components/nodes/llms/TogetherAI/TogetherAI.ts index e0aa219dc23..05d437681c0 100644 --- a/packages/components/nodes/llms/TogetherAI/TogetherAI.ts +++ b/packages/components/nodes/llms/TogetherAI/TogetherAI.ts @@ -144,14 +144,14 @@ class TogetherAI_LLMs implements INode { const obj: TogetherAIInputs = { modelName, - apiKey: togetherAiApiKey + apiKey: togetherAiApiKey, + streaming: streaming ?? true } if (temperature) obj.temperature = parseFloat(temperature) if (maxTokens) obj.maxTokens = parseInt(maxTokens, 10) if (topP) obj.topP = parseFloat(topP) if (topK) obj.topK = parseFloat(topK) - if (streaming) obj.streaming = streaming if (repeatPenalty) obj.repetitionPenalty = parseFloat(repeatPenalty) if (stop) { obj.stop = stop.split(',') From 0cbfb8d9936106d2c6401f1c1cf3d97bf3c3868b Mon Sep 17 00:00:00 2001 From: jiabaow Date: Mon, 20 May 2024 18:44:17 -0700 Subject: [PATCH 14/19] disable streaming --- packages/components/nodes/llms/TogetherAI/TogetherAI.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/components/nodes/llms/TogetherAI/TogetherAI.ts b/packages/components/nodes/llms/TogetherAI/TogetherAI.ts index 05d437681c0..54350902102 100644 --- a/packages/components/nodes/llms/TogetherAI/TogetherAI.ts +++ b/packages/components/nodes/llms/TogetherAI/TogetherAI.ts @@ -145,7 +145,7 @@ class TogetherAI_LLMs implements INode { const obj: TogetherAIInputs = { modelName, apiKey: togetherAiApiKey, - streaming: streaming ?? true + streaming: streaming ?? false } if (temperature) obj.temperature = parseFloat(temperature) @@ -153,6 +153,7 @@ class TogetherAI_LLMs implements INode { if (topP) obj.topP = parseFloat(topP) if (topK) obj.topK = parseFloat(topK) if (repeatPenalty) obj.repetitionPenalty = parseFloat(repeatPenalty) + if (streaming) obj.streaming = streaming if (stop) { obj.stop = stop.split(',') } From d567d405dc3ccf77e38b32377f8b28d0682bc3aa Mon Sep 17 00:00:00 2001 From: jiabaow Date: Mon, 20 May 2024 20:30:45 -0700 Subject: [PATCH 15/19] remove model --- packages/components/nodes/llms/TogetherAI/TogetherAI.ts | 7 ------- 1 file changed, 7 deletions(-) diff --git a/packages/components/nodes/llms/TogetherAI/TogetherAI.ts b/packages/components/nodes/llms/TogetherAI/TogetherAI.ts index 54350902102..728f12aa7f8 100644 --- a/packages/components/nodes/llms/TogetherAI/TogetherAI.ts +++ b/packages/components/nodes/llms/TogetherAI/TogetherAI.ts @@ -41,12 +41,6 @@ class TogetherAI_LLMs implements INode { type: 'BaseCache', optional: true }, - { - label: 'Model', - name: 'model', - type: 'string', - description: 'If using own inference endpoint, leave this blank' - }, { label: 'Model Name', name: 'modelName', @@ -127,7 +121,6 @@ class TogetherAI_LLMs implements INode { } async init(nodeData: INodeData, _: string, options: ICommonObject): Promise { - const model = nodeData.inputs?.model as string const temperature = nodeData.inputs?.temperature as string const maxTokens = nodeData.inputs?.maxTokens as string const topP = nodeData.inputs?.topP as string From f61c48501ccef447b5cf954834be69c384d080b6 Mon Sep 17 00:00:00 2001 From: jiabaow Date: Mon, 20 May 2024 20:33:52 -0700 Subject: [PATCH 16/19] clean up comment --- packages/components/nodes/llms/TogetherAI/TogetherAI.ts | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/packages/components/nodes/llms/TogetherAI/TogetherAI.ts b/packages/components/nodes/llms/TogetherAI/TogetherAI.ts index 728f12aa7f8..3849328cab0 100644 --- a/packages/components/nodes/llms/TogetherAI/TogetherAI.ts +++ b/packages/components/nodes/llms/TogetherAI/TogetherAI.ts @@ -4,9 +4,6 @@ import { TogetherAI, TogetherAIInputs } from '@langchain/community/llms/together import { getModels, MODEL_TYPE } from '../../../src/modelLoader' import { BaseCache } from '@langchain/core/caches' -/** https://v01.api.js.langchain.com/classes/langchain_community_llms_togetherai.TogetherAI.html - https://js.langchain.com/v0.1/docs/integrations/llms/togetherai/ **/ - class TogetherAI_LLMs implements INode { label: string name: string @@ -109,7 +106,7 @@ class TogetherAI_LLMs implements INode { optional: true, additionalParams: true } - // todo: safetyModel? logprobs + // todo: safetyModel? logprobs? ] } From d842a4aecf3a120923836dc9730f3306994a586f Mon Sep 17 00:00:00 2001 From: jiabaow Date: Mon, 20 May 2024 21:13:19 -0700 Subject: [PATCH 17/19] delete unused icon --- .../nodes/llms/TogetherAI/togetherAI.svg | 14 -------------- 1 file changed, 14 deletions(-) delete mode 100644 packages/components/nodes/llms/TogetherAI/togetherAI.svg diff --git a/packages/components/nodes/llms/TogetherAI/togetherAI.svg b/packages/components/nodes/llms/TogetherAI/togetherAI.svg deleted file mode 100644 index 314961ce4ec..00000000000 --- a/packages/components/nodes/llms/TogetherAI/togetherAI.svg +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - - \ No newline at end of file From c292cf1e1a2468c7e0ce4591ba829f20ad20285b Mon Sep 17 00:00:00 2001 From: jiabaow Date: Thu, 23 May 2024 14:49:44 -0700 Subject: [PATCH 18/19] add togetherAI for streaming --- packages/server/src/utils/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/server/src/utils/index.ts b/packages/server/src/utils/index.ts index aa0c03e8b29..e3526074d67 100644 --- a/packages/server/src/utils/index.ts +++ b/packages/server/src/utils/index.ts @@ -1075,7 +1075,7 @@ export const isFlowValidForStream = (reactFlowNodes: IReactFlowNode[], endingNod 'chatGoogleGenerativeAI', 'chatTogetherAI' ], - LLMs: ['azureOpenAI', 'openAI', 'ollama'] + LLMs: ['azureOpenAI', 'openAI', 'ollama', 'togetherAI'] } let isChatOrLLMsExist = false From 4e7cb6eb294c23dd605d1df8dc64b9dadce2aa7a Mon Sep 17 00:00:00 2001 From: Henry Heng Date: Fri, 24 May 2024 01:12:34 +0100 Subject: [PATCH 19/19] Update index.ts --- packages/server/src/utils/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/server/src/utils/index.ts b/packages/server/src/utils/index.ts index e3526074d67..aa0c03e8b29 100644 --- a/packages/server/src/utils/index.ts +++ b/packages/server/src/utils/index.ts @@ -1075,7 +1075,7 @@ export const isFlowValidForStream = (reactFlowNodes: IReactFlowNode[], endingNod 'chatGoogleGenerativeAI', 'chatTogetherAI' ], - LLMs: ['azureOpenAI', 'openAI', 'ollama', 'togetherAI'] + LLMs: ['azureOpenAI', 'openAI', 'ollama'] } let isChatOrLLMsExist = false