MetaGPT를 활용한 혁신적 멘토-멘티 매칭 플랫폼 개발 과정

안녕하세요! 오늘은 Generative AI를 활용한 온디맨드 매칭 사이트를 만들기 위해 metaGPT라는 다중 에이전트 시스템을 사용한 프로젝트 테스트에 대해 소개하려고 합니다. 이 사이트의 목표는 멘티의 문제점을 기반으로 개인화된 멘토 제안을 제공하여, 멘토를 찾는 과정에서의 검색 부담을 줄이는 것입니다.

metaGPT 프로그램 실행

실행 명령어는 다음과 같습니다:

(venv) jin@jini:~/work/metagpt$ python startup.py "On-demand matching site using Generative AI. On-demand matching – reduce the search friction in finding mentors by providing personalized mentor suggestions to mentees based on their challenges." --code_review True

GPT 사용 비용 예측과 실제 비용

비용 예측

프로그램 실행 로그에서는 GPT 사용에 대한 예상 비용이 $3.0로 나타났습니다. 이는 초기 설정과 알고리즘 실행에 필요한 자원을 고려한 예상치입니다.

실제 비용

프로그램이 종료된 후에 실제로 발생한 비용은 $2.269였습니다. 예측보다 낮은 비용으로 프로젝트를 완료할 수 있었습니다, 이는 효율적인 자원 사용을 의미하며, 예산 관리 측면에서도 긍정적입니다.

원래의 요구사항

상사는 Generative AI를 사용한 온디맨드 매칭 사이트를 요청했습니다. 이 사이트의 목표는 멘티의 문제점을 기반으로 개인화된 멘토 제안을 제공하여, 멘토를 찾는 과정에서의 검색 부담을 줄이는 것입니다.

제품 목표

제품의 목표는 사용자 친화적인 플랫폼을 제공하면서, 멘티의 특별한 문제점에 따라 개인화된 멘토를 추천하는 것입니다. 또한, 이 과정에서 검색 부담을 줄이는 것도 중요한 목표입니다.

사용자 스토리

이러한 사용자 스토리를 통해, 멘티와 멘토 모두에게 가치를 제공하는 플랫폼을 만들고자 합니다. 멘티는 자신의 문제점과 필요에 맞는 멘토를 쉽게 찾을 수 있어야 하며, 멘토는 자신의 경험과 지식을 활용하여 멘티에게 도움을 줄 수 있는 매칭을 원합니다. 또한, 모든 사용자는 플랫폼이 사용하기 쉽고, AI 추천이 정확해야 한다고 생각합니다.

경쟁 분석

경쟁 분석은 시장 내에서 유사한 서비스나 제품을 제공하는 경쟁사들을 조사하고, 그들의 강점과 약점, 기능, 전략 등을 분석하는 과정입니다. 이 분석을 통해 본인의 프로젝트나 서비스가 시장에서 어떤 위치에 있고, 어떤 기회와 위협이 있는지를 파악할 수 있습니다.

경쟁 플랫폼의 한계점

  1. MentorNet: 이미 잘 정립된 플랫폼이지만, AI를 활용한 개인화된 제안 기능이 부족합니다.
  2. MentorCloud: 매칭 기능은 있지만, 수동적이고 시간이 많이 소요됩니다.
  3. MentorMe: 일부 개인화는 있지만, AI가 생성적이지 않고 사용자 행동에서 학습하지 않아 시간이 지남에 따른 개선이 미미합니다.
  4. MentorMatch: AI를 사용하여 매칭을 하지만, 알고리즘이 투명하지 않고 사용자들은 잘못된 매칭에 대해 불만을 제기했습니다. https://www.mentormatch.com/ https://mentor-match.io/
  5. MentorLink: 많은 사용자가 이용하는 인기 있는 플랫폼이지만, 사용자의 특별한 문제점에 따른 개인화된 제안 기능이 없습니다.

경쟁 사분면 차트

위의 차트는 각 멘토링 플랫폼의 ‘리치(Reach)’와 ‘엔게이지먼트(Engagement)’를 기반으로 4개의 사분면으로 나눠 분석한 것입니다. 각 사분면의 라벨은 플랫폼의 현재 상태와 개선 방향을 나타냅니다.

데이터 포인트는 다음과 같습니다:

  • MentorNet: “확장할 필요가 있음” 사분면에 위치해 있습니다.
  • MentorCloud: “홍보가 필요함” 사분면에 위치해 있습니다.
  • MentorMe: “개선 가능” 사분면에 위치해 있습니다.
  • MentorMatch: “재평가 필요” 사분면에 위치해 있습니다.
  • MentorLink: “홍보가 필요함” 사분면에 위치해 있습니다.
  • 우리의 목표 제품: “확장할 필요가 있음” 사분면에 가까운 위치에 있습니다.

이 차트를 통해 각 플랫폼의 현재 상태와 앞으로 어떤 전략이 필요한지를 파악할 수 있습니다.

요구사항 분석

제품 개요

제품은 멘티와 멘토를 매칭하기 위한 웹 기반 플랫폼이어야 합니다. 이 플랫폼의 핵심 기능은 Generative AI를 활용하여 멘티의 문제점과 도전 과제를 기반으로 개인화된 멘토 제안을 생성하는 것입니다.

주요 요구사항

  1. 웹 기반 플랫폼: 사용자는 웹 브라우저를 통해 플랫폼에 접근할 수 있어야 합니다. 이를 통해 다양한 기기에서 쉽게 접근할 수 있게 됩니다.
  2. Generative AI 활용: AI는 멘티의 도전 과제와 문제점을 기반으로 멘토를 추천해야 합니다. 이를 통해 매칭 과정이 더욱 정확하고 효과적이게 됩니다.
  3. 사용자 행동 학습: AI는 사용자의 상호작용과 피드백을 학습하여 시간이 지남에 따라 더욱 개선된 매칭 제안을 할 수 있어야 합니다.
  4. 사용자 친화적인 인터페이스: 플랫폼은 직관적이고 사용하기 쉬워야 합니다. 사용자는 쉽게 멘토를 찾고, 프로필을 관리하며, 다른 사용자와 상호작용할 수 있어야 합니다.

요구사항 풀 (Requirement Pool)

요구사항 목록

요구사항 설명

  1. Generative AI를 활용한 개인화된 멘토 제안 구현 (P0): 이 요구사항은 제품의 핵심 기능입니다. AI는 멘티의 문제점과 도전 과제를 기반으로 개인화된 멘토 제안을 생성해야 합니다.
  2. 사용자 친화적이고 쉽게 탐색 가능한 인터페이스 생성 (P0): 사용자는 플랫폼을 쉽게 사용하고 탐색할 수 있어야 합니다.
  3. 멘티가 자신의 문제점과 필요사항을 입력할 수 있는 시스템 개발 (P1): 멘티는 자신의 도전 과제와 문제점을 입력하여, AI가 더욱 정확한 매칭 제안을 할 수 있도록 정보를 제공해야 합니다.
  4. 멘토가 자신의 전문성과 경험을 입력할 수 있는 시스템 개발 (P1): 멘토는 자신의 전문 지식과 경험을 기반으로 멘티와의 매칭이 이루어져야 합니다.
  5. AI의 지속적인 개선을 위한 피드백 시스템 구현 (P2): 사용자의 피드백을 통해 AI는 지속적으로 개선되어야 합니다.

UI 디자인 초안

플랫폼 디자인 지침

플랫폼은 깔끔하고 직관적인 디자인을 가져야 합니다. 사용자는 쉽게 원하는 기능을 찾을 수 있어야 하며, 디자인은 사용자의 경험을 향상시켜야 합니다.

구현 접근 방식

기술 스택 선택

Bob(Architect)는 다음과 같은 기술 스택을 선택하여 디자인을 작성하였습니다:

  1. 웹 프레임워크 – Flask: Flask는 가볍고 매우 유연한 웹 프레임워크입니다. 이러한 특징은 우리 프로젝트에 적합하게 만듭니다.
  2. Generative AI – GPT-3: OpenAI에서 제공하는 GPT-3를 사용합니다. 이는 인간과 유사한 텍스트를 생성할 수 있는 강력한 언어 모델입니다.
  3. ORM – SQLAlchemy: 우리의 SQLite 데이터베이스와 상호 작용하기 위해 SQLAlchemy ORM을 사용합니다.
  4. 프론트엔드 – Bootstrap: Bootstrap을 사용하여 응용 프로그램을 반응형 및 사용자 친화적으로 만듭니다.
  5. 폼 처리 및 유효성 검사 – WTForms: WTForms를 사용하여 폼 처리 및 유효성 검사를 합니다.

mentor_match 파이썬 패키지 구조

mentor_match는 멘토와 멘티를 매칭하는 웹 애플리케이션을 위한 파이썬 패키지입니다. 아래는 패키지의 주요 파일 및 디렉토리 구조에 대한 설명입니다.

주요 파일 및 디렉토리

  1. main.py: 애플리케이션의 주 실행 파일입니다. Flask 앱 인스턴스를 생성하고 라우트를 정의합니다.
  2. models.py: 데이터베이스 모델을 정의하는 파일입니다. SQLAlchemy를 사용하여 멘토와 멘티의 정보를 저장하는 테이블 구조를 정의합니다.
  3. forms.py: WTForms를 사용하여 웹페이지의 폼을 정의하는 파일입니다. 로그인, 회원가입, 프로필 수정 등의 폼을 정의합니다.
  4. templates/: HTML 템플릿 파일들을 저장하는 디렉토리입니다.
    • home.html: 홈페이지 템플릿입니다.
    • login.html: 로그인 페이지 템플릿입니다.
    • register.html: 회원가입 페이지 템플릿입니다.
    • profile.html: 사용자 프로필 페이지 템플릿입니다.
  5. static/: 정적 파일들을 저장하는 디렉토리입니다.
    • css/main.css: 애플리케이션의 주 스타일시트입니다.

데이터 구조

1. User 클래스

  • 속성:
    • id: 사용자의 고유 식별자 (정수)
    • username: 사용자 이름 (문자열)
    • email: 사용자의 이메일 주소 (문자열)
    • password_hash: 해시 처리된 비밀번호 (문자열)
  • 메서드:
    • __init__(username: str, email: str, password: str): 생성자 메서드
    • check_password(password: str): 주어진 비밀번호가 사용자의 비밀번호와 일치하는지 확인하는 메서드

2. Mentor 클래스

  • 속성:
    • id: 멘토의 고유 식별자 (정수)
    • expertise: 멘토의 전문 분야 (문자열)
    • experience: 멘토의 경험 (문자열)
    • user: User 클래스와의 관계를 나타내는 속성
  • 메서드:
    • __init__(user: User, expertise: str, experience: str): 생성자 메서드

3. Mentee 클래스

  • 속성:
    • id: 멘티의 고유 식별자 (정수)
    • challenges: 멘티의 도전 과제 (문자열)
    • needs: 멘티의 필요사항 (문자열)
    • user: User 클래스와의 관계를 나타내는 속성
  • 메서드:
    • __init__(user: User, challenges: str, needs: str): 생성자 메서드

관계

  • User 클래스는 MentorMentee 클래스와 1:0..1의 관계를 가집니다. 이는 한 사용자가 멘토 또는 멘티로만 등록될 수 있음을 의미합니다.

mentor_match 프로그램 호출 흐름

호출 흐름 설명

  1. 사용자 등록:
    • mainUser 클래스의 register 메서드를 호출하여 사용자를 등록합니다. 이때 사용자 이름, 이메일, 비밀번호를 인자로 전달합니다.
  2. 사용자 로그인:
    • mainUser 클래스의 login 메서드를 호출하여 사용자를 로그인 시킵니다. 사용자 이름과 비밀번호를 인자로 전달합니다.
    • User 클래스는 check_password 메서드를 통해 제공된 비밀번호가 올바른지 확인합니다.
  3. 멘티 생성:
    • mainMentee 클래스의 create_mentee 메서드를 호출하여 멘티를 생성합니다. 사용자 객체와 멘티의 도전 과제, 필요사항을 인자로 전달합니다.
  4. 멘토 생성:
    • mainMentor 클래스의 create_mentor 메서드를 호출하여 멘토를 생성합니다. 사용자 객체와 멘토의 전문 분야, 경험을 인자로 전달합니다.
  5. 멘토 매칭:
    • mainmatch_mentor 메서드를 호출하여 멘티에게 가장 적합한 멘토를 매칭합니다. 멘티 객체를 인자로 전달합니다.

mentor_match 프로젝트의 Python 패키지 의존성

Eve(Project Manager)는 mentor_match 프로젝트를 위한 필요한 Python 패키지 의존성을 정리하였습니다.

결론

metaGPT를 활용하여 멘토-멘티 매칭 웹 사이트를 개발하는 과정을 살펴보았습니다. 프로젝트는 Generative AI를 중심으로 온디맨드 방식의 매칭 서비스를 제공하며, 사용자의 특정 도전과 문제점을 기반으로 개인화된 멘토 제안을 목표로 합니다.

프로젝트의 주요 단계는 다음과 같습니다:

  1. 제품 목표 및 사용자 스토리 정의: 사용자의 요구사항과 기대를 바탕으로 제품의 주요 목표와 사용자 스토리를 세웠습니다.
  2. 경쟁 제품 분석: 시장 내 다른 멘토-멘티 매칭 플랫폼들과의 차별점을 파악하기 위해 경쟁 제품 분석을 수행하였습니다.
  3. 요구사항 분석: 제품의 주요 기능과 특징을 명확히 정의하였습니다.
  4. UI 디자인 초안: 사용자 친화적인 인터페이스를 가진 웹 플랫폼을 디자인하는 초안을 제시하였습니다.
  5. 구현 접근법: Flask, GPT-3, SQLAlchemy 등의 기술 스택을 활용하여 제품을 구현하는 방법을 계획하였습니다.
  6. 파이썬 패키지 의존성: 프로젝트 구현에 필요한 서드파티 Python 패키지들을 정리하였습니다.

이러한 단계를 거쳐 metaGPT를 활용한 매칭 사이트 프로젝트의 기본 틀을 구성하였습니다. 그러나 프로젝트의 전체 과정은 복잡하므로 지금까지의 내용은 주요 단계에 대한 요약에 불과하며, 여러 세부 과정과 구현 단계는 생략하였습니다.


답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다