class CriteriaServiceServicer(agents_pb2_grpc.CriteriaServiceServicer):
"""
Criteria Service의 gRPC 서비스를 구현하는 클래스
PDF 문서에서 보안 점검 기준을 추출하는 기능을 제공합니다.
"""
def Extract(self, request, context):
"""
PDF 경로를 입력받아 기준 요약 문자열을 생성하는 메서드
Args:
request: PdfRequest 객체 (pdf_path 필드 포함)
context: gRPC 컨텍스트
Returns:
PdfResponse: summary 필드에 기준 요약 문자열이 포함된 응답
"""
# 요청에서 PDF 파일 경로 추출
pdf_path = request.pdf_path
# PDF 파일 존재 여부 확인
if not os.path.exists(pdf_path):
# 파일이 없는 경우 오류 메시지 생성
summary = f"[Criteria] PDF 파일 없음: {pdf_path}"
else:
# 파일이 존재하는 경우, 파일명을 기반으로 기준 요약 생성
# os.path.basename()을 사용하여 전체 경로에서 파일명만 추출
summary = (
f"[Criteria] '{os.path.basename(pdf_path)}' 를 기준 문서로 사용하여 "
f"OWASP / 내부 정책 기준으로 점검."
)
# PdfResponse 객체를 생성하여 반환
return agents_pb2.PdfResponse(summary=summary)