import { useState } from 'react'
import { generateTopicTableQueries, getTopicTableQueryPrompt } from '../../api/workbench.js'
const EXAMPLE = {
topicBuildId: '1229',
topicId: '1392',
}
function PromptModal({ payload, loading, error, onClose }) {
return (
event.stopPropagation()}>
{loading && 正在读取 Prompt…
}
{error && {error}
}
{payload && {payload.system_prompt}}
)
}
function GenerationRows({ result }) {
const rows = result.field_mappings || []
return (
选题表里用到的信息
大模型判断什么
生成哪些具体搜索词
{rows.map((row) => (
{row.field_label}
{row.field_path}
{row.field_value}
{row.queries.map((query, index) => (
))}
))}
)
}
export default function TopicTableQueryPanel() {
const [topicBuildId, setTopicBuildId] = useState(EXAMPLE.topicBuildId)
const [topicId, setTopicId] = useState(EXAMPLE.topicId)
const [result, setResult] = useState(null)
const [loading, setLoading] = useState(false)
const [error, setError] = useState('')
const [promptOpen, setPromptOpen] = useState(false)
const [prompt, setPrompt] = useState(null)
const [promptLoading, setPromptLoading] = useState(false)
const [promptError, setPromptError] = useState('')
const showPrompt = async () => {
setPromptOpen(true)
if (prompt || promptLoading) return
setPromptLoading(true)
setPromptError('')
try {
setPrompt(await getTopicTableQueryPrompt())
} catch (e) {
setPromptError(e.message || 'Prompt 读取失败')
} finally {
setPromptLoading(false)
}
}
const generate = async (event) => {
event.preventDefault()
setLoading(true)
setError('')
try {
const payload = {
topic_build_id: Number(topicBuildId),
topic_id: topicId ? Number(topicId) : null,
max_queries: 18,
}
setResult(await generateTopicTableQueries(payload))
} catch (e) {
setError(e.message || '搜索词生成失败')
} finally {
setLoading(false)
}
}
return (
{error &&
{error}
}
{!result && !loading && (
实质字段
topics[id=1392].composition_items[id=25686].element_name
彩虹光晕
大模型判断什么
这个画面里的彩虹光晕,怎样才能稳定拍出来?
生成的搜索词
- 逆光人像怎么拍出自然彩虹光晕
- 低角度拍摄时太阳和镜头怎么配合
)}
{loading &&
正在读取真实字段,并逐字段生成搜索词…
}
{result &&
}
{promptOpen && (
setPromptOpen(false)}
/>
)}
)
}