feat: add document translation via DIFY AI API

Implement document translation feature using DIFY AI API with batch processing:

Backend:
- Add DIFY client with batch translation support (5000 chars, 20 items per batch)
- Add translation service with element extraction and result building
- Add translation router with start/status/result/list/delete endpoints
- Add translation schemas (TranslationRequest, TranslationStatus, etc.)

Frontend:
- Enable translation UI in TaskDetailPage
- Add translation API methods to apiV2.ts
- Add translation types

Features:
- Batch translation with numbered markers [1], [2], [3]...
- Support for text, title, header, footer, paragraph, footnote, table cells
- Translation result JSON with statistics (tokens, latency, batch_count)
- Background task processing with progress tracking

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
egg
2025-12-02 11:57:02 +08:00
parent 87dc97d951
commit 8d9b69ba93
18 changed files with 2970 additions and 26 deletions

View File

@@ -13,6 +13,16 @@ from app.schemas.task import (
TaskStatsResponse,
TaskStatusEnum,
)
from app.schemas.translation import (
TranslationStatusEnum,
TranslationRequest,
TranslationProgress,
TranslationStatusResponse,
TranslationStartResponse,
TranslationStatistics,
TranslationResultResponse,
TranslationListResponse,
)
__all__ = [
# Auth
@@ -27,4 +37,13 @@ __all__ = [
"TaskListResponse",
"TaskStatsResponse",
"TaskStatusEnum",
# Translation
"TranslationStatusEnum",
"TranslationRequest",
"TranslationProgress",
"TranslationStatusResponse",
"TranslationStartResponse",
"TranslationStatistics",
"TranslationResultResponse",
"TranslationListResponse",
]