클로드4 출시, Hugo 태그 및 하이퍼링크 번역 도우미 개발 시도

이 사이트는 hugo 기반이지만, 글 제목을 항상 중국어로 사용했기 때문에 생성되는 기사 링크가 친절하지 않습니다. 쉽게 말해서, 공유할 때 보기 좋지 않고, 중국어 문자가 링크에서 %E4%BD%A0%E5%A5%BD 와 같은 형태로 변환되기 때문입니다. 슬러그를 설정하여 해결할 수 있지만, 매번 수동으로 설정해야 해서 번거롭습니다.

그래서 오늘 클로드4를 활용하여 중국어 제목을 영어 슬러그로 자동 변환하고, 기사에 하이퍼링크를 추가하는 번역 도우미를 개발해 보았습니다. 이렇게 하면 수동 설정의 번거로움을 피할 수 있습니다.

클로드4는 정말 좋네요, 문맥 이해 능력과 복잡한 작업 처리 효율이 크게 향상되었습니다

프로젝트 주소

국내 프로젝트 주소: https://cnb.cool/ttf248/hugo-content-suite 해외 프로젝트 주소: https://github.com/ttf248/hugo-content-suite

코드 구현

먼저 구현 아이디어부터 설명드리자면, 모든 문서를 스캔하여 태그 정보와 문서 제목을 추출한 다음, 로컬 모델(예: gemma-3-12b-it)을 호출하여 번역합니다

실제 개발에서 Claude4는 이전 세대 대규모 언어 모델과 비교하여 몇 가지 뚜렷한 특징을 보여줍니다. 다양한 기능 요구 사항으로 인해 Claude4는 자동 인터랙티브 메뉴를 설계하고, 모든 사용 시나리오를 포괄적으로 고려했습니다. 예를 들어, 태그 처리 측면에서 Claude4는 태그의 통계 및 분석은 물론 분류 통계까지 지원하며, 심지어 비표시된 문서도 감지할 수 있습니다. 또한 미리 보기와 태그 페이지 생성 기능도 제공합니다.

로컬 모델 연동, 번역 캐시 추가, 대규모 코드 리팩토링 등 무엇이든 한 번에 처리하며 거의 문제 없이 완료됩니다. 프로젝트 규모는 크지 않지만 다양한 기능들을 포함하고 있었는데, 기존의 거대 언어 모델들이 개발 과정에서 앞뒤 맥락을 잊는 경우가 많았지만 이번 Claude4거의 맥락을 잊지 않았습니다.

간단히 말해서, 지능이 향상되었고, 이후 개발 작업은 주력 모델로 일상 코딩에 활용하기 위해 Claude4로 전환할 준비를 하고 있습니다

번역 캐시

이 점은 단독으로 볼 때, 거대 모델 호출 횟수를 줄이는 것 외에도 실제 로컬에서 12B 모델을 실행하면 효율이 괜찮고 업무를 방해하지 않지만, 매번 거대 모델을 호출해야 하면 조금 느려지는 경향이 있습니다. 또한, 기사의 연결을 고정하기 위해 전체 업데이트 작업을 수행할 때 기사 제목이 길면 가끔씩 두 번 번역된 결과가 달라져서 기사 링크가 변경되는 상황이 발생하는데, 이 부분은 상당히 난감합니다.

기능 개선

전체 프로젝트를 클로드4에 맡겨 분석 및 최적화 공간을 확인한 결과, 다음과 같은 제안을 받았습니다

配置外置化 - 提高可维护性和灵活性
结构化日志 - 便于问题排查和监控
性能监控 - 了解系统运行状况
用户体验 - 进度条等视觉反馈
错误处理 - 更完善的异常处理机制
代码组织 - 更清晰的模块划分

코드 검토 결과, 문제 없습니다. 예를 들어 설정 파일의 경우, 기존 코드 설정을 기본 설정으로 변환하고, 설정 파일을 읽을 때 해당 파일이 없으면 자동으로 생성하여 사용자 실수로 인한 오류를 방지합니다.

요구 사항: 본문 번역 시 현재 번역 효율을 동적으로 계산하고, 남은 시간을 예측하여 콘솔에 관련 정보를 출력합니다. 현재 획득한 문서의 문자 수, 각 행 번역 시 현재 번역된 문자 수, 시간, 100자당 예상 번역 시간 등을 계산하며, 문서의 남은 번역 예상 시간도 함께 계산합니다.

코드는 마무리했는데, 결과가 만족스럽지 않아 AI에게 새로운 디자인 방안을 제시하도록 했어:

다양한 효율성 계산 방식 제공: 실시간 효율, 평균 효율, 슬라이딩 윈도우 효율 표시 방식 개선: 진행률 표시줄, 단계별 통계, 동적 새로 고침 더 유용한 지표 추가: API 호출 횟수, 성공률 등

코드 완성 후 새로운 깜짝 놀랄 일이 발견되었는데, 번역 효율 통계 정보가 실시간으로 화면을 채우지만 맹목적으로 아래로 스크롤되지는 않는다

번역 전문을 영어로 번역 중입니다 (총 7163자) 53행이 번역 필요로 감지됨 [1/53] Stage1/6 [░░░░░░░░░░░░░░░░░░░░░░░░░] 1.9% 번역 354자.. ✅ 완료 (3.1초) | API 호출 #1 ✅ 완료 (1.5초) | API 호출 #2 완료 (0.9초) | API 호출 #3 완료 (0.2초) | API 호출 #4 완료 (1.0초) | API 호출 #5 완료 (1.0초) | API 호출 #6 완료 (0.2초) | API 호출 #7 📊 진행률: 행 13.2% (7/53) | 문자 12.9% (925/7163) 114.6자/초 📊 ⚡ 효율성: 실시간 76.4 | 평균 117.9 | 최근 109.0 | 단계별 113.6 자/초 📊 성공률: 100.0% (7/7) | 남은 항목: 46행 7초] 9.4% 번역 110자.. 예상 남은 시간: 55초 | 완료 예상: 00:10:19 8초] 11.3% 번역 114자… 처리 속도: 3211.3 행/분 | 총 소요 시간: 8초] 13.2% 번역 16 문자.. [8/53] Stage1/6 [███░░░░░░░░░░░░░░░░░░░░░░] 15.1% 번역 166자..

이전에는 제어 프로그램 코드를 많이 작성해보지 않아서 어떻게 구현되었는지 궁금해서 코드를 살펴봤다

// 清屏并重新显示 (动态刷新效果)
if translationCount > 1 {
   fmt.Print("\033[6A\033[K") // 上移6行并清除
}

성능 통계 메뉴

새로 추가된 성능 통계 메뉴는 제가 직접 디자인했는데, 이렇게 완벽하게 만들 수 있을 줄은 몰랐습니다

성능 통계: 번역 횟수: 360 ⚡ 캐시 적중률: 1.4% (5/365) 평균 번역 시간: 315.927234ms 파일 작업: 73 오류 횟수: 0

진행률 표시

새로운 진행률 표시, 상세한 진행 상황, 경과 시간, 남은 예상 시간

기능 선택 (0-13): 10 번역 목표를 수집 중입니다… 📄 캐시 파일이 로드되었습니다. 번역 기록 0개 포함

번역 캐시 통계: 🏷️ 총 태그 수: 229개 📝 총 기사 수: 131건 ✅ 캐시됨: 0개 🔄 번역 필요: 360개

전체 번역 캐시 생성 확인하시겠습니까? (y/n): y 🚀 전체 번역 캐시 생성 중… 📄 캐시 파일이 로드되었습니다. 번역 기록 0개 포함 검색 중인 번역을 캐시에서 확인 중… 새로운 태그 360개 번역 필요 [░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░] 5/360 (1.4%) - 소요시간: 3초 - 예상 남은 시간: 3분 8초💾 캐시 파일 저장, 번역 기록 5개 포함 [█░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░] 10/360 (2.8%) - 소요시간: 6초 - 예상 남은 시간: 3분 28초💾 캐시 파일 저장, 번역 기록 10개 포함 [██░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░] 15/360 (4.2%) - 소요시간: 9초 - 예상 남은 시간: 3분 30초💾 캐시 파일 저장 완료, 번역 기록 15개 포함 [██░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░] 20/360 (5.6%) - 소요시간: 13초 - 예상 남은 시간: 3분 36초💾 캐시 파일 저장 완료, 번역 기록 20개 포함 [███░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░] 25/360 (6.9%) - 소요시간: 16초 - 예상 남은 시간: 3분 33초💾 캐시 파일 저장 완료, 번역 기록 25개 포함 [████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░] 30/360 (8.3%) - 소요시간: 19초 - 예상 남은 시간: 3분 30초💾 캐시 파일 저장 완료, 번역 기록 30개 포함 [████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░] 35/360 (9.7%) - 용량: 22s - 예상 남은 시간: 3분 25초💾 캐시 파일 저장 완료, 번역 기록 35개 포함


=== Hugo 博客管理工具 ===

🚀 核心功能
  1. 一键处理全部 (完整博客处理流程)

📝 内容管理
  2. 生成标签页面
  3. 生成文章Slug
  4. 翻译文章为多语言版本

💾 缓存管理
  5. 查看缓存状态
  6. 生成全量翻译缓存
  7. 清空翻译缓存

  0. 退出程序
Licensed under CC BY-NC-SA 4.0
마지막 수정: 2025년 05월 26일 00:49
금융 IT 프로그래머의 이것저것 만지작거리기와 일상의 중얼거림
Hugo로 만듦
JimmyStack 테마 사용 중