处理文生和图生提示词

This commit is contained in:
Xin Wang 2025-07-01 18:12:59 +08:00
parent 2b4208fb41
commit 6d94867eab
3 changed files with 53 additions and 23 deletions

View File

@ -3,7 +3,7 @@ import { BASE_URL } from './constants'
// 创建 axios 实例
const request: AxiosInstance = axios.create({
baseURL: BASE_URL, // 设置基础URL
timeout: 10000, // 请求超时时间
timeout: 300000, // 请求超时时间
headers: {
'Content-Type': 'application/json',
},

View File

@ -37,7 +37,7 @@ export type ConvertScenePromptResponse = ApiResponse<ConvertScenePromptData>;
export const convertScenePrompt = async (
request: ConvertScenePromptRequest
): Promise<ConvertScenePromptResponse> => {
return post<ConvertScenePromptResponse>('/video_flow/convert-scene-prompt', request);
return post<ConvertScenePromptResponse>('/video_flow/convert-scene-prompts', request);
};
/**

View File

@ -20,6 +20,7 @@ import { ProjectTypeEnum, ModeEnum, ResolutionEnum } from "@/api/enums";
import { createScriptProject, CreateScriptProjectRequest } from "@/api/script_project";
import { createScriptEpisode, CreateScriptEpisodeRequest } from "@/api/script_episode";
import { getUploadTokenWithDomain, uploadToQiniu } from "@/api/common";
import { convertScriptToScene, convertVideoToScene } from "@/api/video_flow";
const JoyrideNoSSR = dynamic(() => import('react-joyride'), {
ssr: false,
@ -104,38 +105,67 @@ export function CreateToVideo2() {
const handleCreateVideo = async () => {
if (videoUrl || inputText) {
try {
// 确定项目类型
const projectType = activeTab === 'script' ? ProjectTypeEnum.SCRIPT_TO_VIDEO : ProjectTypeEnum.VIDEO_TO_VIDEO;
let convertResponse;
// 构建项目数据并调用API
const projectData: CreateScriptProjectRequest = {
project_type: projectType,
mode: selectedMode,
resolution: selectedResolution
};
// 根据选中的选项卡调用相应的API
if (activeTab === 'script') {
// 剧本模式调用convertScriptToScene (第43-56行)
if (!inputText.trim()) {
alert('请输入剧本内容');
return;
}
convertResponse = await convertScriptToScene(inputText);
} else {
// 视频模式调用convertVideoToScene (第56-69行)
if (!videoUrl) {
alert('请先上传视频');
return;
}
convertResponse = await convertVideoToScene(videoUrl);
}
const projectResponse = await createScriptProject(projectData);
if (projectResponse.code === 0 && projectResponse.data.id) {
const projectId = projectResponse.data.id;
// 检查转换结果
if (convertResponse.code === 0) {
console.log('转换成功:', convertResponse.data);
console.log('任务ID:', convertResponse.data.task_id);
console.log('预估时间:', convertResponse.data.estimated_time, '秒');
// 创建剧集数据
const episodeData: CreateScriptEpisodeRequest = {
// 确定项目类型
const projectType = activeTab === 'script' ? ProjectTypeEnum.SCRIPT_TO_VIDEO : ProjectTypeEnum.VIDEO_TO_VIDEO;
// 构建项目数据并调用API
const projectData: CreateScriptProjectRequest = {
project_type: projectType,
mode: selectedMode,
resolution: selectedResolution
};
// 调用创建剧集API
const episodeResponse = await createScriptEpisode(episodeData);
const projectResponse = await createScriptProject(projectData);
if (episodeResponse.code === 0) {
// 成功创建后跳转到work-flow页面
router.push('/create/work-flow');
if (projectResponse.code === 0 && projectResponse.data.id) {
const projectId = projectResponse.data.id;
// 创建剧集数据
const episodeData: CreateScriptEpisodeRequest = {
};
// 调用创建剧集API
const episodeResponse = await createScriptEpisode(episodeData);
if (episodeResponse.code === 0) {
// 成功创建后跳转到work-flow页面
router.push('/create/work-flow');
} else {
alert(`创建剧集失败: ${episodeResponse.msg}`);
}
} else {
alert(`创建剧集失败: ${episodeResponse.msg}`);
alert(`创建项目失败: ${projectResponse.msg}`);
}
} else {
alert(`创建项目失败: ${projectResponse.msg}`);
alert(`转换失败: ${convertResponse.msg}`);
}
} catch (error) {
console.error('创建过程出错:', error);
alert("创建项目时发生错误,请稍后重试");
}
}