Unverified Commit df251183 authored by Yeuoly's avatar Yeuoly

feat: support upload image in agent

parent 58ef52b4
...@@ -21,6 +21,7 @@ const DebugWithMultipleModel = () => { ...@@ -21,6 +21,7 @@ const DebugWithMultipleModel = () => {
mode, mode,
speechToTextConfig, speechToTextConfig,
visionConfig, visionConfig,
isAgent,
} = useDebugConfigurationContext() } = useDebugConfigurationContext()
const { const {
multipleModelConfigs, multipleModelConfigs,
...@@ -127,6 +128,7 @@ const DebugWithMultipleModel = () => { ...@@ -127,6 +128,7 @@ const DebugWithMultipleModel = () => {
onSend={handleSend} onSend={handleSend}
speechToTextConfig={speechToTextConfig} speechToTextConfig={speechToTextConfig}
visionConfig={visionConfig} visionConfig={visionConfig}
isAgent={isAgent}
/> />
</div> </div>
) )
......
...@@ -32,11 +32,13 @@ import { ...@@ -32,11 +32,13 @@ import {
type ChatInputProps = { type ChatInputProps = {
visionConfig?: VisionConfig visionConfig?: VisionConfig
speechToTextConfig?: EnableType speechToTextConfig?: EnableType
isAgent?: boolean
onSend?: OnSend onSend?: OnSend
} }
const ChatInput: FC<ChatInputProps> = ({ const ChatInput: FC<ChatInputProps> = ({
visionConfig, visionConfig,
speechToTextConfig, speechToTextConfig,
isAgent,
onSend, onSend,
}) => { }) => {
const { t } = useTranslation() const { t } = useTranslation()
...@@ -128,13 +130,14 @@ const ChatInput: FC<ChatInputProps> = ({ ...@@ -128,13 +130,14 @@ const ChatInput: FC<ChatInputProps> = ({
`} `}
> >
{ {
visionConfig?.enabled && ( (isAgent || visionConfig?.enabled) && (
<> <>
<div className='absolute bottom-2 left-2 flex items-center'> <div className='absolute bottom-2 left-2 flex items-center'>
<ChatImageUploader <ChatImageUploader
isAgent={isAgent}
settings={visionConfig} settings={visionConfig}
onUpload={onUpload} 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 className='mx-1 w-[1px] h-4 bg-black/5' />
</div> </div>
......
...@@ -166,6 +166,7 @@ const Chat: FC<ChatProps> = ({ ...@@ -166,6 +166,7 @@ const Chat: FC<ChatProps> = ({
{ {
!noChatInput && ( !noChatInput && (
<ChatInput <ChatInput
isAgent={config?.agent_mode.enabled}
visionConfig={config?.file_upload?.image} visionConfig={config?.file_upload?.image}
speechToTextConfig={config?.speech_to_text} speechToTextConfig={config?.speech_to_text}
onSend={onSend} onSend={onSend}
......
...@@ -116,17 +116,19 @@ const UploaderButton: FC<UploaderButtonProps> = ({ ...@@ -116,17 +116,19 @@ const UploaderButton: FC<UploaderButtonProps> = ({
} }
type ChatImageUploaderProps = { type ChatImageUploaderProps = {
settings: VisionSettings settings?: VisionSettings
onUpload: (imageFile: ImageFile) => void onUpload: (imageFile: ImageFile) => void
disabled?: boolean disabled?: boolean
isAgent?: boolean
} }
const ChatImageUploader: FC<ChatImageUploaderProps> = ({ const ChatImageUploader: FC<ChatImageUploaderProps> = ({
settings, settings,
onUpload, onUpload,
disabled, disabled,
isAgent,
}) => { }) => {
if (settings) {
const onlyUploadLocal = settings.transfer_methods.length === 1 && settings.transfer_methods[0] === TransferMethod.local_file const onlyUploadLocal = settings.transfer_methods.length === 1 && settings.transfer_methods[0] === TransferMethod.local_file
if (onlyUploadLocal) { if (onlyUploadLocal) {
return ( return (
<UploadOnlyFromLocal <UploadOnlyFromLocal
...@@ -136,7 +138,6 @@ const ChatImageUploader: FC<ChatImageUploaderProps> = ({ ...@@ -136,7 +138,6 @@ const ChatImageUploader: FC<ChatImageUploaderProps> = ({
/> />
) )
} }
return ( return (
<UploaderButton <UploaderButton
methods={settings.transfer_methods} methods={settings.transfer_methods}
...@@ -145,6 +146,18 @@ const ChatImageUploader: FC<ChatImageUploaderProps> = ({ ...@@ -145,6 +146,18 @@ const ChatImageUploader: FC<ChatImageUploaderProps> = ({
limit={+settings.image_file_size_limit!} limit={+settings.image_file_size_limit!}
/> />
) )
}
else if (isAgent) {
return (
<UploadOnlyFromLocal
onUpload={onUpload}
disabled={disabled}
/>
)
}
else {
return <div>123123</div>
}
} }
export default ChatImageUploader 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