Unverified Commit fa8ab213 authored by Joel's avatar Joel Committed by GitHub

feat: displaying the tool description when clicking on a custom tool (#2642)

parent 1a677da7
...@@ -153,7 +153,7 @@ const AgentTools: FC = () => { ...@@ -153,7 +153,7 @@ const AgentTools: FC = () => {
) )
: ( : (
<div className='hidden group-hover:flex items-center'> <div className='hidden group-hover:flex items-center'>
{item.provider_type === CollectionType.builtIn && ( {/* {item.provider_type === CollectionType.builtIn && ( */}
<TooltipPlus <TooltipPlus
popupContent={t('tools.setBuiltInTools.infoAndSetting')} popupContent={t('tools.setBuiltInTools.infoAndSetting')}
> >
...@@ -164,7 +164,7 @@ const AgentTools: FC = () => { ...@@ -164,7 +164,7 @@ const AgentTools: FC = () => {
<InfoCircle className='w-4 h-4 text-gray-500' /> <InfoCircle className='w-4 h-4 text-gray-500' />
</div> </div>
</TooltipPlus> </TooltipPlus>
)} {/* )} */}
<div className='p-1 rounded-md hover:bg-black/5 cursor-pointer' onClick={() => { <div className='p-1 rounded-md hover:bg-black/5 cursor-pointer' onClick={() => {
const newModelConfig = produce(modelConfig, (draft) => { const newModelConfig = produce(modelConfig, (draft) => {
...@@ -209,6 +209,7 @@ const AgentTools: FC = () => { ...@@ -209,6 +209,7 @@ const AgentTools: FC = () => {
toolName={currentTool?.tool_name as string} toolName={currentTool?.tool_name as string}
setting={currentTool?.tool_parameters as any} setting={currentTool?.tool_parameters as any}
collection={currentTool?.collection as Collection} collection={currentTool?.collection as Collection}
isBuiltIn={currentTool?.collection?.type === CollectionType.builtIn}
onSave={handleToolSettingChange} onSave={handleToolSettingChange}
onHide={() => setIsShowSettingTool(false)} onHide={() => setIsShowSettingTool(false)}
/>) />)
......
...@@ -8,14 +8,17 @@ import Drawer from '@/app/components/base/drawer-plus' ...@@ -8,14 +8,17 @@ import Drawer from '@/app/components/base/drawer-plus'
import Form from '@/app/components/header/account-setting/model-provider-page/model-modal/Form' import Form from '@/app/components/header/account-setting/model-provider-page/model-modal/Form'
import { addDefaultValue, toolParametersToFormSchemas } from '@/app/components/tools/utils/to-form-schema' import { addDefaultValue, toolParametersToFormSchemas } from '@/app/components/tools/utils/to-form-schema'
import type { Collection, Tool } from '@/app/components/tools/types' import type { Collection, Tool } from '@/app/components/tools/types'
import { fetchBuiltInToolList } from '@/service/tools' import { fetchBuiltInToolList, fetchCustomToolList } from '@/service/tools'
import I18n from '@/context/i18n' import I18n from '@/context/i18n'
import Button from '@/app/components/base/button' import Button from '@/app/components/base/button'
import Loading from '@/app/components/base/loading' import Loading from '@/app/components/base/loading'
import { DiagonalDividingLine } from '@/app/components/base/icons/src/public/common' import { DiagonalDividingLine } from '@/app/components/base/icons/src/public/common'
import { getLanguage } from '@/i18n/language' import { getLanguage } from '@/i18n/language'
import AppIcon from '@/app/components/base/app-icon'
type Props = { type Props = {
collection: Collection collection: Collection
isBuiltIn?: boolean
toolName: string toolName: string
setting?: Record<string, any> setting?: Record<string, any>
readonly?: boolean readonly?: boolean
...@@ -25,6 +28,7 @@ type Props = { ...@@ -25,6 +28,7 @@ type Props = {
const SettingBuiltInTool: FC<Props> = ({ const SettingBuiltInTool: FC<Props> = ({
collection, collection,
isBuiltIn = true,
toolName, toolName,
setting = {}, setting = {},
readonly, readonly,
...@@ -52,7 +56,7 @@ const SettingBuiltInTool: FC<Props> = ({ ...@@ -52,7 +56,7 @@ const SettingBuiltInTool: FC<Props> = ({
(async () => { (async () => {
setIsLoading(true) setIsLoading(true)
try { try {
const list = await fetchBuiltInToolList(collection.name) const list = isBuiltIn ? await fetchBuiltInToolList(collection.name) : await fetchCustomToolList(collection.name)
setTools(list) setTools(list)
const currTool = list.find(tool => tool.name === toolName) const currTool = list.find(tool => tool.name === toolName)
if (currTool) { if (currTool) {
...@@ -135,12 +139,24 @@ const SettingBuiltInTool: FC<Props> = ({ ...@@ -135,12 +139,24 @@ const SettingBuiltInTool: FC<Props> = ({
onHide={onHide} onHide={onHide}
title={( title={(
<div className='flex'> <div className='flex'>
{collection.icon === 'string'
? (
<div <div
className='w-6 h-6 bg-cover bg-center rounded-md' className='w-6 h-6 bg-cover bg-center rounded-md'
style={{ style={{
backgroundImage: `url(${collection.icon})`, backgroundImage: `url(${collection.icon})`,
}} }}
></div> ></div>
)
: (
<AppIcon
className='rounded-md'
size='tiny'
icon={(collection.icon as any)?.content}
background={(collection.icon as any)?.background}
/>
)}
<div className='ml-2 leading-6 text-base font-semibold text-gray-900'>{currTool?.label[language]}</div> <div className='ml-2 leading-6 text-base font-semibold text-gray-900'>{currTool?.label[language]}</div>
{(hasSetting && !readonly) && (<> {(hasSetting && !readonly) && (<>
<DiagonalDividingLine className='mx-4' /> <DiagonalDividingLine className='mx-4' />
......
...@@ -69,9 +69,22 @@ const Tools: FC<Props> = ({ ...@@ -69,9 +69,22 @@ const Tools: FC<Props> = ({
})() })()
const [query, setQuery] = useState('') const [query, setQuery] = useState('')
const [collectionType, setCollectionType] = useTabSearchParams({ const [toolPageCollectionType, setToolPageCollectionType] = useTabSearchParams({
defaultTab: collectionTypeOptions[0].value, defaultTab: collectionTypeOptions[0].value,
}) })
const [appPageCollectionType, setAppPageCollectionType] = useState(collectionTypeOptions[0].value)
const { collectionType, setCollectionType } = (() => {
if (isInToolsPage) {
return {
collectionType: toolPageCollectionType,
setCollectionType: setToolPageCollectionType,
}
}
return {
collectionType: appPageCollectionType,
setCollectionType: setAppPageCollectionType,
}
})()
const showCollectionList = (() => { const showCollectionList = (() => {
let typeFilteredList: Collection[] = [] let typeFilteredList: Collection[] = []
......
...@@ -63,7 +63,7 @@ const Item: FC<Props> = ({ ...@@ -63,7 +63,7 @@ const Item: FC<Props> = ({
)} )}
</div> </div>
</div> </div>
{showDetail && isBuiltIn && ( {showDetail && (
<SettingBuiltInTool <SettingBuiltInTool
collection={collection} collection={collection}
toolName={payload.name} toolName={payload.name}
...@@ -71,6 +71,7 @@ const Item: FC<Props> = ({ ...@@ -71,6 +71,7 @@ const Item: FC<Props> = ({
onHide={() => { onHide={() => {
setShowDetail(false) setShowDetail(false)
}} }}
isBuiltIn={isBuiltIn}
/> />
)} )}
</> </>
......
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