AI 번역: '번역 가능한 카테고리'는 어디에 있고, 번역 비용은 어떻게 계산되나요?

팀 여러분께,

AI 번역 기능의 현재 동작 방식과 최근 버전에서 설정 변경이나 마이그레이션이 있었는지 이해하려고 합니다.

AI 번역 기능을 처음 설정했을 때, 설정 페이지에는 다음과 같은 설명이 있는 “번역 대상 카테고리”(Translatable categories) 라는 필드가 있었습니다:

선택된 카테고리의 콘텐츠만 번역됩니다. 하위 카테고리는 별도로 추가해야 합니다.

저희는 해당 설정을 사용하여 제한된 번역 범위를 정의했습니다.

하지만 현재 설정을 검토해 보니, 대신 “제외된 카테고리”(Excluded categories) 라는 필드가 보입니다.

이로 인해 몇 가지 질문이 생겼습니다:

설정 변경

AI 번역 기능이 “번역 대상 카테고리” 모델에서 “제외된 카테고리” 모델로 변경되었나요?

그렇다면:

  • 자동 마이그레이션이 수행되었나요?
  • 기존에 선택된 카테고리들은 어떻게 변환되었나요?
  • 현재 설정이 자동으로 마이그레이션되었는지 수동으로 수정되었는지를 확인할 방법이 있나요?

번역 범위

번역 진행 상황 페이지에는 현재 다음과 같은 메시지가 표시됩니다:

백필(Backfill) 설정은 2018년 3월 이후의 모든 게시물을 번역하도록 구성되었습니다.

이 메시지를 어떻게 해석해야 하나요?

다음 중 무엇을 의미하나요?

  • 포럼의 모든 게시물,
  • 제외된 카테고리를 제외한 모든 게시물,
  • 또는 다른 번역 범위?

비용 계산

AI 번역 기능의 비용이 어떻게 발생되는지도 더 잘 이해하고 싶습니다.

구체적으로:

  • 백필 과정에서 게시물이 번역될 때, 번역된 콘텐츠가 저장되어 재사용되나요?
  • 아니면 사용자가 번역된 콘텐츠에 액세스할 때마다 새로운 번역 요청이 생성되나요?
  • 비용에 기여하는 요소는 무엇인가요:
    • 백필 작업,
    • 새로 생성된 콘텐츠,
    • 번역된 콘텐츠를 보는 사용자,
    • 또는 이 중 일부의 조합?

리포트

다음 사항을 식별할 방법이 있나요:

  • 현재 번역되고 있는 카테고리가 무엇인지,
  • 카테고리별 번역된 게시물의 수가 얼마인지,
  • 그리고 어떤 카테고리가 가장 큰 번역 비용을 발생시키고 있는지?

과거의 “번역 대상 카테고리” 설정과 현재의 “제외된 카테고리” 설정을 모두 보여주는 스크린샷을 보유하고 있으며, 필요 시 제공할 수 있습니다.

도움 주셔서 감사합니다.

네, 마이그레이션이 수행되었습니다.

마이그레이션에서는 포럼의 모든 카테고리 목록을 가져와 번역 가능한 카테고리 설정에 지정된 카테고리를 제거했습니다. 남은 카테고리들은 새로운 제외 카테고리 설정에 저장되어 기존 번역 동작이 유지되었습니다.

스태프 액션 로그에서 해당 설정에 대한 수동 변경 사항을 확인하실 수 있습니다. 특정 설정에 대한 변경 사항으로 필터링할 수 있습니다(URL은 https://forum.example.com/admin/logs/staff_action_logs?filters=%7B%22subject%22%3A%22ai_translation_excluded_categories%22%2C%22action_name%22%3A%22change_site_setting%22%7D와 유사합니다).

포스트 번역은 데이터베이스에 저장되므로, 동일한 콘텐츠는 한 번만 번역됩니다.

포럼의 번역에 대한 더 많은 데이터를 가져오려면 데이터 탐색기(data explorer)를 사용할 수 있습니다.
다음 쿼리는 AI 번역에서 제외되도록 설정된 카테고리를 제외한 포럼의 모든 카테고리를 반환합니다:

SELECT c.id as category_id, c.name
FROM categories c
WHERE c.id NOT IN (
  SELECT unnest(string_to_array(value, '|')::integer[])
  FROM site_settings
  WHERE name = 'ai_translation_excluded_categories'
)
ORDER BY c.id

다른 질문을 위해 데이터 탐색기를 사용할 수도 있습니다

혹시 이렇게 생각하신 건가요?

SELECT
    c.id AS category_id,
    COUNT(DISTINCT pl.post_id) AS translated_posts,
    COUNT(DISTINCT pl.locale) AS languages,
    COUNT(*) AS total_translations
FROM post_localizations pl
JOIN posts p ON p.id = pl.post_id
JOIN topics t ON t.id = p.topic_id
JOIN categories c ON c.id = t.category_id
GROUP BY c.id, c.name
ORDER BY total_translations DESC