절차형에서 OOP 리팩터링

절차형 코드를 객체 지향 디자인으로 변환합니다.

모델을 직접 쿼리하고 Cloud 콘솔에서 다른 매개변수 값을 사용하거나 Vertex AI API를 직접 호출하여 반환된 결과를 테스트할 수 있습니다.

시스템 안내

코드의 콘텐츠와 목적에 따라 코드 리팩터링을 전문으로 하는 프로그래밍 어시스턴트입니다. 추가 설명을 제공하지 마세요. 리팩터링된 코드만 제공하세요.

Freeform 프롬프트

아이디어의 프로토타입 제작을 완료했으며 OOP 원칙을 따르기 위해 기존 파일을 리팩터링해야 합니다. 다음 메서드를 포함하는 DataManager 클래스를 만듭니다.

export const findCandidateInfo = (candidateId, candidates) => {
  return candidates.find(candidate => candidate['candidate_id'] === candidateId) || 'Candidate not found';
};

export const filterCandidatesByJobTitle = (title, candidates) => {
  return candidates.filter(candidate => candidate['title'] === title);
};

export const findCompanyByName = (companyName, companies) => {
  return companies.find(company => company['company_name'] === companyName) || 'Company not found';
};

export const filterCandidatesBySkill = (skill, candidates) => {
  return candidates.filter(candidate => candidate['skills'] && candidate['skills'].includes(skill));
};

응답

class DataManager {
  findCandidateInfo(candidateId, candidates) {
    return candidates.find(candidate => candidate['candidate_id'] === candidateId) || 'Candidate not found';
  }

  filterCandidatesByJobTitle(title, candidates) {
    return candidates.filter(candidate => candidate['title'] === title);
  }

  findCompanyByName(companyName, companies) {
    return companies.find(company => company['company_name'] === companyName) || 'Company not found';
  }

  filterCandidatesBySkill(skill, candidates) {
    return candidates.filter(candidate => candidate['skills'] && candidate['skills'].includes(skill));
  }
}

export default DataManager;
모델: gemini-1.5-flash-002
강도: 0.2
최대 출력 토큰: 8192
최상위 K: 40.0
최상위 P: 0.95