InfoGrab DocsInfoGrab Docs

LLM 로깅

요약

GitLab Rails Monolith 인스턴스의 표준 로깅 외에도, 대규모 언어 모델(LLM) 기반 기능을 위한 특화된 로깅이 제공됩니다. 관련 문서는 로깅된 이벤트를 참조하세요. LLM 특화 로깅을 구현하려면 Gitlab::Llm::Logger 클래스를 사용하세요.

GitLab Rails Monolith 인스턴스의 표준 로깅 외에도, 대규모 언어 모델(LLM) 기반 기능을 위한 특화된 로깅이 제공됩니다.

로깅된 이벤트#

관련 문서는 로깅된 이벤트를 참조하세요.

구현#

Logger 클래스#

LLM 특화 로깅을 구현하려면 Gitlab::Llm::Logger 클래스를 사용하세요.

개인 정보 보호 고려사항#

중요: 사용자 입력 및 사용자 데이터가 포함된 전체 프롬프트는 명시적으로 허용된 경우를 제외하고 로깅해서는 안 됩니다.

기능 플래그#

GitLab.com의 경우#

expanded_ai_logging이라는 기능 플래그가 민감한 데이터의 로깅을 제어합니다.

GitLab Self-Managed 인스턴스의 경우#

인스턴스 설정 ::Ai::Setting.instance.enabled_instance_verbose_ai_logs가 민감한 데이터의 로깅을 제어합니다.

기능 플래그 또는 인스턴스 설정 상태에 따른 조건부 로깅에는 conditional_info 헬퍼 메서드를 사용하세요:

  • 현재 사용자에 대해 기능 플래그가 활성화되어 있거나 인스턴스 설정이 활성화된 경우, 해당 설정은 info 레벨로 정보를 로깅합니다(로그는 Kibana에서 확인 가능).

  • 현재 사용자에 대해 기능 플래그가 비활성화되어 있거나 인스턴스 설정이 비활성화된 경우, 해당 설정은 info 레벨로 정보를 로깅하지만 선택적 파라미터는 제외됩니다(로그는 Kibana에서 확인 가능하나, 필수 필드만 포함됨).

모범 사례#

LLM 기능에 대한 로깅을 구현할 때 다음 사항을 고려하세요:

  • 디버깅 목적으로 중요한 정보를 식별합니다.

  • 적절한 인가 없이 민감한 사용자 데이터를 로깅하지 않음으로써 개인 정보 보호 요건을 준수합니다.

  • expanded_ai_logging 기능 플래그를 준수하기 위해 conditional_info 헬퍼 메서드를 사용합니다.

  • 트러블슈팅과 분석에 유의미한 인사이트를 제공할 수 있도록 로그를 구조화합니다.

사용 예시#

# 로깅을 처리하는 concern 포함
include Gitlab::Llm::Concerns::Logger

# 잠재적으로 민감한 정보 로깅
log_conditional_info(user, message:"User prompt processed", event_name: 'ai_event', ai_component: 'abstraction_layer', prompt: sanitized_prompt)

# 애플리케이션 오류 정보 로깅
log_error(user, message: "System application error", event_name: 'ai_event', ai_component: 'abstraction_layer', error_message: sanitized_error_message)

중요: 데이터 보존 정책을 숙지하고, 사용자 입력 및 LLM이 생성한 출력을 로깅하지 않도록 반드시 확인하세요.

LLM 로깅

GitLab v19.1
원문 보기
요약

GitLab Rails Monolith 인스턴스의 표준 로깅 외에도, 대규모 언어 모델(LLM) 기반 기능을 위한 특화된 로깅이 제공됩니다. 관련 문서는 로깅된 이벤트를 참조하세요. LLM 특화 로깅을 구현하려면 Gitlab::Llm::Logger 클래스를 사용하세요.

GitLab Rails Monolith 인스턴스의 표준 로깅 외에도, 대규모 언어 모델(LLM) 기반 기능을 위한 특화된 로깅이 제공됩니다.

로깅된 이벤트#

관련 문서는 로깅된 이벤트를 참조하세요.

구현#

Logger 클래스#

LLM 특화 로깅을 구현하려면 Gitlab::Llm::Logger 클래스를 사용하세요.

개인 정보 보호 고려사항#

중요: 사용자 입력 및 사용자 데이터가 포함된 전체 프롬프트는 명시적으로 허용된 경우를 제외하고 로깅해서는 안 됩니다.

기능 플래그#

GitLab.com의 경우#

expanded_ai_logging이라는 기능 플래그가 민감한 데이터의 로깅을 제어합니다.

GitLab Self-Managed 인스턴스의 경우#

인스턴스 설정 ::Ai::Setting.instance.enabled_instance_verbose_ai_logs가 민감한 데이터의 로깅을 제어합니다.

기능 플래그 또는 인스턴스 설정 상태에 따른 조건부 로깅에는 conditional_info 헬퍼 메서드를 사용하세요:

  • 현재 사용자에 대해 기능 플래그가 활성화되어 있거나 인스턴스 설정이 활성화된 경우, 해당 설정은 info 레벨로 정보를 로깅합니다(로그는 Kibana에서 확인 가능).

  • 현재 사용자에 대해 기능 플래그가 비활성화되어 있거나 인스턴스 설정이 비활성화된 경우, 해당 설정은 info 레벨로 정보를 로깅하지만 선택적 파라미터는 제외됩니다(로그는 Kibana에서 확인 가능하나, 필수 필드만 포함됨).

모범 사례#

LLM 기능에 대한 로깅을 구현할 때 다음 사항을 고려하세요:

  • 디버깅 목적으로 중요한 정보를 식별합니다.

  • 적절한 인가 없이 민감한 사용자 데이터를 로깅하지 않음으로써 개인 정보 보호 요건을 준수합니다.

  • expanded_ai_logging 기능 플래그를 준수하기 위해 conditional_info 헬퍼 메서드를 사용합니다.

  • 트러블슈팅과 분석에 유의미한 인사이트를 제공할 수 있도록 로그를 구조화합니다.

사용 예시#

# 로깅을 처리하는 concern 포함
include Gitlab::Llm::Concerns::Logger

# 잠재적으로 민감한 정보 로깅
log_conditional_info(user, message:"User prompt processed", event_name: 'ai_event', ai_component: 'abstraction_layer', prompt: sanitized_prompt)

# 애플리케이션 오류 정보 로깅
log_error(user, message: "System application error", event_name: 'ai_event', ai_component: 'abstraction_layer', error_message: sanitized_error_message)

중요: 데이터 보존 정책을 숙지하고, 사용자 입력 및 LLM이 생성한 출력을 로깅하지 않도록 반드시 확인하세요.