더북(TheBook)
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)