Unverified Commit df251183 authored by Yeuoly's avatar Yeuoly

feat: support upload image in agent

parent 58ef52b4
......@@ -21,6 +21,7 @@ const DebugWithMultipleModel = () => {
mode,
speechToTextConfig,
visionConfig,
isAgent,
} = useDebugConfigurationContext()
const {
multipleModelConfigs,
......@@ -127,6 +128,7 @@ const DebugWithMultipleModel = () => {
onSend={handleSend}
speechToTextConfig={speechToTextConfig}
visionConfig={visionConfig}
isAgent={isAgent}
/>
</div>
)
......
......@@ -32,11 +32,13 @@ import {
type ChatInputProps = {
visionConfig?: VisionConfig
speechToTextConfig?: EnableType
isAgent?: boolean
onSend?: OnSend
}
const ChatInput: FC<ChatInputProps> = ({
visionConfig,
speechToTextConfig,
isAgent,
onSend,
}) => {
const { t } = useTranslation()
......@@ -128,13 +130,14 @@ const ChatInput: FC<ChatInputProps> = ({
`}
>
{
visionConfig?.enabled && (
(isAgent || visionConfig?.enabled) && (
<>
<div className='absolute bottom-2 left-2 flex items-center'>
<ChatImageUploader
isAgent={isAgent}
settings={visionConfig}
onUpload={onUpload}
disabled={files.length >= visionConfig.number_limits}
disabled={visionConfig && files.length >= visionConfig?.number_limits}
/>
<div className='mx-1 w-[1px] h-4 bg-black/5' />
</div>
......
......@@ -166,6 +166,7 @@ const Chat: FC<ChatProps> = ({
{
!noChatInput && (
<ChatInput
isAgent={config?.agent_mode.enabled}
visionConfig={config?.file_upload?.image}
speechToTextConfig={config?.speech_to_text}
onSend={onSend}
......
......@@ -116,35 +116,48 @@ const UploaderButton: FC<UploaderButtonProps> = ({
}
type ChatImageUploaderProps = {
settings: VisionSettings
settings?: VisionSettings
onUpload: (imageFile: ImageFile) => void
disabled?: boolean
isAgent?: boolean
}
const ChatImageUploader: FC<ChatImageUploaderProps> = ({
settings,
onUpload,
disabled,
isAgent,
}) => {
const onlyUploadLocal = settings.transfer_methods.length === 1 && settings.transfer_methods[0] === TransferMethod.local_file
if (onlyUploadLocal) {
if (settings) {
const onlyUploadLocal = settings.transfer_methods.length === 1 && settings.transfer_methods[0] === TransferMethod.local_file
if (onlyUploadLocal) {
return (
<UploadOnlyFromLocal
onUpload={onUpload}
disabled={disabled}
limit={+settings.image_file_size_limit!}
/>
)
}
return (
<UploadOnlyFromLocal
<UploaderButton
methods={settings.transfer_methods}
onUpload={onUpload}
disabled={disabled}
limit={+settings.image_file_size_limit!}
/>
)
}
return (
<UploaderButton
methods={settings.transfer_methods}
onUpload={onUpload}
disabled={disabled}
limit={+settings.image_file_size_limit!}
/>
)
else if (isAgent) {
return (
<UploadOnlyFromLocal
onUpload={onUpload}
disabled={disabled}
/>
)
}
else {
return <div>123123</div>
}
}
export default ChatImageUploader
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment