|
|
|
@ -7,12 +7,12 @@ import {
|
|
|
|
import { useTranslation } from 'react-i18next'
|
|
|
|
import { useTranslation } from 'react-i18next'
|
|
|
|
import { usePathname } from 'next/navigation'
|
|
|
|
import { usePathname } from 'next/navigation'
|
|
|
|
import { useBoolean } from 'ahooks'
|
|
|
|
import { useBoolean } from 'ahooks'
|
|
|
|
import type { LangFuseConfig, LangSmithConfig, OpikConfig } from './type'
|
|
|
|
import type { LangFuseConfig, LangSmithConfig, OpikConfig, WeaveConfig } from './type'
|
|
|
|
import { TracingProvider } from './type'
|
|
|
|
import { TracingProvider } from './type'
|
|
|
|
import TracingIcon from './tracing-icon'
|
|
|
|
import TracingIcon from './tracing-icon'
|
|
|
|
import ConfigButton from './config-button'
|
|
|
|
import ConfigButton from './config-button'
|
|
|
|
import cn from '@/utils/classnames'
|
|
|
|
import cn from '@/utils/classnames'
|
|
|
|
import { LangfuseIcon, LangsmithIcon, OpikIcon } from '@/app/components/base/icons/src/public/tracing'
|
|
|
|
import { LangfuseIcon, LangsmithIcon, OpikIcon, WeaveIcon } from '@/app/components/base/icons/src/public/tracing'
|
|
|
|
import Indicator from '@/app/components/header/indicator'
|
|
|
|
import Indicator from '@/app/components/header/indicator'
|
|
|
|
import { fetchTracingConfig as doFetchTracingConfig, fetchTracingStatus, updateTracingStatus } from '@/service/apps'
|
|
|
|
import { fetchTracingConfig as doFetchTracingConfig, fetchTracingStatus, updateTracingStatus } from '@/service/apps'
|
|
|
|
import type { TracingStatus } from '@/models/app'
|
|
|
|
import type { TracingStatus } from '@/models/app'
|
|
|
|
@ -82,12 +82,15 @@ const Panel: FC = () => {
|
|
|
|
? LangfuseIcon
|
|
|
|
? LangfuseIcon
|
|
|
|
: inUseTracingProvider === TracingProvider.opik
|
|
|
|
: inUseTracingProvider === TracingProvider.opik
|
|
|
|
? OpikIcon
|
|
|
|
? OpikIcon
|
|
|
|
: null
|
|
|
|
: inUseTracingProvider === TracingProvider.weave
|
|
|
|
|
|
|
|
? WeaveIcon
|
|
|
|
|
|
|
|
: null
|
|
|
|
|
|
|
|
|
|
|
|
const [langSmithConfig, setLangSmithConfig] = useState<LangSmithConfig | null>(null)
|
|
|
|
const [langSmithConfig, setLangSmithConfig] = useState<LangSmithConfig | null>(null)
|
|
|
|
const [langFuseConfig, setLangFuseConfig] = useState<LangFuseConfig | null>(null)
|
|
|
|
const [langFuseConfig, setLangFuseConfig] = useState<LangFuseConfig | null>(null)
|
|
|
|
const [opikConfig, setOpikConfig] = useState<OpikConfig | null>(null)
|
|
|
|
const [opikConfig, setOpikConfig] = useState<OpikConfig | null>(null)
|
|
|
|
const hasConfiguredTracing = !!(langSmithConfig || langFuseConfig || opikConfig)
|
|
|
|
const [weaveConfig, setWeaveConfig] = useState<WeaveConfig | null>(null)
|
|
|
|
|
|
|
|
const hasConfiguredTracing = !!(langSmithConfig || langFuseConfig || opikConfig || weaveConfig)
|
|
|
|
|
|
|
|
|
|
|
|
const fetchTracingConfig = async () => {
|
|
|
|
const fetchTracingConfig = async () => {
|
|
|
|
const { tracing_config: langSmithConfig, has_not_configured: langSmithHasNotConfig } = await doFetchTracingConfig({ appId, provider: TracingProvider.langSmith })
|
|
|
|
const { tracing_config: langSmithConfig, has_not_configured: langSmithHasNotConfig } = await doFetchTracingConfig({ appId, provider: TracingProvider.langSmith })
|
|
|
|
@ -99,6 +102,9 @@ const Panel: FC = () => {
|
|
|
|
const { tracing_config: opikConfig, has_not_configured: OpikHasNotConfig } = await doFetchTracingConfig({ appId, provider: TracingProvider.opik })
|
|
|
|
const { tracing_config: opikConfig, has_not_configured: OpikHasNotConfig } = await doFetchTracingConfig({ appId, provider: TracingProvider.opik })
|
|
|
|
if (!OpikHasNotConfig)
|
|
|
|
if (!OpikHasNotConfig)
|
|
|
|
setOpikConfig(opikConfig as OpikConfig)
|
|
|
|
setOpikConfig(opikConfig as OpikConfig)
|
|
|
|
|
|
|
|
const { tracing_config: weaveConfig, has_not_configured: weaveHasNotConfig } = await doFetchTracingConfig({ appId, provider: TracingProvider.weave })
|
|
|
|
|
|
|
|
if (!weaveHasNotConfig)
|
|
|
|
|
|
|
|
setWeaveConfig(weaveConfig as WeaveConfig)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
const handleTracingConfigUpdated = async (provider: TracingProvider) => {
|
|
|
|
const handleTracingConfigUpdated = async (provider: TracingProvider) => {
|
|
|
|
@ -110,6 +116,8 @@ const Panel: FC = () => {
|
|
|
|
setLangFuseConfig(tracing_config as LangFuseConfig)
|
|
|
|
setLangFuseConfig(tracing_config as LangFuseConfig)
|
|
|
|
else if (provider === TracingProvider.opik)
|
|
|
|
else if (provider === TracingProvider.opik)
|
|
|
|
setOpikConfig(tracing_config as OpikConfig)
|
|
|
|
setOpikConfig(tracing_config as OpikConfig)
|
|
|
|
|
|
|
|
else if (provider === TracingProvider.weave)
|
|
|
|
|
|
|
|
setWeaveConfig(tracing_config as WeaveConfig)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
const handleTracingConfigRemoved = (provider: TracingProvider) => {
|
|
|
|
const handleTracingConfigRemoved = (provider: TracingProvider) => {
|
|
|
|
@ -119,6 +127,8 @@ const Panel: FC = () => {
|
|
|
|
setLangFuseConfig(null)
|
|
|
|
setLangFuseConfig(null)
|
|
|
|
else if (provider === TracingProvider.opik)
|
|
|
|
else if (provider === TracingProvider.opik)
|
|
|
|
setOpikConfig(null)
|
|
|
|
setOpikConfig(null)
|
|
|
|
|
|
|
|
else if (provider === TracingProvider.weave)
|
|
|
|
|
|
|
|
setWeaveConfig(null)
|
|
|
|
if (provider === inUseTracingProvider) {
|
|
|
|
if (provider === inUseTracingProvider) {
|
|
|
|
handleTracingStatusChange({
|
|
|
|
handleTracingStatusChange({
|
|
|
|
enabled: false,
|
|
|
|
enabled: false,
|
|
|
|
@ -178,6 +188,7 @@ const Panel: FC = () => {
|
|
|
|
langSmithConfig={langSmithConfig}
|
|
|
|
langSmithConfig={langSmithConfig}
|
|
|
|
langFuseConfig={langFuseConfig}
|
|
|
|
langFuseConfig={langFuseConfig}
|
|
|
|
opikConfig={opikConfig}
|
|
|
|
opikConfig={opikConfig}
|
|
|
|
|
|
|
|
weaveConfig={weaveConfig}
|
|
|
|
onConfigUpdated={handleTracingConfigUpdated}
|
|
|
|
onConfigUpdated={handleTracingConfigUpdated}
|
|
|
|
onConfigRemoved={handleTracingConfigRemoved}
|
|
|
|
onConfigRemoved={handleTracingConfigRemoved}
|
|
|
|
controlShowPopup={controlShowPopup}
|
|
|
|
controlShowPopup={controlShowPopup}
|
|
|
|
@ -212,6 +223,7 @@ const Panel: FC = () => {
|
|
|
|
langSmithConfig={langSmithConfig}
|
|
|
|
langSmithConfig={langSmithConfig}
|
|
|
|
langFuseConfig={langFuseConfig}
|
|
|
|
langFuseConfig={langFuseConfig}
|
|
|
|
opikConfig={opikConfig}
|
|
|
|
opikConfig={opikConfig}
|
|
|
|
|
|
|
|
weaveConfig={weaveConfig}
|
|
|
|
onConfigUpdated={handleTracingConfigUpdated}
|
|
|
|
onConfigUpdated={handleTracingConfigUpdated}
|
|
|
|
onConfigRemoved={handleTracingConfigRemoved}
|
|
|
|
onConfigRemoved={handleTracingConfigRemoved}
|
|
|
|
controlShowPopup={controlShowPopup}
|
|
|
|
controlShowPopup={controlShowPopup}
|
|
|
|
|