mirror of
https://git.mirrors.martin98.com/https://github.com/langgenius/dify.git
synced 2025-08-13 23:16:04 +08:00
chore: detect is function calling from model config (#2312)
This commit is contained in:
parent
b5ed81b349
commit
883a0a0e6a
@ -46,7 +46,7 @@ import { fetchDatasets } from '@/service/datasets'
|
|||||||
import { useProviderContext } from '@/context/provider-context'
|
import { useProviderContext } from '@/context/provider-context'
|
||||||
import { AgentStrategy, AppType, ModelModeType, RETRIEVE_TYPE, Resolution, TransferMethod } from '@/types/app'
|
import { AgentStrategy, AppType, ModelModeType, RETRIEVE_TYPE, Resolution, TransferMethod } from '@/types/app'
|
||||||
import { PromptMode } from '@/models/debug'
|
import { PromptMode } from '@/models/debug'
|
||||||
import { ANNOTATION_DEFAULT, DEFAULT_AGENT_SETTING, DEFAULT_CHAT_PROMPT_CONFIG, DEFAULT_COMPLETION_PROMPT_CONFIG, supportFunctionCallModels } from '@/config'
|
import { ANNOTATION_DEFAULT, DEFAULT_AGENT_SETTING, DEFAULT_CHAT_PROMPT_CONFIG, DEFAULT_COMPLETION_PROMPT_CONFIG } from '@/config'
|
||||||
import SelectDataSet from '@/app/components/app/configuration/dataset-config/select-dataset'
|
import SelectDataSet from '@/app/components/app/configuration/dataset-config/select-dataset'
|
||||||
import { useModalContext } from '@/context/modal-context'
|
import { useModalContext } from '@/context/modal-context'
|
||||||
import useBreakpoints, { MediaType } from '@/hooks/use-breakpoints'
|
import useBreakpoints, { MediaType } from '@/hooks/use-breakpoints'
|
||||||
@ -157,6 +157,7 @@ const Configuration: FC = () => {
|
|||||||
dataSets: [],
|
dataSets: [],
|
||||||
agentConfig: DEFAULT_AGENT_SETTING,
|
agentConfig: DEFAULT_AGENT_SETTING,
|
||||||
})
|
})
|
||||||
|
|
||||||
const isChatApp = mode === AppType.chat
|
const isChatApp = mode === AppType.chat
|
||||||
const isAgent = modelConfig.agentConfig?.enabled
|
const isAgent = modelConfig.agentConfig?.enabled
|
||||||
const setIsAgent = (value: boolean) => {
|
const setIsAgent = (value: boolean) => {
|
||||||
@ -166,7 +167,7 @@ const Configuration: FC = () => {
|
|||||||
doSetModelConfig(newModelConfig)
|
doSetModelConfig(newModelConfig)
|
||||||
}
|
}
|
||||||
const isOpenAI = modelConfig.provider === 'openai'
|
const isOpenAI = modelConfig.provider === 'openai'
|
||||||
const isFunctionCall = (isOpenAI && modelConfig.mode === ModelModeType.chat) || supportFunctionCallModels.includes(modelConfig.model_id)
|
|
||||||
const [collectionList, setCollectionList] = useState<Collection[]>([])
|
const [collectionList, setCollectionList] = useState<Collection[]>([])
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
|
|
||||||
@ -262,6 +263,13 @@ const Configuration: FC = () => {
|
|||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
|
||||||
|
const isFunctionCall = (() => {
|
||||||
|
const features = currModel?.features
|
||||||
|
if (!features)
|
||||||
|
return false
|
||||||
|
return features.includes(ModelFeatureEnum.toolCall) || features.includes(ModelFeatureEnum.multiToolCall)
|
||||||
|
})()
|
||||||
|
|
||||||
// Fill old app data missing model mode.
|
// Fill old app data missing model mode.
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (hasFetchedDetail && !modelModeType) {
|
if (hasFetchedDetail && !modelModeType) {
|
||||||
|
@ -153,20 +153,6 @@ export const useTextGenerationCurrentProviderAndModelAndModelList = (defaultMode
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export const useAgentThoughtCurrentProviderAndModelAndModelList = (defaultModel?: DefaultModel) => {
|
|
||||||
const { agentThoughtModelList } = useProviderContext()
|
|
||||||
const {
|
|
||||||
currentProvider,
|
|
||||||
currentModel,
|
|
||||||
} = useCurrentProviderAndModel(agentThoughtModelList, defaultModel)
|
|
||||||
|
|
||||||
return {
|
|
||||||
currentProvider,
|
|
||||||
currentModel,
|
|
||||||
agentThoughtModelList,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
export const useModelListAndDefaultModel = (type: ModelTypeIndex) => {
|
export const useModelListAndDefaultModel = (type: ModelTypeIndex) => {
|
||||||
const { data: modelList } = useModelList(type)
|
const { data: modelList } = useModelList(type)
|
||||||
const { data: defaultModel } = useDefaultModel(type)
|
const { data: defaultModel } = useDefaultModel(type)
|
||||||
|
@ -139,8 +139,6 @@ export const DEFAULT_AGENT_SETTING = {
|
|||||||
tools: [],
|
tools: [],
|
||||||
}
|
}
|
||||||
|
|
||||||
export const supportFunctionCallModels = ['glm-3-turbo', 'glm-4']
|
|
||||||
|
|
||||||
export const DEFAULT_AGENT_PROMPT = {
|
export const DEFAULT_AGENT_PROMPT = {
|
||||||
chat: `Respond to the human as helpfully and accurately as possible.
|
chat: `Respond to the human as helpfully and accurately as possible.
|
||||||
|
|
||||||
|
@ -2,14 +2,13 @@
|
|||||||
|
|
||||||
import { createContext, useContext } from 'use-context-selector'
|
import { createContext, useContext } from 'use-context-selector'
|
||||||
import useSWR from 'swr'
|
import useSWR from 'swr'
|
||||||
import { useEffect, useMemo, useState } from 'react'
|
import { useEffect, useState } from 'react'
|
||||||
import {
|
import {
|
||||||
fetchModelList,
|
fetchModelList,
|
||||||
fetchModelProviders,
|
fetchModelProviders,
|
||||||
fetchSupportRetrievalMethods,
|
fetchSupportRetrievalMethods,
|
||||||
} from '@/service/common'
|
} from '@/service/common'
|
||||||
import {
|
import {
|
||||||
ModelFeatureEnum,
|
|
||||||
ModelStatusEnum,
|
ModelStatusEnum,
|
||||||
ModelTypeEnum,
|
ModelTypeEnum,
|
||||||
} from '@/app/components/header/account-setting/model-provider-page/declarations'
|
} from '@/app/components/header/account-setting/model-provider-page/declarations'
|
||||||
@ -23,7 +22,6 @@ import { defaultPlan } from '@/app/components/billing/config'
|
|||||||
const ProviderContext = createContext<{
|
const ProviderContext = createContext<{
|
||||||
modelProviders: ModelProvider[]
|
modelProviders: ModelProvider[]
|
||||||
textGenerationModelList: Model[]
|
textGenerationModelList: Model[]
|
||||||
agentThoughtModelList: Model[]
|
|
||||||
supportRetrievalMethods: RETRIEVE_METHOD[]
|
supportRetrievalMethods: RETRIEVE_METHOD[]
|
||||||
hasSettedApiKey: boolean
|
hasSettedApiKey: boolean
|
||||||
plan: {
|
plan: {
|
||||||
@ -38,7 +36,6 @@ const ProviderContext = createContext<{
|
|||||||
}>({
|
}>({
|
||||||
modelProviders: [],
|
modelProviders: [],
|
||||||
textGenerationModelList: [],
|
textGenerationModelList: [],
|
||||||
agentThoughtModelList: [],
|
|
||||||
supportRetrievalMethods: [],
|
supportRetrievalMethods: [],
|
||||||
hasSettedApiKey: true,
|
hasSettedApiKey: true,
|
||||||
plan: {
|
plan: {
|
||||||
@ -75,26 +72,6 @@ export const ProviderContextProvider = ({
|
|||||||
const { data: textGenerationModelList } = useSWR(`${fetchModelListUrlPrefix}${ModelTypeEnum.textGeneration}`, fetchModelList)
|
const { data: textGenerationModelList } = useSWR(`${fetchModelListUrlPrefix}${ModelTypeEnum.textGeneration}`, fetchModelList)
|
||||||
const { data: supportRetrievalMethods } = useSWR('/datasets/retrieval-setting', fetchSupportRetrievalMethods)
|
const { data: supportRetrievalMethods } = useSWR('/datasets/retrieval-setting', fetchSupportRetrievalMethods)
|
||||||
|
|
||||||
const agentThoughtModelList = useMemo(() => {
|
|
||||||
const result: Model[] = []
|
|
||||||
if (textGenerationModelList?.data) {
|
|
||||||
textGenerationModelList?.data.forEach((item) => {
|
|
||||||
const agentThoughtModels = item.models.filter(model => model.features?.includes(ModelFeatureEnum.agentThought))
|
|
||||||
|
|
||||||
if (agentThoughtModels.length) {
|
|
||||||
result.push({
|
|
||||||
...item,
|
|
||||||
models: agentThoughtModels,
|
|
||||||
})
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
return result
|
|
||||||
}
|
|
||||||
|
|
||||||
return []
|
|
||||||
}, [textGenerationModelList])
|
|
||||||
|
|
||||||
const [plan, setPlan] = useState(defaultPlan)
|
const [plan, setPlan] = useState(defaultPlan)
|
||||||
const [isFetchedPlan, setIsFetchedPlan] = useState(false)
|
const [isFetchedPlan, setIsFetchedPlan] = useState(false)
|
||||||
const [enableBilling, setEnableBilling] = useState(true)
|
const [enableBilling, setEnableBilling] = useState(true)
|
||||||
@ -118,7 +95,6 @@ export const ProviderContextProvider = ({
|
|||||||
<ProviderContext.Provider value={{
|
<ProviderContext.Provider value={{
|
||||||
modelProviders: providersData?.data || [],
|
modelProviders: providersData?.data || [],
|
||||||
textGenerationModelList: textGenerationModelList?.data || [],
|
textGenerationModelList: textGenerationModelList?.data || [],
|
||||||
agentThoughtModelList,
|
|
||||||
hasSettedApiKey: !!textGenerationModelList?.data.some(model => model.status === ModelStatusEnum.active),
|
hasSettedApiKey: !!textGenerationModelList?.data.some(model => model.status === ModelStatusEnum.active),
|
||||||
supportRetrievalMethods: supportRetrievalMethods?.retrieval_method || [],
|
supportRetrievalMethods: supportRetrievalMethods?.retrieval_method || [],
|
||||||
plan,
|
plan,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user