mirror of
https://github.com/farcasclaudiu/Flowise.git
synced 2026-06-28 15:00:57 +03:00
reverting all image upload logic to individual chains/agents
This commit is contained in:
@@ -7,12 +7,9 @@ import {
|
||||
ChatOpenAICallOptions
|
||||
} from '@langchain/openai'
|
||||
import { BaseChatModelParams } from '@langchain/core/language_models/chat_models'
|
||||
import { BaseLanguageModelInput } from '@langchain/core/language_models/base'
|
||||
import { BaseMessageChunk, BaseMessageLike, HumanMessage } from '@langchain/core/messages'
|
||||
import { LLMResult } from '@langchain/core/outputs'
|
||||
import { Callbacks } from '@langchain/core/callbacks/manager'
|
||||
import { IMultiModalOption } from '../../../src'
|
||||
import { addImagesToMessages, MultiModalOptions } from '../../../src/multiModalUtils'
|
||||
import { BaseMessageLike, LLMResult } from 'langchain/schema'
|
||||
import { Callbacks } from '@langchain/core/callbacks/manager'
|
||||
|
||||
export class ChatOpenAI extends LangchainChatOpenAI {
|
||||
configuredModel: string
|
||||
@@ -35,34 +32,7 @@ export class ChatOpenAI extends LangchainChatOpenAI {
|
||||
this.configuredMaxToken = fields?.maxTokens
|
||||
}
|
||||
|
||||
async invoke(input: BaseLanguageModelInput, options?: ChatOpenAICallOptions): Promise<BaseMessageChunk> {
|
||||
return super.invoke(input, options)
|
||||
}
|
||||
|
||||
async generate(messages: BaseMessageLike[][], options?: string[] | ChatOpenAICallOptions, callbacks?: Callbacks): Promise<LLMResult> {
|
||||
if (this.lc_kwargs.chainData) {
|
||||
await this.injectMultiModalMessages(messages, this.lc_kwargs.chainData)
|
||||
}
|
||||
return super.generate(messages, options, callbacks)
|
||||
}
|
||||
|
||||
private async injectMultiModalMessages(messages: BaseMessageLike[][], options: MultiModalOptions) {
|
||||
const optionsData = options.nodeOptions
|
||||
const messageContent = addImagesToMessages(optionsData, this.multiModalOption)
|
||||
if (messageContent?.length) {
|
||||
if (messages[0].length > 0 && messages[0][messages[0].length - 1] instanceof HumanMessage) {
|
||||
// Change model to gpt-4-vision
|
||||
this.modelName = 'gpt-4-vision-preview'
|
||||
|
||||
// Change default max token to higher when using gpt-4-vision
|
||||
this.maxTokens = 1024
|
||||
|
||||
messages[0].push(new HumanMessage({ content: messageContent }))
|
||||
}
|
||||
} else {
|
||||
// revert to previous values if image upload is empty
|
||||
this.modelName = this.configuredModel
|
||||
this.maxTokens = this.configuredMaxToken
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user