|
|
@@ -76,18 +76,14 @@ interface WorkflowConfig {
|
|
76
|
76
|
apiUrl: string;
|
|
77
|
77
|
}
|
|
78
|
78
|
|
|
79
|
|
-/**
|
|
80
|
|
- * Get Workflow configuration from environment variables
|
|
81
|
|
- */
|
|
82
|
|
-const getWorkflowConfig = (): WorkflowConfig => {
|
|
83
|
|
- return {
|
|
84
|
|
- apiUrl: import.meta.env.VITE_WORKFLOW_PROXY_URL,
|
|
85
|
|
- };
|
|
|
79
|
+const WORKFLOW_TIMEOUT_MS = 150_000;
|
|
|
80
|
+const workflowConfig: WorkflowConfig = {
|
|
|
81
|
+ apiUrl: import.meta.env.VITE_WORKFLOW_PROXY_URL,
|
|
86
|
82
|
};
|
|
|
83
|
+const configuredBaseUrl = import.meta.env.VITE_API_BASE_URL;
|
|
87
|
84
|
|
|
88
|
85
|
/** Normalize workflow-generated export URLs to the configured backend origin. */
|
|
89
|
86
|
const normalizeExportDownloadUrl = (downloadUrl: string): string => {
|
|
90
|
|
- const configuredBaseUrl = import.meta.env.VITE_API_BASE_URL;
|
|
91
|
87
|
if (!configuredBaseUrl || !downloadUrl) return downloadUrl;
|
|
92
|
88
|
|
|
93
|
89
|
try {
|
|
|
@@ -147,9 +143,7 @@ export const triggerDocumentWorkflow = async (
|
|
147
|
143
|
sessionId: string
|
|
148
|
144
|
): Promise<{ content: string; exportRecord?: ExportRecordInfo }> => {
|
|
149
|
145
|
try {
|
|
150
|
|
- const config = getWorkflowConfig();
|
|
151
|
|
-
|
|
152
|
|
- if (!config.apiUrl) {
|
|
|
146
|
+ if (!workflowConfig.apiUrl) {
|
|
153
|
147
|
return { content: '工作流未配置,无法生成文档。请检查前端环境配置。' };
|
|
154
|
148
|
}
|
|
155
|
149
|
|
|
|
@@ -164,7 +158,7 @@ export const triggerDocumentWorkflow = async (
|
|
164
|
158
|
// 1. chatId: 带时间戳的唯一ID,确保每次请求都被视为新请求
|
|
165
|
159
|
// 2. sessionId: 原始会话ID,传递给工作流,工作流会将其传递给后端 /api/v1/export/records
|
|
166
|
160
|
// 3. 后端在创建文档时会使用这个sessionId,确保同一会话的多个文档共用相同的session_id
|
|
167
|
|
- const response = await fetchWithTimeout(config.apiUrl, {
|
|
|
161
|
+ const response = await fetchWithTimeout(workflowConfig.apiUrl, {
|
|
168
|
162
|
method: 'POST',
|
|
169
|
163
|
headers: {
|
|
170
|
164
|
'Content-Type': 'application/json',
|
|
|
@@ -182,7 +176,7 @@ export const triggerDocumentWorkflow = async (
|
|
182
|
176
|
},
|
|
183
|
177
|
],
|
|
184
|
178
|
} as WorkflowRequest),
|
|
185
|
|
- });
|
|
|
179
|
+ }, WORKFLOW_TIMEOUT_MS);
|
|
186
|
180
|
|
|
187
|
181
|
if (!response.ok) {
|
|
188
|
182
|
const errorText = await response.text();
|