mirror of
https://github.com/langgenius/dify.git
synced 2026-06-26 23:01:11 +08:00
feat: build and preview chat
This commit is contained in:
parent
63e91b40ae
commit
fe274fc28c
@ -20,9 +20,14 @@ import { useCheckInputsForms } from '../check-input-forms-hooks'
|
||||
import { useTextAreaHeight } from './hooks'
|
||||
import Operation from './operation'
|
||||
|
||||
type AudioRecorderWithPermission = typeof Recorder & {
|
||||
getPermission: () => Promise<void>
|
||||
}
|
||||
|
||||
type ChatInputAreaProps = {
|
||||
readonly?: boolean
|
||||
botName?: string
|
||||
placeholder?: string
|
||||
showFeatureBar?: boolean
|
||||
showFileUpload?: boolean
|
||||
featureBarReadonly?: boolean
|
||||
@ -31,7 +36,7 @@ type ChatInputAreaProps = {
|
||||
visionConfig?: FileUpload
|
||||
speechToTextConfig?: EnableType
|
||||
onSend?: OnSend
|
||||
inputs?: Record<string, any>
|
||||
inputs?: Record<string, unknown>
|
||||
inputsForm?: InputForm[]
|
||||
theme?: Theme | null
|
||||
isResponding?: boolean
|
||||
@ -44,7 +49,7 @@ type ChatInputAreaProps = {
|
||||
*/
|
||||
sendOnEnter?: boolean
|
||||
}
|
||||
const ChatInputArea = ({ readonly, botName, showFeatureBar, showFileUpload, featureBarReadonly = readonly, featureBarDisabled, onFeatureBarClick, visionConfig, speechToTextConfig = { enabled: true }, onSend, inputs = {}, inputsForm = [], theme, isResponding, disabled, sendOnEnter = true }: ChatInputAreaProps) => {
|
||||
const ChatInputArea = ({ readonly, botName, placeholder, showFeatureBar, showFileUpload, featureBarReadonly = readonly, featureBarDisabled, onFeatureBarClick, visionConfig, speechToTextConfig = { enabled: true }, onSend, inputs = {}, inputsForm = [], theme, isResponding, disabled, sendOnEnter = true }: ChatInputAreaProps) => {
|
||||
const { t } = useTranslation()
|
||||
const { wrapperRef, textareaRef, textValueRef, holdSpaceRef, handleTextareaResize, isMultipleLine } = useTextAreaHeight()
|
||||
const [query, setQuery] = useState('')
|
||||
@ -130,7 +135,7 @@ const ChatInputArea = ({ readonly, botName, showFeatureBar, showFileUpload, feat
|
||||
}
|
||||
}
|
||||
const handleShowVoiceInput = useCallback(() => {
|
||||
(Recorder as any).getPermission().then(() => {
|
||||
;(Recorder as AudioRecorderWithPermission).getPermission().then(() => {
|
||||
setShowVoiceInput(true)
|
||||
}, () => {
|
||||
toast.error(t('voiceInput.notAllow', { ns: 'common' }))
|
||||
@ -147,7 +152,28 @@ const ChatInputArea = ({ readonly, botName, showFeatureBar, showFileUpload, feat
|
||||
<div ref={textValueRef} className="pointer-events-none invisible absolute size-auto p-1 body-lg-regular leading-6 whitespace-pre">
|
||||
{query}
|
||||
</div>
|
||||
<Textarea ref={ref => textareaRef.current = ref as any} className={cn('w-full resize-none bg-transparent p-1 body-lg-regular leading-6 text-text-primary outline-hidden')} placeholder={decode(t(readonly ? 'chat.inputDisabledPlaceholder' : 'chat.inputPlaceholder', { ns: 'common', botName }) || '')} autoFocus minRows={1} value={query} onChange={e => handleQueryChange(e.target.value)} onKeyDown={handleKeyDown} onCompositionStart={handleCompositionStart} onCompositionEnd={handleCompositionEnd} onPaste={handleClipboardPasteFile} onDragEnter={handleDragFileEnter} onDragLeave={handleDragFileLeave} onDragOver={handleDragFileOver} onDrop={handleDropFile} readOnly={readonly} />
|
||||
<Textarea
|
||||
ref={(ref) => {
|
||||
textareaRef.current = ref ?? undefined
|
||||
}}
|
||||
className={cn('w-full resize-none bg-transparent p-1 body-lg-regular leading-6 text-text-primary outline-hidden')}
|
||||
placeholder={placeholder ?? decode(t(readonly ? 'chat.inputDisabledPlaceholder' : 'chat.inputPlaceholder', { ns: 'common', botName }) || '')}
|
||||
// Existing chat behavior focuses the composer as soon as it opens.
|
||||
// eslint-disable-next-line jsx-a11y/no-autofocus
|
||||
autoFocus
|
||||
minRows={1}
|
||||
value={query}
|
||||
onChange={e => handleQueryChange(e.target.value)}
|
||||
onKeyDown={handleKeyDown}
|
||||
onCompositionStart={handleCompositionStart}
|
||||
onCompositionEnd={handleCompositionEnd}
|
||||
onPaste={handleClipboardPasteFile}
|
||||
onDragEnter={handleDragFileEnter}
|
||||
onDragLeave={handleDragFileLeave}
|
||||
onDragOver={handleDragFileOver}
|
||||
onDrop={handleDropFile}
|
||||
readOnly={readonly}
|
||||
/>
|
||||
</div>
|
||||
{!isMultipleLine && operation}
|
||||
</div>
|
||||
|
||||
@ -13,6 +13,8 @@ import type {
|
||||
import type { HumanInputFormSubmitData } from './answer/human-input-content/type'
|
||||
import type { InputForm } from './type'
|
||||
import type { Emoji } from '@/app/components/tools/types'
|
||||
import type { HumanInputNodeType } from '@/app/components/workflow/nodes/human-input/types'
|
||||
import type { Node } from '@/app/components/workflow/types'
|
||||
import type { AppData } from '@/models/share'
|
||||
import { Button } from '@langgenius/dify-ui/button'
|
||||
import { cn } from '@langgenius/dify-ui/cn'
|
||||
@ -39,7 +41,7 @@ export type ChatProps = {
|
||||
onStopResponding?: () => void
|
||||
noChatInput?: boolean
|
||||
onSend?: OnSend
|
||||
inputs?: Record<string, any>
|
||||
inputs?: Record<string, unknown>
|
||||
inputsForm?: InputForm[]
|
||||
onRegenerate?: OnRegenerate
|
||||
chatContainerClassName?: string
|
||||
@ -68,11 +70,13 @@ export type ChatProps = {
|
||||
onFeatureBarClick?: (state: boolean) => void
|
||||
noSpacing?: boolean
|
||||
inputDisabled?: boolean
|
||||
inputPlaceholder?: string
|
||||
inputPlaceholderBotName?: string
|
||||
sidebarCollapseState?: boolean
|
||||
hideAvatar?: boolean
|
||||
sendOnEnter?: boolean
|
||||
onHumanInputFormSubmit?: (formToken: string, formData: HumanInputFormSubmitData) => Promise<void>
|
||||
getHumanInputNodeData?: (nodeID: string) => any
|
||||
getHumanInputNodeData?: (nodeID: string) => Node<HumanInputNodeType> | undefined
|
||||
}
|
||||
|
||||
const Chat: FC<ChatProps> = ({
|
||||
@ -114,6 +118,8 @@ const Chat: FC<ChatProps> = ({
|
||||
onFeatureBarClick,
|
||||
noSpacing,
|
||||
inputDisabled,
|
||||
inputPlaceholder,
|
||||
inputPlaceholderBotName,
|
||||
sidebarCollapseState,
|
||||
hideAvatar,
|
||||
sendOnEnter,
|
||||
@ -180,7 +186,7 @@ const Chat: FC<ChatProps> = ({
|
||||
appData={appData}
|
||||
key={item.id}
|
||||
item={item}
|
||||
question={chatList[index - 1]?.content!}
|
||||
question={chatList[index - 1]?.content ?? ''}
|
||||
index={index}
|
||||
config={config}
|
||||
answerIcon={answerIcon}
|
||||
@ -240,7 +246,8 @@ const Chat: FC<ChatProps> = ({
|
||||
{
|
||||
!noChatInput && (
|
||||
<ChatInputArea
|
||||
botName={appData?.site?.title || 'Bot'}
|
||||
botName={inputPlaceholderBotName || appData?.site?.title || 'Bot'}
|
||||
placeholder={inputPlaceholder}
|
||||
disabled={inputDisabled}
|
||||
showFeatureBar={showFeatureBar}
|
||||
showFileUpload={showFileUpload}
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
import { QueryClient, QueryClientProvider } from '@tanstack/react-query'
|
||||
import { render, screen } from '@testing-library/react'
|
||||
import userEvent from '@testing-library/user-event'
|
||||
import { AgentConfigurePage } from '../page'
|
||||
|
||||
const mocks = vi.hoisted(() => ({
|
||||
@ -99,8 +100,20 @@ vi.mock('../components/orchestrate', () => ({
|
||||
AgentOrchestratePanel: () => <div role="region" aria-label="orchestrate-panel" />,
|
||||
}))
|
||||
|
||||
vi.mock('../components/preview/chat', () => ({
|
||||
AgentPreviewChat: () => <div role="region" aria-label="preview-chat" />,
|
||||
vi.mock('../components/preview/build-chat', () => ({
|
||||
AgentBuildChat: () => (
|
||||
<div role="region" aria-label="preview-chat">
|
||||
build
|
||||
</div>
|
||||
),
|
||||
}))
|
||||
|
||||
vi.mock('../components/preview/preview-chat', () => ({
|
||||
AgentPreviewChat: () => (
|
||||
<div role="region" aria-label="preview-chat">
|
||||
preview
|
||||
</div>
|
||||
),
|
||||
}))
|
||||
|
||||
vi.mock('../components/preview/chat-features-panel', () => ({
|
||||
@ -109,11 +122,19 @@ vi.mock('../components/preview/chat-features-panel', () => ({
|
||||
|
||||
vi.mock('../components/preview/header', () => ({
|
||||
AgentPreviewHeader: (props: {
|
||||
mode: 'build' | 'preview'
|
||||
onModeChange: (mode: 'build' | 'preview') => void
|
||||
onRestart: () => void
|
||||
}) => (
|
||||
<button type="button" onClick={props.onRestart}>
|
||||
restart preview
|
||||
</button>
|
||||
<div>
|
||||
<div>{props.mode}</div>
|
||||
<button type="button" onClick={() => props.onModeChange('preview')}>
|
||||
preview mode
|
||||
</button>
|
||||
<button type="button" onClick={props.onRestart}>
|
||||
restart preview
|
||||
</button>
|
||||
</div>
|
||||
),
|
||||
}))
|
||||
|
||||
@ -166,4 +187,29 @@ describe('AgentConfigurePage', () => {
|
||||
expect(screen.queryByRole('region', { name: 'orchestrate-panel' })).not.toBeInTheDocument()
|
||||
})
|
||||
})
|
||||
|
||||
describe('Right panel mode', () => {
|
||||
it('should render build mode by default and switch to preview mode', async () => {
|
||||
const user = userEvent.setup()
|
||||
const queryClient = new QueryClient()
|
||||
mocks.queryState.composer = {
|
||||
data: {},
|
||||
isFetching: false,
|
||||
isPending: false,
|
||||
isSuccess: true,
|
||||
}
|
||||
|
||||
render(
|
||||
<QueryClientProvider client={queryClient}>
|
||||
<AgentConfigurePage agentId="agent-1" />
|
||||
</QueryClientProvider>,
|
||||
)
|
||||
|
||||
expect(screen.getByRole('region', { name: 'preview-chat' })).toHaveTextContent('build')
|
||||
|
||||
await user.click(screen.getByRole('button', { name: 'preview mode' }))
|
||||
|
||||
expect(screen.getByRole('region', { name: 'preview-chat' })).toHaveTextContent('preview')
|
||||
})
|
||||
})
|
||||
})
|
||||
|
||||
@ -4,7 +4,7 @@ import { fireEvent, render, screen, waitFor } from '@testing-library/react'
|
||||
import { createStore, Provider as JotaiProvider } from 'jotai'
|
||||
import { agentComposerModelAtom } from '@/features/agent-v2/agent-composer/store-modules/model'
|
||||
import { agentComposerPromptAtom } from '@/features/agent-v2/agent-composer/store-modules/prompt'
|
||||
import { AgentPreviewChat } from '../chat'
|
||||
import { AgentChatRuntime } from '../chat-runtime'
|
||||
|
||||
const useChatMock = vi.hoisted(() => vi.fn())
|
||||
const handleSendMock = vi.hoisted(() => vi.fn())
|
||||
@ -103,7 +103,7 @@ vi.mock('@/service/client', () => ({
|
||||
},
|
||||
}))
|
||||
|
||||
function renderPreviewChat(props?: Partial<ComponentProps<typeof AgentPreviewChat>>) {
|
||||
function renderPreviewChat(props?: Partial<ComponentProps<typeof AgentChatRuntime>>) {
|
||||
const store = createStore()
|
||||
const queryClient = new QueryClient({
|
||||
defaultOptions: {
|
||||
@ -121,9 +121,11 @@ function renderPreviewChat(props?: Partial<ComponentProps<typeof AgentPreviewCha
|
||||
return render(
|
||||
<QueryClientProvider client={queryClient}>
|
||||
<JotaiProvider store={store}>
|
||||
<AgentPreviewChat
|
||||
<AgentChatRuntime
|
||||
agentId="agent-1"
|
||||
clearChatList={false}
|
||||
inputPlaceholder="Message agent"
|
||||
renderEmptyState={() => null}
|
||||
onClearChatListChange={vi.fn()}
|
||||
{...props}
|
||||
/>
|
||||
|
||||
@ -29,8 +29,14 @@ vi.mock('@/service/client', () => ({
|
||||
}))
|
||||
|
||||
function renderHeader({
|
||||
mode = 'preview',
|
||||
onModeChange = vi.fn(),
|
||||
onOpenVersions = vi.fn(),
|
||||
onRestart = vi.fn(),
|
||||
}: {
|
||||
mode?: 'build' | 'preview'
|
||||
onModeChange?: (mode: 'build' | 'preview') => void
|
||||
onOpenVersions?: () => void
|
||||
onRestart?: () => void
|
||||
} = {}) {
|
||||
const queryClient = new QueryClient()
|
||||
@ -43,8 +49,11 @@ function renderHeader({
|
||||
<QueryClientProvider client={queryClient}>
|
||||
<AgentPreviewHeader
|
||||
agentId="agent-1"
|
||||
mode={mode}
|
||||
isChatFeaturesOpen={false}
|
||||
onModeChange={onModeChange}
|
||||
onToggleChatFeatures={vi.fn()}
|
||||
onOpenVersions={onOpenVersions}
|
||||
onRestart={onRestart}
|
||||
/>
|
||||
</QueryClientProvider>,
|
||||
|
||||
@ -0,0 +1,48 @@
|
||||
'use client'
|
||||
|
||||
import type { AgentChatRuntimeEmptyStateProps, AgentChatRuntimeProps } from './chat-runtime'
|
||||
import { useTranslation } from 'react-i18next'
|
||||
import { AgentChatRuntime } from './chat-runtime'
|
||||
|
||||
const buildIconGridCells = Array.from({ length: 16 }, (_, index) => `build-icon-cell-${index}`)
|
||||
|
||||
type AgentBuildChatProps = Omit<AgentChatRuntimeProps, 'inputPlaceholder' | 'renderEmptyState'>
|
||||
|
||||
function AgentBuildChatEmptyState() {
|
||||
const { t } = useTranslation('agentV2')
|
||||
|
||||
return (
|
||||
<div className="pointer-events-none absolute inset-x-12 bottom-[calc(27%+84px)] flex justify-center">
|
||||
<div className="flex w-full max-w-150 flex-col items-start p-3 text-left">
|
||||
<div className="relative flex size-12 items-center justify-center overflow-hidden rounded-xl border-[0.5px] border-components-panel-border-subtle bg-background-default-dimmed text-text-tertiary">
|
||||
<div className="grid size-full grid-cols-4 grid-rows-4 gap-px p-1">
|
||||
{buildIconGridCells.map(cell => (
|
||||
<span key={cell} className="rounded-[1px] bg-divider-subtle" />
|
||||
))}
|
||||
</div>
|
||||
<span aria-hidden className="absolute i-ri-hammer-line size-5 text-text-tertiary" />
|
||||
</div>
|
||||
<div className="mt-3 max-w-full truncate system-md-medium text-text-secondary">
|
||||
{t('agentDetail.configure.build.empty.title')}
|
||||
</div>
|
||||
<p className="mt-1 max-w-full body-md-regular text-text-tertiary">
|
||||
{t('agentDetail.configure.build.empty.description')}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
)
|
||||
}
|
||||
|
||||
export function AgentBuildChat(props: AgentBuildChatProps) {
|
||||
const { t } = useTranslation('agentV2')
|
||||
|
||||
return (
|
||||
<AgentChatRuntime
|
||||
{...props}
|
||||
inputPlaceholder={t('agentDetail.configure.build.inputPlaceholder')}
|
||||
renderEmptyState={(_emptyStateProps: AgentChatRuntimeEmptyStateProps) => (
|
||||
<AgentBuildChatEmptyState />
|
||||
)}
|
||||
/>
|
||||
)
|
||||
}
|
||||
@ -8,6 +8,9 @@ import type {
|
||||
AgentThought,
|
||||
MessageDetailResponse,
|
||||
} from '@dify/contracts/api/console/agent/types.gen'
|
||||
import type {
|
||||
ReactNode,
|
||||
} from 'react'
|
||||
import type { FeedbackType, IChatItem, ThoughtItem } from '@/app/components/base/chat/chat/type'
|
||||
import type { ChatConfig, ChatItem, ChatItemInTree, OnSend } from '@/app/components/base/chat/types'
|
||||
import type { FileEntity } from '@/app/components/base/file-uploader/types'
|
||||
@ -20,8 +23,6 @@ import { cn } from '@langgenius/dify-ui/cn'
|
||||
import { useQuery } from '@tanstack/react-query'
|
||||
import { useAtomValue } from 'jotai'
|
||||
import { useCallback, useMemo } from 'react'
|
||||
import { useTranslation } from 'react-i18next'
|
||||
import AppIcon from '@/app/components/base/app-icon'
|
||||
import { useChat } from '@/app/components/base/chat/chat/hooks'
|
||||
import { buildChatItemTree, getLastAnswer, isValidGeneratedAnswer } from '@/app/components/base/chat/utils'
|
||||
import { getProcessedFilesFromResponse } from '@/app/components/base/file-uploader/utils'
|
||||
@ -388,60 +389,15 @@ const buildChatConfig = ({
|
||||
}
|
||||
}
|
||||
|
||||
function AgentPreviewChatEmptyState({
|
||||
agentIcon,
|
||||
agentIconBackground,
|
||||
agentIconType,
|
||||
agentName,
|
||||
hasInstructions,
|
||||
}: {
|
||||
export type AgentChatRuntimeEmptyStateProps = {
|
||||
agentIcon?: string | null
|
||||
agentIconBackground?: string | null
|
||||
agentIconType?: AgentIconType | null
|
||||
agentName?: string
|
||||
hasInstructions: boolean
|
||||
}) {
|
||||
const { t } = useTranslation('agentV2')
|
||||
const imageUrl = (agentIconType === 'image' || agentIconType === 'link') ? agentIcon : undefined
|
||||
const iconType = imageUrl ? 'image' : agentIconType
|
||||
|
||||
return (
|
||||
<div className="pointer-events-none absolute inset-x-12 bottom-[calc(27%+84px)] flex flex-col items-center text-center">
|
||||
<AppIcon
|
||||
size="xxl"
|
||||
rounded
|
||||
iconType={iconType}
|
||||
icon={agentIcon ?? undefined}
|
||||
background={agentIconBackground}
|
||||
imageUrl={imageUrl}
|
||||
className="bg-background-default"
|
||||
/>
|
||||
<div className="mt-3 max-w-full truncate system-md-semibold text-text-secondary">
|
||||
{agentName || t('agentDetail.configure.preview.empty.defaultAgentName')}
|
||||
</div>
|
||||
<div className="mt-4 h-px w-73 max-w-full bg-divider-subtle" />
|
||||
<div className="mt-5 max-w-91 body-md-regular text-text-tertiary">
|
||||
<p>{t('agentDetail.configure.preview.empty.description')}</p>
|
||||
{!hasInstructions && (
|
||||
<p>{t('agentDetail.configure.preview.empty.noInstructionsDescription')}</p>
|
||||
)}
|
||||
</div>
|
||||
</div>
|
||||
)
|
||||
}
|
||||
|
||||
export function AgentPreviewChat({
|
||||
agentId,
|
||||
agentIcon,
|
||||
agentIconBackground,
|
||||
agentIconType,
|
||||
agentName,
|
||||
agentSoulConfig,
|
||||
clearChatList,
|
||||
debugConversationId,
|
||||
onClearChatListChange,
|
||||
onSaveDraftBeforeRun,
|
||||
}: {
|
||||
export type AgentChatRuntimeProps = {
|
||||
agentId: string
|
||||
agentIcon?: string | null
|
||||
agentIconBackground?: string | null
|
||||
@ -450,9 +406,26 @@ export function AgentPreviewChat({
|
||||
agentSoulConfig?: AgentSoulConfig
|
||||
clearChatList: boolean
|
||||
debugConversationId?: string | null
|
||||
inputPlaceholder: string
|
||||
renderEmptyState: (props: AgentChatRuntimeEmptyStateProps) => ReactNode
|
||||
onClearChatListChange: (clearChatList: boolean) => void
|
||||
onSaveDraftBeforeRun?: () => Promise<void>
|
||||
}) {
|
||||
}
|
||||
|
||||
export function AgentChatRuntime({
|
||||
agentId,
|
||||
agentIcon,
|
||||
agentIconBackground,
|
||||
agentIconType,
|
||||
agentName,
|
||||
agentSoulConfig,
|
||||
clearChatList,
|
||||
debugConversationId,
|
||||
inputPlaceholder,
|
||||
renderEmptyState,
|
||||
onClearChatListChange,
|
||||
onSaveDraftBeforeRun,
|
||||
}: AgentChatRuntimeProps) {
|
||||
const historyQuery = useQuery({
|
||||
queryKey: ['agent-preview-debug-conversation', agentId, debugConversationId],
|
||||
queryFn: () => fetchAgentConversationMessages(agentId, debugConversationId!),
|
||||
@ -483,6 +456,8 @@ export function AgentPreviewChat({
|
||||
clearChatList={clearChatList}
|
||||
debugConversationId={debugConversationId}
|
||||
initialChatTree={initialChatTree}
|
||||
inputPlaceholder={inputPlaceholder}
|
||||
renderEmptyState={renderEmptyState}
|
||||
onClearChatListChange={onClearChatListChange}
|
||||
onSaveDraftBeforeRun={onSaveDraftBeforeRun}
|
||||
/>
|
||||
@ -499,6 +474,8 @@ function AgentPreviewChatSession({
|
||||
clearChatList,
|
||||
debugConversationId,
|
||||
initialChatTree,
|
||||
inputPlaceholder,
|
||||
renderEmptyState,
|
||||
onClearChatListChange,
|
||||
onSaveDraftBeforeRun,
|
||||
}: {
|
||||
@ -511,6 +488,8 @@ function AgentPreviewChatSession({
|
||||
clearChatList: boolean
|
||||
debugConversationId?: string | null
|
||||
initialChatTree: ChatItemInTree[]
|
||||
inputPlaceholder: string
|
||||
renderEmptyState: (props: AgentChatRuntimeEmptyStateProps) => ReactNode
|
||||
onClearChatListChange: (clearChatList: boolean) => void
|
||||
onSaveDraftBeforeRun?: () => Promise<void>
|
||||
}) {
|
||||
@ -608,20 +587,21 @@ function AgentPreviewChatSession({
|
||||
config={config}
|
||||
chatList={chatList}
|
||||
isResponding={isResponding}
|
||||
chatNode={isEmptyChat && (
|
||||
<AgentPreviewChatEmptyState
|
||||
agentIcon={agentIcon}
|
||||
agentIconBackground={agentIconBackground}
|
||||
agentIconType={agentIconType}
|
||||
agentName={agentName}
|
||||
hasInstructions={hasInstructions}
|
||||
/>
|
||||
)}
|
||||
chatNode={isEmptyChat
|
||||
? renderEmptyState({
|
||||
agentIcon,
|
||||
agentIconBackground,
|
||||
agentIconType,
|
||||
agentName,
|
||||
hasInstructions,
|
||||
})
|
||||
: null}
|
||||
chatContainerClassName={cn('pt-6', isEmptyChat ? 'px-12' : 'px-3')}
|
||||
chatFooterClassName={cn(
|
||||
'pb-0',
|
||||
isEmptyChat ? '!bottom-[27%] px-12 pt-3' : 'px-3 pt-10',
|
||||
)}
|
||||
inputPlaceholder={inputPlaceholder}
|
||||
showFileUpload={false}
|
||||
suggestedQuestions={suggestedQuestions}
|
||||
onSend={doSend}
|
||||
@ -2,19 +2,28 @@
|
||||
|
||||
import type { AgentAppDetailWithSite } from '@dify/contracts/api/console/agent/types.gen'
|
||||
import { cn } from '@langgenius/dify-ui/cn'
|
||||
import { SegmentedControl, SegmentedControlDivider, SegmentedControlItem } from '@langgenius/dify-ui/segmented-control'
|
||||
import { useMutation, useQueryClient } from '@tanstack/react-query'
|
||||
import { useTranslation } from 'react-i18next'
|
||||
import { consoleQuery } from '@/service/client'
|
||||
|
||||
type AgentConfigureRightPanelMode = 'build' | 'preview'
|
||||
|
||||
export function AgentPreviewHeader({
|
||||
agentId,
|
||||
mode,
|
||||
isChatFeaturesOpen,
|
||||
onModeChange,
|
||||
onToggleChatFeatures,
|
||||
onOpenVersions,
|
||||
onRestart,
|
||||
}: {
|
||||
agentId: string
|
||||
mode: AgentConfigureRightPanelMode
|
||||
isChatFeaturesOpen: boolean
|
||||
onModeChange: (mode: AgentConfigureRightPanelMode) => void
|
||||
onToggleChatFeatures: () => void
|
||||
onOpenVersions: () => void
|
||||
onRestart: () => void
|
||||
}) {
|
||||
const { t } = useTranslation('agentV2')
|
||||
@ -38,10 +47,28 @@ export function AgentPreviewHeader({
|
||||
}))
|
||||
|
||||
return (
|
||||
<div className="flex h-12 shrink-0 items-center gap-3 py-3 pr-3 pl-6">
|
||||
<h2 className="min-w-0 flex-1 truncate title-xl-semi-bold text-text-primary">
|
||||
{t('agentDetail.configure.preview.title')}
|
||||
</h2>
|
||||
<div className="flex h-12 shrink-0 items-center gap-3 py-2 pr-3 pl-4">
|
||||
<div className="flex min-w-0 flex-1 items-center gap-2">
|
||||
<SegmentedControl<AgentConfigureRightPanelMode>
|
||||
value={[mode]}
|
||||
onValueChange={(value) => {
|
||||
const nextMode = value[0]
|
||||
if (nextMode)
|
||||
onModeChange(nextMode)
|
||||
}}
|
||||
aria-label={t('agentDetail.configure.rightPanel.modeLabel')}
|
||||
>
|
||||
<SegmentedControlItem<AgentConfigureRightPanelMode> value="build" className="uppercase">
|
||||
<span aria-hidden className="i-ri-hammer-line size-4" />
|
||||
{t('agentDetail.configure.rightPanel.build')}
|
||||
</SegmentedControlItem>
|
||||
<SegmentedControlItem<AgentConfigureRightPanelMode> value="preview" className="uppercase">
|
||||
<span aria-hidden className="i-custom-vender-other-replay-line size-4" />
|
||||
{t('agentDetail.configure.rightPanel.preview')}
|
||||
</SegmentedControlItem>
|
||||
</SegmentedControl>
|
||||
<span aria-hidden className="i-ri-question-line size-4 shrink-0 text-text-quaternary" />
|
||||
</div>
|
||||
<div className="flex shrink-0 items-center gap-1">
|
||||
<button
|
||||
type="button"
|
||||
@ -56,19 +83,35 @@ export function AgentPreviewHeader({
|
||||
>
|
||||
<span aria-hidden className="i-custom-vender-other-replay-line size-4" />
|
||||
</button>
|
||||
<button
|
||||
type="button"
|
||||
aria-pressed={isChatFeaturesOpen}
|
||||
onClick={onToggleChatFeatures}
|
||||
className={cn(
|
||||
'flex h-8 items-center justify-center gap-0.5 rounded-lg px-3 py-2 text-text-tertiary hover:bg-state-base-hover hover:text-text-secondary focus-visible:ring-2 focus-visible:ring-state-accent-solid focus-visible:outline-hidden',
|
||||
isChatFeaturesOpen && 'bg-state-base-hover text-text-secondary',
|
||||
)}
|
||||
aria-label={t('agentDetail.configure.preview.chatFeatures')}
|
||||
>
|
||||
<span aria-hidden className="i-ri-apps-2-add-line size-4" />
|
||||
<span className="px-0.5 system-sm-medium">{t('agentDetail.configure.preview.chatFeatures')}</span>
|
||||
</button>
|
||||
{mode === 'build'
|
||||
? (
|
||||
<button
|
||||
type="button"
|
||||
onClick={onOpenVersions}
|
||||
className="flex size-6 items-center justify-center rounded-md p-0.5 text-text-tertiary hover:bg-state-base-hover hover:text-text-secondary focus-visible:ring-2 focus-visible:ring-state-accent-solid focus-visible:outline-hidden"
|
||||
aria-label={t('agentDetail.configure.publishBar.versionHistory')}
|
||||
>
|
||||
<span aria-hidden className="i-ri-folder-3-line size-4" />
|
||||
</button>
|
||||
)
|
||||
: (
|
||||
<>
|
||||
<SegmentedControlDivider className="mx-1" />
|
||||
<button
|
||||
type="button"
|
||||
aria-pressed={isChatFeaturesOpen}
|
||||
onClick={onToggleChatFeatures}
|
||||
className={cn(
|
||||
'flex h-8 items-center justify-center gap-0.5 rounded-lg px-3 py-2 text-text-tertiary hover:bg-state-base-hover hover:text-text-secondary focus-visible:ring-2 focus-visible:ring-state-accent-solid focus-visible:outline-hidden',
|
||||
isChatFeaturesOpen && 'bg-state-base-hover text-text-secondary',
|
||||
)}
|
||||
aria-label={t('agentDetail.configure.preview.chatFeatures')}
|
||||
>
|
||||
<span aria-hidden className="i-ri-apps-2-add-line size-4" />
|
||||
<span className="px-0.5 system-sm-medium">{t('agentDetail.configure.preview.chatFeatures')}</span>
|
||||
</button>
|
||||
</>
|
||||
)}
|
||||
</div>
|
||||
</div>
|
||||
)
|
||||
|
||||
@ -0,0 +1,66 @@
|
||||
'use client'
|
||||
|
||||
import type { AgentChatRuntimeEmptyStateProps, AgentChatRuntimeProps } from './chat-runtime'
|
||||
import { useTranslation } from 'react-i18next'
|
||||
import AppIcon from '@/app/components/base/app-icon'
|
||||
import { AgentChatRuntime } from './chat-runtime'
|
||||
|
||||
type AgentPreviewChatProps = Omit<AgentChatRuntimeProps, 'inputPlaceholder' | 'renderEmptyState'>
|
||||
|
||||
function AgentPreviewChatEmptyState({
|
||||
agentIcon,
|
||||
agentIconBackground,
|
||||
agentIconType,
|
||||
agentName,
|
||||
hasInstructions,
|
||||
}: AgentChatRuntimeEmptyStateProps) {
|
||||
const { t } = useTranslation('agentV2')
|
||||
const imageUrl = (agentIconType === 'image' || agentIconType === 'link') ? agentIcon : undefined
|
||||
const iconType = imageUrl ? 'image' : agentIconType
|
||||
|
||||
return (
|
||||
<div className="pointer-events-none absolute inset-x-12 bottom-[calc(27%+84px)] flex justify-center">
|
||||
<div className="flex w-full max-w-150 flex-col items-start p-3 text-left">
|
||||
<AppIcon
|
||||
size="xxl"
|
||||
rounded
|
||||
iconType={iconType}
|
||||
icon={agentIcon ?? undefined}
|
||||
background={agentIconBackground}
|
||||
imageUrl={imageUrl}
|
||||
className="bg-background-default"
|
||||
/>
|
||||
<div className="mt-3 max-w-full truncate system-md-medium text-text-secondary">
|
||||
{t('agentDetail.configure.preview.empty.title', {
|
||||
name: agentName || t('agentDetail.configure.preview.empty.defaultAgentName'),
|
||||
})}
|
||||
</div>
|
||||
<p className="mt-1 max-w-full body-md-regular text-text-tertiary">
|
||||
{t('agentDetail.configure.preview.empty.description')}
|
||||
</p>
|
||||
{!hasInstructions && (
|
||||
<p className="mt-1 max-w-full body-md-regular text-text-tertiary">
|
||||
{t('agentDetail.configure.preview.empty.noInstructionsDescription')}
|
||||
</p>
|
||||
)}
|
||||
</div>
|
||||
</div>
|
||||
)
|
||||
}
|
||||
|
||||
export function AgentPreviewChat(props: AgentPreviewChatProps) {
|
||||
const { t } = useTranslation('agentV2')
|
||||
const agentName = props.agentName || t('agentDetail.configure.preview.empty.defaultAgentName')
|
||||
|
||||
return (
|
||||
<AgentChatRuntime
|
||||
{...props}
|
||||
inputPlaceholder={t('agentDetail.configure.preview.inputPlaceholder', {
|
||||
name: agentName,
|
||||
})}
|
||||
renderEmptyState={emptyStateProps => (
|
||||
<AgentPreviewChatEmptyState {...emptyStateProps} />
|
||||
)}
|
||||
/>
|
||||
)
|
||||
}
|
||||
@ -7,9 +7,10 @@ import Loading from '@/app/components/base/loading'
|
||||
import { AgentComposerProvider } from '@/features/agent-v2/agent-composer/provider'
|
||||
import { useHydrateAgentSoulConfigDraft } from '@/features/agent-v2/agent-composer/store'
|
||||
import { AgentOrchestratePanel } from './components/orchestrate'
|
||||
import { AgentPreviewChat } from './components/preview/chat'
|
||||
import { AgentBuildChat } from './components/preview/build-chat'
|
||||
import { AgentChatFeaturesPanel } from './components/preview/chat-features-panel'
|
||||
import { AgentPreviewHeader } from './components/preview/header'
|
||||
import { AgentPreviewChat } from './components/preview/preview-chat'
|
||||
import { AgentPreviewVersionsPanel } from './components/preview/versions-panel'
|
||||
import { useAgentConfigureData, useAgentConfigureModelOptions, useAgentPreviewSoulConfig } from './hooks'
|
||||
import { useAgentConfigureSync } from './use-agent-configure-sync'
|
||||
@ -18,6 +19,8 @@ type AgentConfigurePageProps = {
|
||||
agentId: string
|
||||
}
|
||||
|
||||
type AgentConfigureRightPanelMode = 'build' | 'preview'
|
||||
|
||||
export function AgentConfigurePage({
|
||||
agentId,
|
||||
}: AgentConfigurePageProps) {
|
||||
@ -71,6 +74,7 @@ function AgentConfigurePageLoadedContent({
|
||||
const [showChatFeatures, setShowChatFeatures] = useState(false)
|
||||
const [showPreviewVersions, setShowPreviewVersions] = useState(false)
|
||||
const [clearPreviewChat, setClearPreviewChat] = useState(false)
|
||||
const [rightPanelMode, setRightPanelMode] = useState<AgentConfigureRightPanelMode>('build')
|
||||
const {
|
||||
agentQuery,
|
||||
composerQuery,
|
||||
@ -134,13 +138,16 @@ function AgentConfigurePageLoadedContent({
|
||||
<div className="flex min-w-105 flex-1 flex-col overflow-hidden rounded-lg bg-background-gradient-bg-fill-chat-bg-2 shadow-xl shadow-shadow-shadow-5">
|
||||
<AgentPreviewHeader
|
||||
agentId={agentId}
|
||||
mode={rightPanelMode}
|
||||
isChatFeaturesOpen={showChatFeatures}
|
||||
onModeChange={setRightPanelMode}
|
||||
onToggleChatFeatures={() => setShowChatFeatures(open => !open)}
|
||||
onOpenVersions={() => setShowPreviewVersions(true)}
|
||||
onRestart={() => setClearPreviewChat(true)}
|
||||
/>
|
||||
|
||||
<div className="min-h-0 flex-1">
|
||||
<AgentPreviewChatWithDraftConfig
|
||||
<AgentRightPanelChatWithDraftConfig
|
||||
agentId={agentId}
|
||||
agentIcon={agentQuery.data?.icon}
|
||||
agentIconBackground={agentQuery.data?.icon_background}
|
||||
@ -149,6 +156,7 @@ function AgentConfigurePageLoadedContent({
|
||||
agentSoulConfig={agentSoulConfig}
|
||||
clearChatList={clearPreviewChat}
|
||||
debugConversationId={agentQuery.data?.debug_conversation_id}
|
||||
mode={rightPanelMode}
|
||||
onClearChatListChange={setClearPreviewChat}
|
||||
onSaveDraftBeforeRun={saveDraft}
|
||||
/>
|
||||
@ -174,18 +182,27 @@ function AgentConfigurePageLoadedContent({
|
||||
)
|
||||
}
|
||||
|
||||
function AgentPreviewChatWithDraftConfig({
|
||||
function AgentRightPanelChatWithDraftConfig({
|
||||
agentSoulConfig,
|
||||
mode,
|
||||
...props
|
||||
}: Omit<Parameters<typeof AgentPreviewChat>[0], 'agentSoulConfig'> & {
|
||||
agentSoulConfig?: AgentSoulConfig
|
||||
mode: AgentConfigureRightPanelMode
|
||||
}) {
|
||||
const previewAgentSoulConfig = useAgentPreviewSoulConfig(agentSoulConfig)
|
||||
|
||||
return (
|
||||
<AgentPreviewChat
|
||||
{...props}
|
||||
agentSoulConfig={previewAgentSoulConfig}
|
||||
/>
|
||||
)
|
||||
return mode === 'build'
|
||||
? (
|
||||
<AgentBuildChat
|
||||
{...props}
|
||||
agentSoulConfig={previewAgentSoulConfig}
|
||||
/>
|
||||
)
|
||||
: (
|
||||
<AgentPreviewChat
|
||||
{...props}
|
||||
agentSoulConfig={previewAgentSoulConfig}
|
||||
/>
|
||||
)
|
||||
}
|
||||
|
||||
@ -74,6 +74,9 @@
|
||||
"agentDetail.configure.advancedSettings.envEditor.valuePlaceholder": "Value",
|
||||
"agentDetail.configure.advancedSettings.label": "الإعدادات المتقدمة",
|
||||
"agentDetail.configure.advancedSettings.toggle": "تبديل الإعدادات المتقدمة",
|
||||
"agentDetail.configure.build.empty.description": "صِف ما تريده وسيتم ملء النموذج على اليسار أثناء المحادثة.",
|
||||
"agentDetail.configure.build.empty.title": "ابنِ وكيلك عبر الدردشة",
|
||||
"agentDetail.configure.build.inputPlaceholder": "صِف ما يجب أن يفعله وكيلك",
|
||||
"agentDetail.configure.chatFeatures.description": "شكّل تجربة الدردشة للمستخدم النهائي على Web app وأسطح الدردشة.",
|
||||
"agentDetail.configure.chatFeatures.title": "ميزات الدردشة",
|
||||
"agentDetail.configure.files.add": "إضافة ملف",
|
||||
@ -131,9 +134,11 @@
|
||||
"agentDetail.configure.orchestrate": "تنسيق",
|
||||
"agentDetail.configure.preview.chatFeatures": "ميزات الدردشة",
|
||||
"agentDetail.configure.preview.empty.defaultAgentName": "وكيل",
|
||||
"agentDetail.configure.preview.empty.description": "أرسل رسالة لاختبار المسودة الحالية.",
|
||||
"agentDetail.configure.preview.empty.description": "شغّل الوكيل كمحادثة مكتملة، تمامًا كما سيختبرها المستخدمون بعد النشر.",
|
||||
"agentDetail.configure.preview.empty.noInstructionsDescription": "لا توجد تعليمات بعد، لذلك تأتي الردود من النموذج البسيط.",
|
||||
"agentDetail.configure.preview.empty.title": "معاينة {{name}}",
|
||||
"agentDetail.configure.preview.endUserAuth": "مصادقة المستخدم النهائي",
|
||||
"agentDetail.configure.preview.inputPlaceholder": "إرسال رسالة إلى {{name}}",
|
||||
"agentDetail.configure.preview.restart": "إعادة تشغيل المعاينة",
|
||||
"agentDetail.configure.preview.title": "معاينة",
|
||||
"agentDetail.configure.prompt.copied": "تم نسخ المطالبة",
|
||||
@ -167,6 +172,9 @@
|
||||
"agentDetail.configure.publishImpact.title": "{{action}} إلى {{name}}",
|
||||
"agentDetail.configure.publishImpact.workflowCount_one": "{{count}} سير عمل",
|
||||
"agentDetail.configure.publishImpact.workflowCount_other": "{{count}} سير عمل",
|
||||
"agentDetail.configure.rightPanel.build": "بناء",
|
||||
"agentDetail.configure.rightPanel.modeLabel": "وضع تكوين الوكيل",
|
||||
"agentDetail.configure.rightPanel.preview": "معاينة",
|
||||
"agentDetail.configure.skills.add": "إضافة مهارة",
|
||||
"agentDetail.configure.skills.detail.contentRegion": "محتوى تفاصيل المهارة",
|
||||
"agentDetail.configure.skills.detail.fileCount": "{{count}} ملفات",
|
||||
|
||||
@ -74,6 +74,9 @@
|
||||
"agentDetail.configure.advancedSettings.envEditor.valuePlaceholder": "Value",
|
||||
"agentDetail.configure.advancedSettings.label": "Erweiterte Einstellungen",
|
||||
"agentDetail.configure.advancedSettings.toggle": "Erweiterte Einstellungen umschalten",
|
||||
"agentDetail.configure.build.empty.description": "Beschreiben Sie, was Sie möchten, und das Formular links wird während des Chats ausgefüllt.",
|
||||
"agentDetail.configure.build.empty.title": "Agent per Chat erstellen",
|
||||
"agentDetail.configure.build.inputPlaceholder": "Beschreiben Sie, was Ihr Agent tun soll",
|
||||
"agentDetail.configure.chatFeatures.description": "Gestalten Sie das Chat-Erlebnis für Endnutzer in Ihrer Webapp und in Chat-Oberflächen.",
|
||||
"agentDetail.configure.chatFeatures.title": "Chat-Funktionen",
|
||||
"agentDetail.configure.files.add": "Datei hinzufügen",
|
||||
@ -131,9 +134,11 @@
|
||||
"agentDetail.configure.orchestrate": "Orchestrieren",
|
||||
"agentDetail.configure.preview.chatFeatures": "Chat-Funktionen",
|
||||
"agentDetail.configure.preview.empty.defaultAgentName": "Agent",
|
||||
"agentDetail.configure.preview.empty.description": "Senden Sie eine Nachricht, um den aktuellen Entwurf zu testen.",
|
||||
"agentDetail.configure.preview.empty.description": "Führen Sie den Agenten als fertigen Chat aus, genau wie Benutzer ihn nach der Veröffentlichung erleben.",
|
||||
"agentDetail.configure.preview.empty.noInstructionsDescription": "Noch keine Anweisungen, daher kommen die Antworten vom reinen Modell.",
|
||||
"agentDetail.configure.preview.empty.title": "{{name}} in der Vorschau anzeigen",
|
||||
"agentDetail.configure.preview.endUserAuth": "Endbenutzer-Authentifizierung",
|
||||
"agentDetail.configure.preview.inputPlaceholder": "Nachricht an {{name}}",
|
||||
"agentDetail.configure.preview.restart": "Vorschau neu starten",
|
||||
"agentDetail.configure.preview.title": "Vorschau",
|
||||
"agentDetail.configure.prompt.copied": "Prompt kopiert",
|
||||
@ -167,6 +172,9 @@
|
||||
"agentDetail.configure.publishImpact.title": "{{action}} für {{name}}",
|
||||
"agentDetail.configure.publishImpact.workflowCount_one": "{{count}} Workflow",
|
||||
"agentDetail.configure.publishImpact.workflowCount_other": "{{count}} Workflows",
|
||||
"agentDetail.configure.rightPanel.build": "Erstellen",
|
||||
"agentDetail.configure.rightPanel.modeLabel": "Agent-Konfigurationsmodus",
|
||||
"agentDetail.configure.rightPanel.preview": "Vorschau",
|
||||
"agentDetail.configure.skills.add": "Skill hinzufügen",
|
||||
"agentDetail.configure.skills.detail.contentRegion": "Skill-Detailinhalt",
|
||||
"agentDetail.configure.skills.detail.fileCount": "{{count}} DATEIEN",
|
||||
|
||||
@ -74,6 +74,9 @@
|
||||
"agentDetail.configure.advancedSettings.envEditor.valuePlaceholder": "Value",
|
||||
"agentDetail.configure.advancedSettings.label": "Advanced Settings",
|
||||
"agentDetail.configure.advancedSettings.toggle": "Toggle advanced settings",
|
||||
"agentDetail.configure.build.empty.description": "Describe what you want and it fills in the form on the left as you go.",
|
||||
"agentDetail.configure.build.empty.title": "Build your agent by chatting",
|
||||
"agentDetail.configure.build.inputPlaceholder": "Describe what your agent should do",
|
||||
"agentDetail.configure.chatFeatures.description": "Shape the end-user chat experience on your web app and chat surfaces.",
|
||||
"agentDetail.configure.chatFeatures.title": "Chat Features",
|
||||
"agentDetail.configure.files.add": "Add file",
|
||||
@ -131,9 +134,11 @@
|
||||
"agentDetail.configure.orchestrate": "Orchestrate",
|
||||
"agentDetail.configure.preview.chatFeatures": "Chat Features",
|
||||
"agentDetail.configure.preview.empty.defaultAgentName": "Agent",
|
||||
"agentDetail.configure.preview.empty.description": "Send a message to test the current draft.",
|
||||
"agentDetail.configure.preview.empty.description": "Run the agent as a finished chat, exactly how people will experience it once published.",
|
||||
"agentDetail.configure.preview.empty.noInstructionsDescription": "No instructions yet, so replies come from the plain model.",
|
||||
"agentDetail.configure.preview.empty.title": "Preview {{name}}",
|
||||
"agentDetail.configure.preview.endUserAuth": "End-user authentication",
|
||||
"agentDetail.configure.preview.inputPlaceholder": "Message {{name}}",
|
||||
"agentDetail.configure.preview.restart": "Restart preview",
|
||||
"agentDetail.configure.preview.title": "Preview",
|
||||
"agentDetail.configure.prompt.copied": "Prompt copied",
|
||||
@ -167,6 +172,9 @@
|
||||
"agentDetail.configure.publishImpact.title": "{{action}} to {{name}}",
|
||||
"agentDetail.configure.publishImpact.workflowCount_one": "{{count}} workflow",
|
||||
"agentDetail.configure.publishImpact.workflowCount_other": "{{count}} workflows",
|
||||
"agentDetail.configure.rightPanel.build": "Build",
|
||||
"agentDetail.configure.rightPanel.modeLabel": "Agent configuration mode",
|
||||
"agentDetail.configure.rightPanel.preview": "Preview",
|
||||
"agentDetail.configure.skills.add": "Add skill",
|
||||
"agentDetail.configure.skills.detail.contentRegion": "Skill detail content",
|
||||
"agentDetail.configure.skills.detail.fileCount": "{{count}} FILES",
|
||||
|
||||
@ -74,6 +74,9 @@
|
||||
"agentDetail.configure.advancedSettings.envEditor.valuePlaceholder": "Value",
|
||||
"agentDetail.configure.advancedSettings.label": "Configuración avanzada",
|
||||
"agentDetail.configure.advancedSettings.toggle": "Alternar configuración avanzada",
|
||||
"agentDetail.configure.build.empty.description": "Describe lo que quieres y se irá completando el formulario de la izquierda mientras avanzas.",
|
||||
"agentDetail.configure.build.empty.title": "Crea tu agente chateando",
|
||||
"agentDetail.configure.build.inputPlaceholder": "Describe qué debe hacer tu agente",
|
||||
"agentDetail.configure.chatFeatures.description": "Da forma a la experiencia de chat del usuario final en tu webapp y superficies de chat.",
|
||||
"agentDetail.configure.chatFeatures.title": "Funciones de chat",
|
||||
"agentDetail.configure.files.add": "Agregar archivo",
|
||||
@ -131,9 +134,11 @@
|
||||
"agentDetail.configure.orchestrate": "Orquestar",
|
||||
"agentDetail.configure.preview.chatFeatures": "Funciones de chat",
|
||||
"agentDetail.configure.preview.empty.defaultAgentName": "Agente",
|
||||
"agentDetail.configure.preview.empty.description": "Envía un mensaje para probar el borrador actual.",
|
||||
"agentDetail.configure.preview.empty.description": "Ejecuta el agente como un chat terminado, exactamente como lo verán las personas cuando se publique.",
|
||||
"agentDetail.configure.preview.empty.noInstructionsDescription": "Aún no hay instrucciones, así que las respuestas vendrán del modelo sin configurar.",
|
||||
"agentDetail.configure.preview.empty.title": "Vista previa de {{name}}",
|
||||
"agentDetail.configure.preview.endUserAuth": "Autenticación de usuario final",
|
||||
"agentDetail.configure.preview.inputPlaceholder": "Enviar mensaje a {{name}}",
|
||||
"agentDetail.configure.preview.restart": "Reiniciar vista previa",
|
||||
"agentDetail.configure.preview.title": "Vista previa",
|
||||
"agentDetail.configure.prompt.copied": "Prompt copiado",
|
||||
@ -167,6 +172,9 @@
|
||||
"agentDetail.configure.publishImpact.title": "{{action}} en {{name}}",
|
||||
"agentDetail.configure.publishImpact.workflowCount_one": "{{count}} flujo de trabajo",
|
||||
"agentDetail.configure.publishImpact.workflowCount_other": "{{count}} flujos de trabajo",
|
||||
"agentDetail.configure.rightPanel.build": "Crear",
|
||||
"agentDetail.configure.rightPanel.modeLabel": "Modo de configuración del agente",
|
||||
"agentDetail.configure.rightPanel.preview": "Vista previa",
|
||||
"agentDetail.configure.skills.add": "Agregar habilidad",
|
||||
"agentDetail.configure.skills.detail.contentRegion": "Contenido de los detalles de la habilidad",
|
||||
"agentDetail.configure.skills.detail.fileCount": "{{count}} ARCHIVOS",
|
||||
|
||||
@ -74,6 +74,9 @@
|
||||
"agentDetail.configure.advancedSettings.envEditor.valuePlaceholder": "Value",
|
||||
"agentDetail.configure.advancedSettings.label": "تنظیمات پیشرفته",
|
||||
"agentDetail.configure.advancedSettings.toggle": "تغییر تنظیمات پیشرفته",
|
||||
"agentDetail.configure.build.empty.description": "آنچه میخواهید را توضیح دهید تا فرم سمت چپ در طول گفتگو تکمیل شود.",
|
||||
"agentDetail.configure.build.empty.title": "عامل خود را با چت بسازید",
|
||||
"agentDetail.configure.build.inputPlaceholder": "توضیح دهید عامل شما باید چه کاری انجام دهد",
|
||||
"agentDetail.configure.chatFeatures.description": "تجربه چت کاربر نهایی را در Web app و سطوح چت خود شکل دهید.",
|
||||
"agentDetail.configure.chatFeatures.title": "ویژگیهای چت",
|
||||
"agentDetail.configure.files.add": "افزودن فایل",
|
||||
@ -131,9 +134,11 @@
|
||||
"agentDetail.configure.orchestrate": "هماهنگسازی",
|
||||
"agentDetail.configure.preview.chatFeatures": "ویژگیهای چت",
|
||||
"agentDetail.configure.preview.empty.defaultAgentName": "عامل",
|
||||
"agentDetail.configure.preview.empty.description": "برای آزمایش پیشنویس فعلی یک پیام ارسال کنید.",
|
||||
"agentDetail.configure.preview.empty.description": "عامل را مثل یک چت نهایی اجرا کنید، دقیقاً همانطور که کاربران پس از انتشار تجربه میکنند.",
|
||||
"agentDetail.configure.preview.empty.noInstructionsDescription": "هنوز دستورالعملی وجود ندارد، بنابراین پاسخها از مدل ساده میآیند.",
|
||||
"agentDetail.configure.preview.empty.title": "پیشنمایش {{name}}",
|
||||
"agentDetail.configure.preview.endUserAuth": "احراز هویت کاربر نهایی",
|
||||
"agentDetail.configure.preview.inputPlaceholder": "ارسال پیام به {{name}}",
|
||||
"agentDetail.configure.preview.restart": "راهاندازی مجدد پیشنمایش",
|
||||
"agentDetail.configure.preview.title": "پیشنمایش",
|
||||
"agentDetail.configure.prompt.copied": "پرامپت کپی شد",
|
||||
@ -167,6 +172,9 @@
|
||||
"agentDetail.configure.publishImpact.title": "{{action}} به {{name}}",
|
||||
"agentDetail.configure.publishImpact.workflowCount_one": "{{count}} گردش کار",
|
||||
"agentDetail.configure.publishImpact.workflowCount_other": "{{count}} گردش کار",
|
||||
"agentDetail.configure.rightPanel.build": "ساخت",
|
||||
"agentDetail.configure.rightPanel.modeLabel": "حالت پیکربندی عامل",
|
||||
"agentDetail.configure.rightPanel.preview": "پیشنمایش",
|
||||
"agentDetail.configure.skills.add": "افزودن مهارت",
|
||||
"agentDetail.configure.skills.detail.contentRegion": "محتوای جزئیات مهارت",
|
||||
"agentDetail.configure.skills.detail.fileCount": "{{count}} فایل",
|
||||
|
||||
@ -74,6 +74,9 @@
|
||||
"agentDetail.configure.advancedSettings.envEditor.valuePlaceholder": "Value",
|
||||
"agentDetail.configure.advancedSettings.label": "Paramètres avancés",
|
||||
"agentDetail.configure.advancedSettings.toggle": "Basculer les paramètres avancés",
|
||||
"agentDetail.configure.build.empty.description": "Décrivez ce que vous voulez et le formulaire de gauche se remplit au fil de la conversation.",
|
||||
"agentDetail.configure.build.empty.title": "Créez votre agent par chat",
|
||||
"agentDetail.configure.build.inputPlaceholder": "Décrivez ce que votre agent doit faire",
|
||||
"agentDetail.configure.chatFeatures.description": "Façonnez l’expérience de chat de l’utilisateur final sur votre webapp et vos surfaces de chat.",
|
||||
"agentDetail.configure.chatFeatures.title": "Fonctionnalités de chat",
|
||||
"agentDetail.configure.files.add": "Ajouter un fichier",
|
||||
@ -131,9 +134,11 @@
|
||||
"agentDetail.configure.orchestrate": "Orchestrer",
|
||||
"agentDetail.configure.preview.chatFeatures": "Fonctionnalités de chat",
|
||||
"agentDetail.configure.preview.empty.defaultAgentName": "Agent",
|
||||
"agentDetail.configure.preview.empty.description": "Envoyez un message pour tester le brouillon actuel.",
|
||||
"agentDetail.configure.preview.empty.description": "Exécutez l’agent comme un chat finalisé, exactement comme les utilisateurs le verront une fois publié.",
|
||||
"agentDetail.configure.preview.empty.noInstructionsDescription": "Pas encore d’instructions, donc les réponses proviennent du modèle brut.",
|
||||
"agentDetail.configure.preview.empty.title": "Aperçu de {{name}}",
|
||||
"agentDetail.configure.preview.endUserAuth": "Authentification de l’utilisateur final",
|
||||
"agentDetail.configure.preview.inputPlaceholder": "Envoyer un message à {{name}}",
|
||||
"agentDetail.configure.preview.restart": "Redémarrer l’aperçu",
|
||||
"agentDetail.configure.preview.title": "Aperçu",
|
||||
"agentDetail.configure.prompt.copied": "Prompt copié",
|
||||
@ -167,6 +172,9 @@
|
||||
"agentDetail.configure.publishImpact.title": "{{action}} pour {{name}}",
|
||||
"agentDetail.configure.publishImpact.workflowCount_one": "{{count}} workflow",
|
||||
"agentDetail.configure.publishImpact.workflowCount_other": "{{count}} workflows",
|
||||
"agentDetail.configure.rightPanel.build": "Créer",
|
||||
"agentDetail.configure.rightPanel.modeLabel": "Mode de configuration de l’agent",
|
||||
"agentDetail.configure.rightPanel.preview": "Aperçu",
|
||||
"agentDetail.configure.skills.add": "Ajouter une compétence",
|
||||
"agentDetail.configure.skills.detail.contentRegion": "Contenu des détails de la compétence",
|
||||
"agentDetail.configure.skills.detail.fileCount": "{{count}} FICHIERS",
|
||||
|
||||
@ -74,6 +74,9 @@
|
||||
"agentDetail.configure.advancedSettings.envEditor.valuePlaceholder": "Value",
|
||||
"agentDetail.configure.advancedSettings.label": "उन्नत सेटिंग्स",
|
||||
"agentDetail.configure.advancedSettings.toggle": "उन्नत सेटिंग्स टॉगल करें",
|
||||
"agentDetail.configure.build.empty.description": "आप जो चाहते हैं उसका वर्णन करें और बाईं ओर का फ़ॉर्म बातचीत के साथ भरता जाएगा।",
|
||||
"agentDetail.configure.build.empty.title": "चैट करके अपना एजेंट बनाएं",
|
||||
"agentDetail.configure.build.inputPlaceholder": "बताएं कि आपका एजेंट क्या करे",
|
||||
"agentDetail.configure.chatFeatures.description": "अपने Web app और चैट सतहों पर अंतिम-उपयोगकर्ता चैट अनुभव को आकार दें।",
|
||||
"agentDetail.configure.chatFeatures.title": "चैट सुविधाएँ",
|
||||
"agentDetail.configure.files.add": "फ़ाइल जोड़ें",
|
||||
@ -131,9 +134,11 @@
|
||||
"agentDetail.configure.orchestrate": "व्यवस्थित करें",
|
||||
"agentDetail.configure.preview.chatFeatures": "चैट सुविधाएँ",
|
||||
"agentDetail.configure.preview.empty.defaultAgentName": "एजेंट",
|
||||
"agentDetail.configure.preview.empty.description": "वर्तमान ड्राफ्ट का परीक्षण करने के लिए एक संदेश भेजें।",
|
||||
"agentDetail.configure.preview.empty.description": "एजेंट को तैयार चैट की तरह चलाएं, ठीक वैसे जैसे लोग प्रकाशित होने के बाद अनुभव करेंगे।",
|
||||
"agentDetail.configure.preview.empty.noInstructionsDescription": "अभी तक कोई निर्देश नहीं, इसलिए उत्तर सामान्य मॉडल से आते हैं।",
|
||||
"agentDetail.configure.preview.empty.title": "{{name}} का पूर्वावलोकन",
|
||||
"agentDetail.configure.preview.endUserAuth": "अंतिम-उपयोगकर्ता प्रमाणीकरण",
|
||||
"agentDetail.configure.preview.inputPlaceholder": "{{name}} को संदेश भेजें",
|
||||
"agentDetail.configure.preview.restart": "पूर्वावलोकन पुनः आरंभ करें",
|
||||
"agentDetail.configure.preview.title": "पूर्वावलोकन",
|
||||
"agentDetail.configure.prompt.copied": "प्रॉम्प्ट कॉपी हो गया",
|
||||
@ -167,6 +172,9 @@
|
||||
"agentDetail.configure.publishImpact.title": "{{name}} पर {{action}}",
|
||||
"agentDetail.configure.publishImpact.workflowCount_one": "{{count}} वर्कफ़्लो",
|
||||
"agentDetail.configure.publishImpact.workflowCount_other": "{{count}} वर्कफ़्लो",
|
||||
"agentDetail.configure.rightPanel.build": "बिल्ड",
|
||||
"agentDetail.configure.rightPanel.modeLabel": "एजेंट कॉन्फ़िगरेशन मोड",
|
||||
"agentDetail.configure.rightPanel.preview": "पूर्वावलोकन",
|
||||
"agentDetail.configure.skills.add": "कौशल जोड़ें",
|
||||
"agentDetail.configure.skills.detail.contentRegion": "कौशल विवरण सामग्री",
|
||||
"agentDetail.configure.skills.detail.fileCount": "{{count}} फ़ाइलें",
|
||||
|
||||
@ -74,6 +74,9 @@
|
||||
"agentDetail.configure.advancedSettings.envEditor.valuePlaceholder": "Value",
|
||||
"agentDetail.configure.advancedSettings.label": "Pengaturan Lanjutan",
|
||||
"agentDetail.configure.advancedSettings.toggle": "Alihkan pengaturan lanjutan",
|
||||
"agentDetail.configure.build.empty.description": "Jelaskan yang Anda inginkan dan formulir di kiri akan terisi seiring percakapan.",
|
||||
"agentDetail.configure.build.empty.title": "Bangun agen Anda lewat chat",
|
||||
"agentDetail.configure.build.inputPlaceholder": "Jelaskan apa yang harus dilakukan agen Anda",
|
||||
"agentDetail.configure.chatFeatures.description": "Bentuk pengalaman chat pengguna akhir di Web app dan permukaan chat Anda.",
|
||||
"agentDetail.configure.chatFeatures.title": "Fitur Chat",
|
||||
"agentDetail.configure.files.add": "Tambahkan file",
|
||||
@ -131,9 +134,11 @@
|
||||
"agentDetail.configure.orchestrate": "Orkestrasi",
|
||||
"agentDetail.configure.preview.chatFeatures": "Fitur Chat",
|
||||
"agentDetail.configure.preview.empty.defaultAgentName": "Agen",
|
||||
"agentDetail.configure.preview.empty.description": "Kirim pesan untuk menguji draf saat ini.",
|
||||
"agentDetail.configure.preview.empty.description": "Jalankan agen sebagai chat final, persis seperti yang akan dialami orang setelah diterbitkan.",
|
||||
"agentDetail.configure.preview.empty.noInstructionsDescription": "Belum ada instruksi, jadi balasan datang dari model polos.",
|
||||
"agentDetail.configure.preview.empty.title": "Pratinjau {{name}}",
|
||||
"agentDetail.configure.preview.endUserAuth": "Autentikasi pengguna akhir",
|
||||
"agentDetail.configure.preview.inputPlaceholder": "Kirim pesan ke {{name}}",
|
||||
"agentDetail.configure.preview.restart": "Mulai ulang pratinjau",
|
||||
"agentDetail.configure.preview.title": "Pratinjau",
|
||||
"agentDetail.configure.prompt.copied": "Prompt disalin",
|
||||
@ -167,6 +172,9 @@
|
||||
"agentDetail.configure.publishImpact.title": "{{action}} ke {{name}}",
|
||||
"agentDetail.configure.publishImpact.workflowCount_one": "{{count}} alur kerja",
|
||||
"agentDetail.configure.publishImpact.workflowCount_other": "{{count}} alur kerja",
|
||||
"agentDetail.configure.rightPanel.build": "Bangun",
|
||||
"agentDetail.configure.rightPanel.modeLabel": "Mode konfigurasi agen",
|
||||
"agentDetail.configure.rightPanel.preview": "Pratinjau",
|
||||
"agentDetail.configure.skills.add": "Tambahkan keterampilan",
|
||||
"agentDetail.configure.skills.detail.contentRegion": "Konten detail keterampilan",
|
||||
"agentDetail.configure.skills.detail.fileCount": "{{count}} FILE",
|
||||
|
||||
@ -74,6 +74,9 @@
|
||||
"agentDetail.configure.advancedSettings.envEditor.valuePlaceholder": "Value",
|
||||
"agentDetail.configure.advancedSettings.label": "Impostazioni avanzate",
|
||||
"agentDetail.configure.advancedSettings.toggle": "Attiva/disattiva impostazioni avanzate",
|
||||
"agentDetail.configure.build.empty.description": "Descrivi ciò che vuoi e il modulo a sinistra verrà compilato man mano.",
|
||||
"agentDetail.configure.build.empty.title": "Crea il tuo agente con la chat",
|
||||
"agentDetail.configure.build.inputPlaceholder": "Descrivi cosa dovrebbe fare il tuo agente",
|
||||
"agentDetail.configure.chatFeatures.description": "Definisci l’esperienza di chat per l’utente finale sulla tua webapp e sulle superfici di chat.",
|
||||
"agentDetail.configure.chatFeatures.title": "Funzionalità chat",
|
||||
"agentDetail.configure.files.add": "Aggiungi file",
|
||||
@ -131,9 +134,11 @@
|
||||
"agentDetail.configure.orchestrate": "Orchestra",
|
||||
"agentDetail.configure.preview.chatFeatures": "Funzionalità chat",
|
||||
"agentDetail.configure.preview.empty.defaultAgentName": "Agente",
|
||||
"agentDetail.configure.preview.empty.description": "Invia un messaggio per testare la bozza corrente.",
|
||||
"agentDetail.configure.preview.empty.description": "Esegui l’agente come una chat completa, esattamente come verrà vissuta dopo la pubblicazione.",
|
||||
"agentDetail.configure.preview.empty.noInstructionsDescription": "Nessuna istruzione ancora, quindi le risposte arrivano dal modello puro.",
|
||||
"agentDetail.configure.preview.empty.title": "Anteprima di {{name}}",
|
||||
"agentDetail.configure.preview.endUserAuth": "Autenticazione utente finale",
|
||||
"agentDetail.configure.preview.inputPlaceholder": "Invia un messaggio a {{name}}",
|
||||
"agentDetail.configure.preview.restart": "Riavvia anteprima",
|
||||
"agentDetail.configure.preview.title": "Anteprima",
|
||||
"agentDetail.configure.prompt.copied": "Prompt copiato",
|
||||
@ -167,6 +172,9 @@
|
||||
"agentDetail.configure.publishImpact.title": "{{action}} in {{name}}",
|
||||
"agentDetail.configure.publishImpact.workflowCount_one": "{{count}} workflow",
|
||||
"agentDetail.configure.publishImpact.workflowCount_other": "{{count}} workflow",
|
||||
"agentDetail.configure.rightPanel.build": "Crea",
|
||||
"agentDetail.configure.rightPanel.modeLabel": "Modalità di configurazione agente",
|
||||
"agentDetail.configure.rightPanel.preview": "Anteprima",
|
||||
"agentDetail.configure.skills.add": "Aggiungi abilità",
|
||||
"agentDetail.configure.skills.detail.contentRegion": "Contenuto dei dettagli dell’abilità",
|
||||
"agentDetail.configure.skills.detail.fileCount": "{{count}} FILE",
|
||||
|
||||
@ -74,6 +74,9 @@
|
||||
"agentDetail.configure.advancedSettings.envEditor.valuePlaceholder": "Value",
|
||||
"agentDetail.configure.advancedSettings.label": "詳細設定",
|
||||
"agentDetail.configure.advancedSettings.toggle": "詳細設定の表示を切り替え",
|
||||
"agentDetail.configure.build.empty.description": "やりたいことを説明すると、左側のフォームが会話に合わせて入力されます。",
|
||||
"agentDetail.configure.build.empty.title": "チャットでエージェントを作成",
|
||||
"agentDetail.configure.build.inputPlaceholder": "エージェントに実行させたいことを説明",
|
||||
"agentDetail.configure.chatFeatures.description": "Web app やチャット画面でのエンドユーザー向けチャット体験を設定します。",
|
||||
"agentDetail.configure.chatFeatures.title": "チャット機能",
|
||||
"agentDetail.configure.files.add": "ファイルを追加",
|
||||
@ -131,9 +134,11 @@
|
||||
"agentDetail.configure.orchestrate": "オーケストレーション",
|
||||
"agentDetail.configure.preview.chatFeatures": "チャット機能",
|
||||
"agentDetail.configure.preview.empty.defaultAgentName": "エージェント",
|
||||
"agentDetail.configure.preview.empty.description": "メッセージを送信して現在のドラフトをテストします。",
|
||||
"agentDetail.configure.preview.empty.description": "公開後にユーザーが体験する完成版のチャットとしてエージェントを実行します。",
|
||||
"agentDetail.configure.preview.empty.noInstructionsDescription": "指示が設定されていないため、応答はプレーンなモデルから返ります。",
|
||||
"agentDetail.configure.preview.empty.title": "{{name}} をプレビュー",
|
||||
"agentDetail.configure.preview.endUserAuth": "エンドユーザー認証",
|
||||
"agentDetail.configure.preview.inputPlaceholder": "{{name}} にメッセージを送信",
|
||||
"agentDetail.configure.preview.restart": "プレビューを再開",
|
||||
"agentDetail.configure.preview.title": "プレビュー",
|
||||
"agentDetail.configure.prompt.copied": "プロンプトをコピーしました",
|
||||
@ -167,6 +172,9 @@
|
||||
"agentDetail.configure.publishImpact.title": "{{name}} に{{action}}",
|
||||
"agentDetail.configure.publishImpact.workflowCount_one": "{{count}} 個のワークフロー",
|
||||
"agentDetail.configure.publishImpact.workflowCount_other": "{{count}} 個のワークフロー",
|
||||
"agentDetail.configure.rightPanel.build": "ビルド",
|
||||
"agentDetail.configure.rightPanel.modeLabel": "エージェント設定モード",
|
||||
"agentDetail.configure.rightPanel.preview": "プレビュー",
|
||||
"agentDetail.configure.skills.add": "スキルを追加",
|
||||
"agentDetail.configure.skills.detail.contentRegion": "スキル詳細コンテンツ",
|
||||
"agentDetail.configure.skills.detail.fileCount": "{{count}} 個のファイル",
|
||||
|
||||
@ -74,6 +74,9 @@
|
||||
"agentDetail.configure.advancedSettings.envEditor.valuePlaceholder": "Value",
|
||||
"agentDetail.configure.advancedSettings.label": "고급 설정",
|
||||
"agentDetail.configure.advancedSettings.toggle": "고급 설정 전환",
|
||||
"agentDetail.configure.build.empty.description": "원하는 내용을 설명하면 대화에 맞춰 왼쪽 양식이 채워집니다.",
|
||||
"agentDetail.configure.build.empty.title": "채팅으로 에이전트 만들기",
|
||||
"agentDetail.configure.build.inputPlaceholder": "에이전트가 해야 할 일을 설명하세요",
|
||||
"agentDetail.configure.chatFeatures.description": "Web app 및 채팅 화면에서의 최종 사용자 채팅 경험을 구성합니다.",
|
||||
"agentDetail.configure.chatFeatures.title": "채팅 기능",
|
||||
"agentDetail.configure.files.add": "파일 추가",
|
||||
@ -131,9 +134,11 @@
|
||||
"agentDetail.configure.orchestrate": "오케스트레이션",
|
||||
"agentDetail.configure.preview.chatFeatures": "채팅 기능",
|
||||
"agentDetail.configure.preview.empty.defaultAgentName": "에이전트",
|
||||
"agentDetail.configure.preview.empty.description": "현재 초안을 테스트하려면 메시지를 보내세요.",
|
||||
"agentDetail.configure.preview.empty.description": "게시 후 사용자가 경험할 완성된 채팅처럼 에이전트를 실행합니다.",
|
||||
"agentDetail.configure.preview.empty.noInstructionsDescription": "아직 지시 사항이 없어 답변은 기본 모델에서 제공됩니다.",
|
||||
"agentDetail.configure.preview.empty.title": "{{name}} 미리보기",
|
||||
"agentDetail.configure.preview.endUserAuth": "최종 사용자 인증",
|
||||
"agentDetail.configure.preview.inputPlaceholder": "{{name}}에게 메시지 보내기",
|
||||
"agentDetail.configure.preview.restart": "미리보기 다시 시작",
|
||||
"agentDetail.configure.preview.title": "미리보기",
|
||||
"agentDetail.configure.prompt.copied": "프롬프트를 복사했습니다",
|
||||
@ -167,6 +172,9 @@
|
||||
"agentDetail.configure.publishImpact.title": "{{name}}에 {{action}}",
|
||||
"agentDetail.configure.publishImpact.workflowCount_one": "워크플로 {{count}}개",
|
||||
"agentDetail.configure.publishImpact.workflowCount_other": "워크플로 {{count}}개",
|
||||
"agentDetail.configure.rightPanel.build": "빌드",
|
||||
"agentDetail.configure.rightPanel.modeLabel": "에이전트 구성 모드",
|
||||
"agentDetail.configure.rightPanel.preview": "미리보기",
|
||||
"agentDetail.configure.skills.add": "스킬 추가",
|
||||
"agentDetail.configure.skills.detail.contentRegion": "스킬 상세 내용",
|
||||
"agentDetail.configure.skills.detail.fileCount": "파일 {{count}}개",
|
||||
|
||||
@ -74,6 +74,9 @@
|
||||
"agentDetail.configure.advancedSettings.envEditor.valuePlaceholder": "Value",
|
||||
"agentDetail.configure.advancedSettings.label": "Geavanceerde instellingen",
|
||||
"agentDetail.configure.advancedSettings.toggle": "Geavanceerde instellingen in/uit",
|
||||
"agentDetail.configure.build.empty.description": "Beschrijf wat je wilt en het formulier links wordt gaandeweg ingevuld.",
|
||||
"agentDetail.configure.build.empty.title": "Bouw je agent via chat",
|
||||
"agentDetail.configure.build.inputPlaceholder": "Beschrijf wat je agent moet doen",
|
||||
"agentDetail.configure.chatFeatures.description": "Geef vorm aan de chatervaring voor eindgebruikers in je webapp en chatoppervlakken.",
|
||||
"agentDetail.configure.chatFeatures.title": "Chatfuncties",
|
||||
"agentDetail.configure.files.add": "Bestand toevoegen",
|
||||
@ -131,9 +134,11 @@
|
||||
"agentDetail.configure.orchestrate": "Orkestreren",
|
||||
"agentDetail.configure.preview.chatFeatures": "Chatfuncties",
|
||||
"agentDetail.configure.preview.empty.defaultAgentName": "Agent",
|
||||
"agentDetail.configure.preview.empty.description": "Stuur een bericht om het huidige concept te testen.",
|
||||
"agentDetail.configure.preview.empty.description": "Voer de agent uit als een afgeronde chat, precies zoals mensen die na publicatie ervaren.",
|
||||
"agentDetail.configure.preview.empty.noInstructionsDescription": "Nog geen instructies, dus antwoorden komen van het kale model.",
|
||||
"agentDetail.configure.preview.empty.title": "Voorbeeld van {{name}}",
|
||||
"agentDetail.configure.preview.endUserAuth": "Authenticatie eindgebruiker",
|
||||
"agentDetail.configure.preview.inputPlaceholder": "Bericht sturen naar {{name}}",
|
||||
"agentDetail.configure.preview.restart": "Voorbeeld opnieuw starten",
|
||||
"agentDetail.configure.preview.title": "Voorbeeld",
|
||||
"agentDetail.configure.prompt.copied": "Prompt gekopieerd",
|
||||
@ -167,6 +172,9 @@
|
||||
"agentDetail.configure.publishImpact.title": "{{action}} naar {{name}}",
|
||||
"agentDetail.configure.publishImpact.workflowCount_one": "{{count}} workflow",
|
||||
"agentDetail.configure.publishImpact.workflowCount_other": "{{count}} workflows",
|
||||
"agentDetail.configure.rightPanel.build": "Bouwen",
|
||||
"agentDetail.configure.rightPanel.modeLabel": "Agentconfiguratiemodus",
|
||||
"agentDetail.configure.rightPanel.preview": "Voorbeeld",
|
||||
"agentDetail.configure.skills.add": "Skill toevoegen",
|
||||
"agentDetail.configure.skills.detail.contentRegion": "Skill-detailinhoud",
|
||||
"agentDetail.configure.skills.detail.fileCount": "{{count}} BESTANDEN",
|
||||
|
||||
@ -74,6 +74,9 @@
|
||||
"agentDetail.configure.advancedSettings.envEditor.valuePlaceholder": "Value",
|
||||
"agentDetail.configure.advancedSettings.label": "Ustawienia zaawansowane",
|
||||
"agentDetail.configure.advancedSettings.toggle": "Przełącz ustawienia zaawansowane",
|
||||
"agentDetail.configure.build.empty.description": "Opisz, czego chcesz, a formularz po lewej będzie wypełniany w trakcie rozmowy.",
|
||||
"agentDetail.configure.build.empty.title": "Buduj agenta przez czat",
|
||||
"agentDetail.configure.build.inputPlaceholder": "Opisz, co agent ma robić",
|
||||
"agentDetail.configure.chatFeatures.description": "Ukształtuj doświadczenie czatu użytkownika końcowego w aplikacji webowej i powierzchniach czatu.",
|
||||
"agentDetail.configure.chatFeatures.title": "Funkcje czatu",
|
||||
"agentDetail.configure.files.add": "Dodaj plik",
|
||||
@ -131,9 +134,11 @@
|
||||
"agentDetail.configure.orchestrate": "Orkiestracja",
|
||||
"agentDetail.configure.preview.chatFeatures": "Funkcje czatu",
|
||||
"agentDetail.configure.preview.empty.defaultAgentName": "Agent",
|
||||
"agentDetail.configure.preview.empty.description": "Wyślij wiadomość, aby przetestować bieżącą wersję roboczą.",
|
||||
"agentDetail.configure.preview.empty.description": "Uruchom agenta jako gotowy czat, dokładnie tak, jak zobaczą go użytkownicy po publikacji.",
|
||||
"agentDetail.configure.preview.empty.noInstructionsDescription": "Brak instrukcji, więc odpowiedzi pochodzą z podstawowego modelu.",
|
||||
"agentDetail.configure.preview.empty.title": "Podgląd {{name}}",
|
||||
"agentDetail.configure.preview.endUserAuth": "Uwierzytelnianie użytkownika końcowego",
|
||||
"agentDetail.configure.preview.inputPlaceholder": "Wyślij wiadomość do {{name}}",
|
||||
"agentDetail.configure.preview.restart": "Uruchom podgląd ponownie",
|
||||
"agentDetail.configure.preview.title": "Podgląd",
|
||||
"agentDetail.configure.prompt.copied": "Prompt skopiowany",
|
||||
@ -167,6 +172,9 @@
|
||||
"agentDetail.configure.publishImpact.title": "{{action}} do {{name}}",
|
||||
"agentDetail.configure.publishImpact.workflowCount_one": "{{count}} workflow",
|
||||
"agentDetail.configure.publishImpact.workflowCount_other": "{{count}} workflow",
|
||||
"agentDetail.configure.rightPanel.build": "Buduj",
|
||||
"agentDetail.configure.rightPanel.modeLabel": "Tryb konfiguracji agenta",
|
||||
"agentDetail.configure.rightPanel.preview": "Podgląd",
|
||||
"agentDetail.configure.skills.add": "Dodaj umiejętność",
|
||||
"agentDetail.configure.skills.detail.contentRegion": "Zawartość szczegółów umiejętności",
|
||||
"agentDetail.configure.skills.detail.fileCount": "{{count}} PLIKÓW",
|
||||
|
||||
@ -74,6 +74,9 @@
|
||||
"agentDetail.configure.advancedSettings.envEditor.valuePlaceholder": "Value",
|
||||
"agentDetail.configure.advancedSettings.label": "Configurações avançadas",
|
||||
"agentDetail.configure.advancedSettings.toggle": "Alternar configurações avançadas",
|
||||
"agentDetail.configure.build.empty.description": "Descreva o que você quer e o formulário à esquerda será preenchido conforme a conversa avança.",
|
||||
"agentDetail.configure.build.empty.title": "Crie seu agente conversando",
|
||||
"agentDetail.configure.build.inputPlaceholder": "Descreva o que seu agente deve fazer",
|
||||
"agentDetail.configure.chatFeatures.description": "Modele a experiência de chat do usuário final no seu webapp e superfícies de chat.",
|
||||
"agentDetail.configure.chatFeatures.title": "Recursos de chat",
|
||||
"agentDetail.configure.files.add": "Adicionar arquivo",
|
||||
@ -131,9 +134,11 @@
|
||||
"agentDetail.configure.orchestrate": "Orquestrar",
|
||||
"agentDetail.configure.preview.chatFeatures": "Recursos de chat",
|
||||
"agentDetail.configure.preview.empty.defaultAgentName": "Agente",
|
||||
"agentDetail.configure.preview.empty.description": "Envie uma mensagem para testar o rascunho atual.",
|
||||
"agentDetail.configure.preview.empty.description": "Execute o agente como um chat finalizado, exatamente como as pessoas verão após a publicação.",
|
||||
"agentDetail.configure.preview.empty.noInstructionsDescription": "Ainda não há instruções, então as respostas virão do modelo puro.",
|
||||
"agentDetail.configure.preview.empty.title": "Pré-visualizar {{name}}",
|
||||
"agentDetail.configure.preview.endUserAuth": "Autenticação do usuário final",
|
||||
"agentDetail.configure.preview.inputPlaceholder": "Enviar mensagem para {{name}}",
|
||||
"agentDetail.configure.preview.restart": "Reiniciar pré-visualização",
|
||||
"agentDetail.configure.preview.title": "Pré-visualização",
|
||||
"agentDetail.configure.prompt.copied": "Prompt copiado",
|
||||
@ -167,6 +172,9 @@
|
||||
"agentDetail.configure.publishImpact.title": "{{action}} em {{name}}",
|
||||
"agentDetail.configure.publishImpact.workflowCount_one": "{{count}} workflow",
|
||||
"agentDetail.configure.publishImpact.workflowCount_other": "{{count}} workflows",
|
||||
"agentDetail.configure.rightPanel.build": "Criar",
|
||||
"agentDetail.configure.rightPanel.modeLabel": "Modo de configuração do agente",
|
||||
"agentDetail.configure.rightPanel.preview": "Pré-visualização",
|
||||
"agentDetail.configure.skills.add": "Adicionar habilidade",
|
||||
"agentDetail.configure.skills.detail.contentRegion": "Conteúdo dos detalhes da habilidade",
|
||||
"agentDetail.configure.skills.detail.fileCount": "{{count}} ARQUIVOS",
|
||||
|
||||
@ -74,6 +74,9 @@
|
||||
"agentDetail.configure.advancedSettings.envEditor.valuePlaceholder": "Value",
|
||||
"agentDetail.configure.advancedSettings.label": "Setări avansate",
|
||||
"agentDetail.configure.advancedSettings.toggle": "Comută setările avansate",
|
||||
"agentDetail.configure.build.empty.description": "Descrie ce dorești, iar formularul din stânga se completează pe măsură ce avansezi.",
|
||||
"agentDetail.configure.build.empty.title": "Construiește agentul prin chat",
|
||||
"agentDetail.configure.build.inputPlaceholder": "Descrie ce ar trebui să facă agentul tău",
|
||||
"agentDetail.configure.chatFeatures.description": "Modelează experiența de chat a utilizatorului final pe webapp-ul tău și pe suprafețele de chat.",
|
||||
"agentDetail.configure.chatFeatures.title": "Funcții de chat",
|
||||
"agentDetail.configure.files.add": "Adaugă fișier",
|
||||
@ -131,9 +134,11 @@
|
||||
"agentDetail.configure.orchestrate": "Orchestrare",
|
||||
"agentDetail.configure.preview.chatFeatures": "Funcții de chat",
|
||||
"agentDetail.configure.preview.empty.defaultAgentName": "Agent",
|
||||
"agentDetail.configure.preview.empty.description": "Trimiteți un mesaj pentru a testa ciorna curentă.",
|
||||
"agentDetail.configure.preview.empty.description": "Rulează agentul ca un chat finalizat, exact cum îl vor experimenta utilizatorii după publicare.",
|
||||
"agentDetail.configure.preview.empty.noInstructionsDescription": "Nu există încă instrucțiuni, așa că răspunsurile vin de la modelul de bază.",
|
||||
"agentDetail.configure.preview.empty.title": "Previzualizează {{name}}",
|
||||
"agentDetail.configure.preview.endUserAuth": "Autentificare utilizator final",
|
||||
"agentDetail.configure.preview.inputPlaceholder": "Trimite mesaj către {{name}}",
|
||||
"agentDetail.configure.preview.restart": "Reporniți previzualizarea",
|
||||
"agentDetail.configure.preview.title": "Previzualizare",
|
||||
"agentDetail.configure.prompt.copied": "Prompt copiat",
|
||||
@ -167,6 +172,9 @@
|
||||
"agentDetail.configure.publishImpact.title": "{{action}} pentru {{name}}",
|
||||
"agentDetail.configure.publishImpact.workflowCount_one": "{{count}} workflow",
|
||||
"agentDetail.configure.publishImpact.workflowCount_other": "{{count}} workflow-uri",
|
||||
"agentDetail.configure.rightPanel.build": "Construire",
|
||||
"agentDetail.configure.rightPanel.modeLabel": "Mod de configurare agent",
|
||||
"agentDetail.configure.rightPanel.preview": "Previzualizare",
|
||||
"agentDetail.configure.skills.add": "Adaugă abilitate",
|
||||
"agentDetail.configure.skills.detail.contentRegion": "Conținutul detaliilor abilității",
|
||||
"agentDetail.configure.skills.detail.fileCount": "{{count}} FIȘIERE",
|
||||
|
||||
@ -74,6 +74,9 @@
|
||||
"agentDetail.configure.advancedSettings.envEditor.valuePlaceholder": "Value",
|
||||
"agentDetail.configure.advancedSettings.label": "Расширенные настройки",
|
||||
"agentDetail.configure.advancedSettings.toggle": "Переключить расширенные настройки",
|
||||
"agentDetail.configure.build.empty.description": "Опишите, что вам нужно, и форма слева будет заполняться по ходу диалога.",
|
||||
"agentDetail.configure.build.empty.title": "Создайте агента в чате",
|
||||
"agentDetail.configure.build.inputPlaceholder": "Опишите, что должен делать агент",
|
||||
"agentDetail.configure.chatFeatures.description": "Настройте чат-опыт конечного пользователя в вашем веб-приложении и чат-поверхностях.",
|
||||
"agentDetail.configure.chatFeatures.title": "Функции чата",
|
||||
"agentDetail.configure.files.add": "Добавить файл",
|
||||
@ -131,9 +134,11 @@
|
||||
"agentDetail.configure.orchestrate": "Оркестрация",
|
||||
"agentDetail.configure.preview.chatFeatures": "Функции чата",
|
||||
"agentDetail.configure.preview.empty.defaultAgentName": "Агент",
|
||||
"agentDetail.configure.preview.empty.description": "Отправьте сообщение, чтобы протестировать текущий черновик.",
|
||||
"agentDetail.configure.preview.empty.description": "Запустите агента как готовый чат, именно так, как его увидят пользователи после публикации.",
|
||||
"agentDetail.configure.preview.empty.noInstructionsDescription": "Инструкций пока нет, поэтому ответы приходят от базовой модели.",
|
||||
"agentDetail.configure.preview.empty.title": "Предпросмотр {{name}}",
|
||||
"agentDetail.configure.preview.endUserAuth": "Аутентификация конечного пользователя",
|
||||
"agentDetail.configure.preview.inputPlaceholder": "Написать {{name}}",
|
||||
"agentDetail.configure.preview.restart": "Перезапустить предпросмотр",
|
||||
"agentDetail.configure.preview.title": "Предпросмотр",
|
||||
"agentDetail.configure.prompt.copied": "Промпт скопирован",
|
||||
@ -167,6 +172,9 @@
|
||||
"agentDetail.configure.publishImpact.title": "{{action}} в {{name}}",
|
||||
"agentDetail.configure.publishImpact.workflowCount_one": "{{count}} рабочий процесс",
|
||||
"agentDetail.configure.publishImpact.workflowCount_other": "{{count}} рабочих процессов",
|
||||
"agentDetail.configure.rightPanel.build": "Сборка",
|
||||
"agentDetail.configure.rightPanel.modeLabel": "Режим настройки агента",
|
||||
"agentDetail.configure.rightPanel.preview": "Предпросмотр",
|
||||
"agentDetail.configure.skills.add": "Добавить навык",
|
||||
"agentDetail.configure.skills.detail.contentRegion": "Содержимое деталей навыка",
|
||||
"agentDetail.configure.skills.detail.fileCount": "{{count}} ФАЙЛОВ",
|
||||
|
||||
@ -74,6 +74,9 @@
|
||||
"agentDetail.configure.advancedSettings.envEditor.valuePlaceholder": "Value",
|
||||
"agentDetail.configure.advancedSettings.label": "Napredne nastavitve",
|
||||
"agentDetail.configure.advancedSettings.toggle": "Preklopi napredne nastavitve",
|
||||
"agentDetail.configure.build.empty.description": "Opišite, kaj želite, in obrazec na levi se bo sproti izpolnjeval.",
|
||||
"agentDetail.configure.build.empty.title": "Izdelajte agenta s klepetom",
|
||||
"agentDetail.configure.build.inputPlaceholder": "Opišite, kaj naj vaš agent počne",
|
||||
"agentDetail.configure.chatFeatures.description": "Oblikujte uporabniško izkušnjo klepeta v vaši spletni aplikaciji in klepetalnih površinah.",
|
||||
"agentDetail.configure.chatFeatures.title": "Funkcije klepeta",
|
||||
"agentDetail.configure.files.add": "Dodaj datoteko",
|
||||
@ -131,9 +134,11 @@
|
||||
"agentDetail.configure.orchestrate": "Orkestracija",
|
||||
"agentDetail.configure.preview.chatFeatures": "Funkcije klepeta",
|
||||
"agentDetail.configure.preview.empty.defaultAgentName": "Agent",
|
||||
"agentDetail.configure.preview.empty.description": "Pošljite sporočilo, da preizkusite trenutni osnutek.",
|
||||
"agentDetail.configure.preview.empty.description": "Zaženite agenta kot dokončan klepet, natanko tako, kot ga bodo uporabniki doživeli po objavi.",
|
||||
"agentDetail.configure.preview.empty.noInstructionsDescription": "Ni še navodil, zato odgovori prihajajo iz osnovnega modela.",
|
||||
"agentDetail.configure.preview.empty.title": "Predogled {{name}}",
|
||||
"agentDetail.configure.preview.endUserAuth": "Preverjanje pristnosti končnega uporabnika",
|
||||
"agentDetail.configure.preview.inputPlaceholder": "Pošlji sporočilo za {{name}}",
|
||||
"agentDetail.configure.preview.restart": "Znova zaženi predogled",
|
||||
"agentDetail.configure.preview.title": "Predogled",
|
||||
"agentDetail.configure.prompt.copied": "Poziv kopiran",
|
||||
@ -167,6 +172,9 @@
|
||||
"agentDetail.configure.publishImpact.title": "{{action}} v {{name}}",
|
||||
"agentDetail.configure.publishImpact.workflowCount_one": "{{count}} potek dela",
|
||||
"agentDetail.configure.publishImpact.workflowCount_other": "{{count}} potekov dela",
|
||||
"agentDetail.configure.rightPanel.build": "Izdelaj",
|
||||
"agentDetail.configure.rightPanel.modeLabel": "Način konfiguracije agenta",
|
||||
"agentDetail.configure.rightPanel.preview": "Predogled",
|
||||
"agentDetail.configure.skills.add": "Dodaj veščino",
|
||||
"agentDetail.configure.skills.detail.contentRegion": "Vsebina podrobnosti veščine",
|
||||
"agentDetail.configure.skills.detail.fileCount": "{{count}} DATOTEK",
|
||||
|
||||
@ -74,6 +74,9 @@
|
||||
"agentDetail.configure.advancedSettings.envEditor.valuePlaceholder": "Value",
|
||||
"agentDetail.configure.advancedSettings.label": "การตั้งค่าขั้นสูง",
|
||||
"agentDetail.configure.advancedSettings.toggle": "สลับการตั้งค่าขั้นสูง",
|
||||
"agentDetail.configure.build.empty.description": "อธิบายสิ่งที่คุณต้องการ แล้วแบบฟอร์มด้านซ้ายจะถูกกรอกไปพร้อมกับการสนทนา",
|
||||
"agentDetail.configure.build.empty.title": "สร้างเอเจนต์ของคุณด้วยการแชท",
|
||||
"agentDetail.configure.build.inputPlaceholder": "อธิบายว่าเอเจนต์ของคุณควรทำอะไร",
|
||||
"agentDetail.configure.chatFeatures.description": "กำหนดประสบการณ์การแชทของผู้ใช้ปลายทางบน Web app และหน้าจอแชท",
|
||||
"agentDetail.configure.chatFeatures.title": "ฟีเจอร์แชท",
|
||||
"agentDetail.configure.files.add": "เพิ่มไฟล์",
|
||||
@ -131,9 +134,11 @@
|
||||
"agentDetail.configure.orchestrate": "การจัดการ",
|
||||
"agentDetail.configure.preview.chatFeatures": "ฟีเจอร์แชท",
|
||||
"agentDetail.configure.preview.empty.defaultAgentName": "ตัวแทน",
|
||||
"agentDetail.configure.preview.empty.description": "ส่งข้อความเพื่อทดสอบฉบับร่างปัจจุบัน",
|
||||
"agentDetail.configure.preview.empty.description": "เรียกใช้เอเจนต์เป็นแชทที่เสร็จสมบูรณ์ เหมือนที่ผู้ใช้จะได้รับหลังเผยแพร่",
|
||||
"agentDetail.configure.preview.empty.noInstructionsDescription": "ยังไม่มีคำสั่ง ดังนั้นการตอบกลับจะมาจากโมเดลพื้นฐาน",
|
||||
"agentDetail.configure.preview.empty.title": "แสดงตัวอย่าง {{name}}",
|
||||
"agentDetail.configure.preview.endUserAuth": "การยืนยันตัวตนของผู้ใช้ปลายทาง",
|
||||
"agentDetail.configure.preview.inputPlaceholder": "ส่งข้อความถึง {{name}}",
|
||||
"agentDetail.configure.preview.restart": "เริ่มการแสดงตัวอย่างใหม่",
|
||||
"agentDetail.configure.preview.title": "แสดงตัวอย่าง",
|
||||
"agentDetail.configure.prompt.copied": "คัดลอกพรอมต์แล้ว",
|
||||
@ -167,6 +172,9 @@
|
||||
"agentDetail.configure.publishImpact.title": "{{action}}ไปยัง {{name}}",
|
||||
"agentDetail.configure.publishImpact.workflowCount_one": "เวิร์กโฟลว์ {{count}} รายการ",
|
||||
"agentDetail.configure.publishImpact.workflowCount_other": "เวิร์กโฟลว์ {{count}} รายการ",
|
||||
"agentDetail.configure.rightPanel.build": "สร้าง",
|
||||
"agentDetail.configure.rightPanel.modeLabel": "โหมดการกำหนดค่าเอเจนต์",
|
||||
"agentDetail.configure.rightPanel.preview": "แสดงตัวอย่าง",
|
||||
"agentDetail.configure.skills.add": "เพิ่มทักษะ",
|
||||
"agentDetail.configure.skills.detail.contentRegion": "เนื้อหารายละเอียดทักษะ",
|
||||
"agentDetail.configure.skills.detail.fileCount": "{{count}} ไฟล์",
|
||||
|
||||
@ -74,6 +74,9 @@
|
||||
"agentDetail.configure.advancedSettings.envEditor.valuePlaceholder": "Value",
|
||||
"agentDetail.configure.advancedSettings.label": "Gelişmiş Ayarlar",
|
||||
"agentDetail.configure.advancedSettings.toggle": "Gelişmiş ayarları değiştir",
|
||||
"agentDetail.configure.build.empty.description": "Ne istediğinizi açıklayın; soldaki form ilerledikçe doldurulur.",
|
||||
"agentDetail.configure.build.empty.title": "Aracınızı sohbet ederek oluşturun",
|
||||
"agentDetail.configure.build.inputPlaceholder": "Aracınızın ne yapması gerektiğini açıklayın",
|
||||
"agentDetail.configure.chatFeatures.description": "Web app ve sohbet yüzeylerinizde son kullanıcı sohbet deneyimini şekillendirin.",
|
||||
"agentDetail.configure.chatFeatures.title": "Sohbet Özellikleri",
|
||||
"agentDetail.configure.files.add": "Dosya ekle",
|
||||
@ -131,9 +134,11 @@
|
||||
"agentDetail.configure.orchestrate": "Koordine Et",
|
||||
"agentDetail.configure.preview.chatFeatures": "Sohbet Özellikleri",
|
||||
"agentDetail.configure.preview.empty.defaultAgentName": "Ajan",
|
||||
"agentDetail.configure.preview.empty.description": "Mevcut taslağı test etmek için bir mesaj gönderin.",
|
||||
"agentDetail.configure.preview.empty.description": "Aracıyı yayınlandıktan sonra kullanıcıların deneyimleyeceği tamamlanmış sohbet olarak çalıştırın.",
|
||||
"agentDetail.configure.preview.empty.noInstructionsDescription": "Henüz talimat yok, bu yüzden yanıtlar düz modelden geliyor.",
|
||||
"agentDetail.configure.preview.empty.title": "{{name}} önizlemesi",
|
||||
"agentDetail.configure.preview.endUserAuth": "Son kullanıcı kimlik doğrulaması",
|
||||
"agentDetail.configure.preview.inputPlaceholder": "{{name}} ile mesajlaş",
|
||||
"agentDetail.configure.preview.restart": "Önizlemeyi yeniden başlat",
|
||||
"agentDetail.configure.preview.title": "Önizleme",
|
||||
"agentDetail.configure.prompt.copied": "İstem kopyalandı",
|
||||
@ -167,6 +172,9 @@
|
||||
"agentDetail.configure.publishImpact.title": "{{name}} için {{action}}",
|
||||
"agentDetail.configure.publishImpact.workflowCount_one": "{{count}} iş akışı",
|
||||
"agentDetail.configure.publishImpact.workflowCount_other": "{{count}} iş akışı",
|
||||
"agentDetail.configure.rightPanel.build": "Oluştur",
|
||||
"agentDetail.configure.rightPanel.modeLabel": "Aracı yapılandırma modu",
|
||||
"agentDetail.configure.rightPanel.preview": "Önizleme",
|
||||
"agentDetail.configure.skills.add": "Beceri ekle",
|
||||
"agentDetail.configure.skills.detail.contentRegion": "Beceri detay içeriği",
|
||||
"agentDetail.configure.skills.detail.fileCount": "{{count}} DOSYA",
|
||||
|
||||
@ -74,6 +74,9 @@
|
||||
"agentDetail.configure.advancedSettings.envEditor.valuePlaceholder": "Value",
|
||||
"agentDetail.configure.advancedSettings.label": "Розширені налаштування",
|
||||
"agentDetail.configure.advancedSettings.toggle": "Перемкнути розширені налаштування",
|
||||
"agentDetail.configure.build.empty.description": "Опишіть, що вам потрібно, і форма ліворуч заповнюватиметься під час розмови.",
|
||||
"agentDetail.configure.build.empty.title": "Створіть агента через чат",
|
||||
"agentDetail.configure.build.inputPlaceholder": "Опишіть, що має робити ваш агент",
|
||||
"agentDetail.configure.chatFeatures.description": "Налаштуйте чат-досвід кінцевого користувача у вашому веб-застосунку та чат-поверхнях.",
|
||||
"agentDetail.configure.chatFeatures.title": "Функції чату",
|
||||
"agentDetail.configure.files.add": "Додати файл",
|
||||
@ -131,9 +134,11 @@
|
||||
"agentDetail.configure.orchestrate": "Оркестрація",
|
||||
"agentDetail.configure.preview.chatFeatures": "Функції чату",
|
||||
"agentDetail.configure.preview.empty.defaultAgentName": "Агент",
|
||||
"agentDetail.configure.preview.empty.description": "Надішліть повідомлення, щоб протестувати поточний чернетку.",
|
||||
"agentDetail.configure.preview.empty.description": "Запустіть агента як готовий чат, саме так, як його побачать користувачі після публікації.",
|
||||
"agentDetail.configure.preview.empty.noInstructionsDescription": "Інструкцій ще немає, тому відповіді надходять від базової моделі.",
|
||||
"agentDetail.configure.preview.empty.title": "Перегляд {{name}}",
|
||||
"agentDetail.configure.preview.endUserAuth": "Автентифікація кінцевого користувача",
|
||||
"agentDetail.configure.preview.inputPlaceholder": "Надіслати повідомлення {{name}}",
|
||||
"agentDetail.configure.preview.restart": "Перезапустити перегляд",
|
||||
"agentDetail.configure.preview.title": "Перегляд",
|
||||
"agentDetail.configure.prompt.copied": "Промпт скопійовано",
|
||||
@ -167,6 +172,9 @@
|
||||
"agentDetail.configure.publishImpact.title": "{{action}} до {{name}}",
|
||||
"agentDetail.configure.publishImpact.workflowCount_one": "{{count}} робочий процес",
|
||||
"agentDetail.configure.publishImpact.workflowCount_other": "{{count}} робочих процесів",
|
||||
"agentDetail.configure.rightPanel.build": "Створення",
|
||||
"agentDetail.configure.rightPanel.modeLabel": "Режим налаштування агента",
|
||||
"agentDetail.configure.rightPanel.preview": "Перегляд",
|
||||
"agentDetail.configure.skills.add": "Додати навичку",
|
||||
"agentDetail.configure.skills.detail.contentRegion": "Вміст деталей навички",
|
||||
"agentDetail.configure.skills.detail.fileCount": "{{count}} ФАЙЛІВ",
|
||||
|
||||
@ -74,6 +74,9 @@
|
||||
"agentDetail.configure.advancedSettings.envEditor.valuePlaceholder": "Value",
|
||||
"agentDetail.configure.advancedSettings.label": "Cài đặt nâng cao",
|
||||
"agentDetail.configure.advancedSettings.toggle": "Bật/tắt cài đặt nâng cao",
|
||||
"agentDetail.configure.build.empty.description": "Mô tả điều bạn muốn và biểu mẫu bên trái sẽ được điền dần khi trò chuyện.",
|
||||
"agentDetail.configure.build.empty.title": "Xây dựng tác nhân bằng trò chuyện",
|
||||
"agentDetail.configure.build.inputPlaceholder": "Mô tả tác nhân của bạn nên làm gì",
|
||||
"agentDetail.configure.chatFeatures.description": "Định hình trải nghiệm trò chuyện cho người dùng cuối trên Web app và các bề mặt trò chuyện.",
|
||||
"agentDetail.configure.chatFeatures.title": "Tính năng trò chuyện",
|
||||
"agentDetail.configure.files.add": "Thêm tệp",
|
||||
@ -131,9 +134,11 @@
|
||||
"agentDetail.configure.orchestrate": "Điều phối",
|
||||
"agentDetail.configure.preview.chatFeatures": "Tính năng trò chuyện",
|
||||
"agentDetail.configure.preview.empty.defaultAgentName": "Tác nhân",
|
||||
"agentDetail.configure.preview.empty.description": "Gửi một tin nhắn để thử nghiệm bản nháp hiện tại.",
|
||||
"agentDetail.configure.preview.empty.description": "Chạy tác nhân như một cuộc trò chuyện hoàn chỉnh, đúng như người dùng sẽ trải nghiệm sau khi xuất bản.",
|
||||
"agentDetail.configure.preview.empty.noInstructionsDescription": "Chưa có hướng dẫn, vì vậy câu trả lời đến từ mô hình thuần.",
|
||||
"agentDetail.configure.preview.empty.title": "Xem trước {{name}}",
|
||||
"agentDetail.configure.preview.endUserAuth": "Xác thực người dùng cuối",
|
||||
"agentDetail.configure.preview.inputPlaceholder": "Nhắn cho {{name}}",
|
||||
"agentDetail.configure.preview.restart": "Khởi động lại bản xem trước",
|
||||
"agentDetail.configure.preview.title": "Xem trước",
|
||||
"agentDetail.configure.prompt.copied": "Đã sao chép lời nhắc",
|
||||
@ -167,6 +172,9 @@
|
||||
"agentDetail.configure.publishImpact.title": "{{action}} đến {{name}}",
|
||||
"agentDetail.configure.publishImpact.workflowCount_one": "{{count}} quy trình làm việc",
|
||||
"agentDetail.configure.publishImpact.workflowCount_other": "{{count}} quy trình làm việc",
|
||||
"agentDetail.configure.rightPanel.build": "Xây dựng",
|
||||
"agentDetail.configure.rightPanel.modeLabel": "Chế độ cấu hình tác nhân",
|
||||
"agentDetail.configure.rightPanel.preview": "Xem trước",
|
||||
"agentDetail.configure.skills.add": "Thêm kỹ năng",
|
||||
"agentDetail.configure.skills.detail.contentRegion": "Nội dung chi tiết kỹ năng",
|
||||
"agentDetail.configure.skills.detail.fileCount": "{{count}} TỆP",
|
||||
|
||||
@ -74,6 +74,9 @@
|
||||
"agentDetail.configure.advancedSettings.envEditor.valuePlaceholder": "Value",
|
||||
"agentDetail.configure.advancedSettings.label": "高级设置",
|
||||
"agentDetail.configure.advancedSettings.toggle": "展开或收起高级设置",
|
||||
"agentDetail.configure.build.empty.description": "描述你的需求,它会随着对话填写左侧表单。",
|
||||
"agentDetail.configure.build.empty.title": "通过对话构建智能体",
|
||||
"agentDetail.configure.build.inputPlaceholder": "描述你的智能体应该做什么",
|
||||
"agentDetail.configure.chatFeatures.description": "配置 Web app 和聊天界面的终端用户聊天体验。",
|
||||
"agentDetail.configure.chatFeatures.title": "Chat 功能",
|
||||
"agentDetail.configure.files.add": "添加文件",
|
||||
@ -131,9 +134,11 @@
|
||||
"agentDetail.configure.orchestrate": "编排",
|
||||
"agentDetail.configure.preview.chatFeatures": "Chat 功能",
|
||||
"agentDetail.configure.preview.empty.defaultAgentName": "智能体",
|
||||
"agentDetail.configure.preview.empty.description": "发送一条消息来测试当前草稿。",
|
||||
"agentDetail.configure.preview.empty.description": "像已发布后用户体验到的那样运行智能体。",
|
||||
"agentDetail.configure.preview.empty.noInstructionsDescription": "尚未设置指令,回复将来自基础模型。",
|
||||
"agentDetail.configure.preview.empty.title": "预览 {{name}}",
|
||||
"agentDetail.configure.preview.endUserAuth": "终端用户认证",
|
||||
"agentDetail.configure.preview.inputPlaceholder": "向 {{name}} 发送消息",
|
||||
"agentDetail.configure.preview.restart": "重新开始预览",
|
||||
"agentDetail.configure.preview.title": "预览",
|
||||
"agentDetail.configure.prompt.copied": "提示词已复制",
|
||||
@ -167,6 +172,9 @@
|
||||
"agentDetail.configure.publishImpact.title": "{{action}}到 {{name}}",
|
||||
"agentDetail.configure.publishImpact.workflowCount_one": "{{count}} 个工作流",
|
||||
"agentDetail.configure.publishImpact.workflowCount_other": "{{count}} 个工作流",
|
||||
"agentDetail.configure.rightPanel.build": "构建",
|
||||
"agentDetail.configure.rightPanel.modeLabel": "智能体配置模式",
|
||||
"agentDetail.configure.rightPanel.preview": "预览",
|
||||
"agentDetail.configure.skills.add": "添加技能",
|
||||
"agentDetail.configure.skills.detail.contentRegion": "技能详情内容",
|
||||
"agentDetail.configure.skills.detail.fileCount": "{{count}} 个文件",
|
||||
|
||||
@ -74,6 +74,9 @@
|
||||
"agentDetail.configure.advancedSettings.envEditor.valuePlaceholder": "Value",
|
||||
"agentDetail.configure.advancedSettings.label": "進階設定",
|
||||
"agentDetail.configure.advancedSettings.toggle": "展開或收合進階設定",
|
||||
"agentDetail.configure.build.empty.description": "描述你的需求,它會隨著對話填寫左側表單。",
|
||||
"agentDetail.configure.build.empty.title": "透過對話建置智能體",
|
||||
"agentDetail.configure.build.inputPlaceholder": "描述你的智能體應該做什麼",
|
||||
"agentDetail.configure.chatFeatures.description": "配置 Web app 和聊天介面的終端使用者聊天體驗。",
|
||||
"agentDetail.configure.chatFeatures.title": "Chat 功能",
|
||||
"agentDetail.configure.files.add": "新增檔案",
|
||||
@ -131,9 +134,11 @@
|
||||
"agentDetail.configure.orchestrate": "編排",
|
||||
"agentDetail.configure.preview.chatFeatures": "Chat 功能",
|
||||
"agentDetail.configure.preview.empty.defaultAgentName": "智能體",
|
||||
"agentDetail.configure.preview.empty.description": "傳送一則訊息以測試目前草稿。",
|
||||
"agentDetail.configure.preview.empty.description": "像發布後使用者體驗到的那樣執行智能體。",
|
||||
"agentDetail.configure.preview.empty.noInstructionsDescription": "尚未設定指令,回覆將來自基礎模型。",
|
||||
"agentDetail.configure.preview.empty.title": "預覽 {{name}}",
|
||||
"agentDetail.configure.preview.endUserAuth": "終端使用者驗證",
|
||||
"agentDetail.configure.preview.inputPlaceholder": "傳訊息給 {{name}}",
|
||||
"agentDetail.configure.preview.restart": "重新開始預覽",
|
||||
"agentDetail.configure.preview.title": "預覽",
|
||||
"agentDetail.configure.prompt.copied": "提示詞已複製",
|
||||
@ -167,6 +172,9 @@
|
||||
"agentDetail.configure.publishImpact.title": "{{action}}到 {{name}}",
|
||||
"agentDetail.configure.publishImpact.workflowCount_one": "{{count}} 個工作流程",
|
||||
"agentDetail.configure.publishImpact.workflowCount_other": "{{count}} 個工作流程",
|
||||
"agentDetail.configure.rightPanel.build": "建置",
|
||||
"agentDetail.configure.rightPanel.modeLabel": "智能體配置模式",
|
||||
"agentDetail.configure.rightPanel.preview": "預覽",
|
||||
"agentDetail.configure.skills.add": "新增技能",
|
||||
"agentDetail.configure.skills.detail.contentRegion": "技能詳情內容",
|
||||
"agentDetail.configure.skills.detail.fileCount": "{{count}} 個檔案",
|
||||
|
||||
Loading…
Reference in New Issue
Block a user