Integrated AI translation
This commit is contained in:
@@ -421,6 +421,43 @@ func (h *TenderHandler) TriggerAISummarize(c echo.Context) error {
|
||||
return response.Success(c, result, "AI summarization completed successfully")
|
||||
}
|
||||
|
||||
// TriggerAITranslate triggers on-demand AI translation for a tender
|
||||
// @Summary Trigger AI translation
|
||||
// @Description Trigger on-demand AI translation for tender title and description and store it in MongoDB
|
||||
// @Tags Admin-Tenders
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Param id path string true "Tender ID"
|
||||
// @Param request body AITranslateRequest false "Translation language request (defaults to en)"
|
||||
// @Success 200 {object} response.APIResponse{data=AITranslateResponse}
|
||||
// @Failure 400 {object} response.APIResponse
|
||||
// @Failure 500 {object} response.APIResponse
|
||||
// @Router /admin/v1/tenders/{id}/ai-translate [post]
|
||||
// @Security BearerAuth
|
||||
func (h *TenderHandler) TriggerAITranslate(c echo.Context) error {
|
||||
id := c.Param("id")
|
||||
if id == "" {
|
||||
return response.BadRequest(c, "Tender ID is required", "ID parameter cannot be empty")
|
||||
}
|
||||
|
||||
req := AITranslateRequest{Language: "en"}
|
||||
_ = c.Bind(&req)
|
||||
if req.Language == "" {
|
||||
req.Language = "en"
|
||||
}
|
||||
|
||||
if _, err := govalidator.ValidateStruct(req); err != nil {
|
||||
return response.ValidationError(c, "Validation failed", err.Error())
|
||||
}
|
||||
|
||||
result, err := h.service.TriggerAITranslate(c.Request().Context(), id, req.Language)
|
||||
if err != nil {
|
||||
return response.InternalServerError(c, err.Error())
|
||||
}
|
||||
|
||||
return response.Success(c, result, "AI translation completed successfully")
|
||||
}
|
||||
|
||||
// GetPublicAISummary retrieves the AI-generated overall summary for a tender (public endpoint)
|
||||
// @Summary Get AI-generated tender summary (public)
|
||||
// @Description Retrieve the AI-generated overall summary for a tender from the AI pipeline storage
|
||||
@@ -451,6 +488,43 @@ func (h *TenderHandler) GetPublicAISummary(c echo.Context) error {
|
||||
return response.Success(c, summary, "AI summary retrieved successfully")
|
||||
}
|
||||
|
||||
// TriggerPublicAITranslate triggers on-demand AI translation for a tender (public endpoint)
|
||||
// @Summary Trigger AI translation (public)
|
||||
// @Description Trigger on-demand AI translation for tender title and description and store it in MongoDB
|
||||
// @Tags Tenders
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Param id path string true "Tender ID"
|
||||
// @Param request body AITranslateRequest false "Translation language request (defaults to en)"
|
||||
// @Success 200 {object} response.APIResponse{data=AITranslateResponse}
|
||||
// @Failure 400 {object} response.APIResponse
|
||||
// @Failure 500 {object} response.APIResponse
|
||||
// @Router /api/v1/tenders/{id}/ai-translate [post]
|
||||
// @Security BearerAuth
|
||||
func (h *TenderHandler) TriggerPublicAITranslate(c echo.Context) error {
|
||||
id := c.Param("id")
|
||||
if id == "" {
|
||||
return response.BadRequest(c, "Tender ID is required", "ID parameter cannot be empty")
|
||||
}
|
||||
|
||||
req := AITranslateRequest{Language: "en"}
|
||||
_ = c.Bind(&req)
|
||||
if req.Language == "" {
|
||||
req.Language = "en"
|
||||
}
|
||||
|
||||
if _, err := govalidator.ValidateStruct(req); err != nil {
|
||||
return response.ValidationError(c, "Validation failed", err.Error())
|
||||
}
|
||||
|
||||
result, err := h.service.TriggerAITranslate(c.Request().Context(), id, req.Language)
|
||||
if err != nil {
|
||||
return response.InternalServerError(c, err.Error())
|
||||
}
|
||||
|
||||
return response.Success(c, result, "AI translation completed successfully")
|
||||
}
|
||||
|
||||
// GetAllAISummaries retrieves all AI-generated summaries from storage
|
||||
// @Summary Get all AI-generated tender summaries
|
||||
// @Description Retrieve all AI-generated summaries from the AI pipeline storage, including pending and completed ones
|
||||
|
||||
Reference in New Issue
Block a user