42 lines
1.3 KiB
TypeScript
42 lines
1.3 KiB
TypeScript
import { AzureChatOpenAI as LangchainAzureChatOpenAI, OpenAIChatInput, AzureOpenAIInput, ClientOptions } from '@langchain/openai'
|
|
import { IMultiModalOption, IVisionChatModal } from '../../../src'
|
|
import { BaseChatModelParams } from '@langchain/core/language_models/chat_models'
|
|
|
|
export class AzureChatOpenAI extends LangchainAzureChatOpenAI implements IVisionChatModal {
|
|
configuredModel: string
|
|
configuredMaxToken?: number
|
|
multiModalOption: IMultiModalOption
|
|
id: string
|
|
|
|
constructor(
|
|
id: string,
|
|
fields?: Partial<OpenAIChatInput> &
|
|
Partial<AzureOpenAIInput> & {
|
|
openAIApiKey?: string
|
|
openAIApiVersion?: string
|
|
openAIBasePath?: string
|
|
deploymentName?: string
|
|
} & BaseChatModelParams & {
|
|
configuration?: ClientOptions
|
|
}
|
|
) {
|
|
super(fields)
|
|
this.id = id
|
|
this.configuredModel = fields?.modelName ?? ''
|
|
this.configuredMaxToken = fields?.maxTokens
|
|
}
|
|
|
|
revertToOriginalModel(): void {
|
|
this.modelName = this.configuredModel
|
|
this.maxTokens = this.configuredMaxToken
|
|
}
|
|
|
|
setMultiModalOption(multiModalOption: IMultiModalOption): void {
|
|
this.multiModalOption = multiModalOption
|
|
}
|
|
|
|
setVisionModel(): void {
|
|
// pass
|
|
}
|
|
}
|