ControlFlow vs Make의 차이점, 트위터를 이용한 프로젝트 구현

요즘 LLM 모델을 이용한 자동화 솔루션들이 이목을 끄는데요. 그 대표 주자인 ControlFlow와 make에 대해 비교해 보려고 합니다. 두 AI 소프트웨어 개발 과정에서 사용되는 도구이지만, 그 역할과 기능이 다릅니다.

간단히 말해, ControlFlow는 AI 모델 개발을 위한 플랫폼이고, make는 빌드 시스템입니다.

controlflow-make

 

ControlFlow란?

ControlFlow는 AI 모델 개발을 더욱 쉽고 빠르게 만들어주는 저코드 또는 노코드 플랫폼입니다. 복잡한 코드 작성 없이도 다양한 AI 모델을 만들고 배포할 수 있도록 지원합니다.

주요 기능은 다음과 같습니다.

  • 데이터 준비: 다양한 형식의 데이터를 쉽게 불러오고 전처리할 수 있습니다.
  • 모델 선택 및 훈련: 다양한 종류의 머신러닝 모델을 선택하고, 간단한 설정만으로 훈련시킬 수 있습니다.
  • 모델 배포: 훈련된 모델을 웹 서비스, 모바일 앱 등 다양한 환경에 배포할 수 있습니다.
  • 실험 관리: 다양한 하이퍼파라미터를 조절하며 실험을 진행하고, 최적의 모델을 찾을 수 있습니다.

ControlFlow는 AI 워크플로우를 정의하는 데 필요한 세 가지 주요 컴포넌트로 구성됩니다:

  • Tasks: AI 워크플로우의 기본 단위로, 달성해야 할 명확한 목표를 정의합니다.
  • Agents: AI 워크플로우에서 지능적이고 자율적인 엔티티를 의미합니다. 모델을 정의하고, 맞춤형 지침을 제공하며, 다양한 도구를 추가해 에이전트를 생성할 수 있습니다.
  • Flows: 여러 AI 워크플로우를 지정된 순서로 실행하는 구조화된 방식입니다. 이러한 구조를 통해 작업, 에이전트, 도구, 공유 컨텍스트를 체계적으로 관리할 수 있습니다.

ControlFlow의 장점은 아래와 같습니다. 

  • 빠른 개발: 복잡한 코드 작성 없이도 빠르게 프로토타입을 만들 수 있습니다.
  • 쉬운 사용: 코딩 경험이 적은 사람도 쉽게 사용할 수 있습니다.
  • 다양한 기능: 데이터 전처리, 모델 훈련, 배포 등 AI 개발에 필요한 모든 기능을 제공합니다.

ControlFlow를 사용하면 파이썬 애플리케이션에 AI 기능을 무리 없이 통합하고, AI 워크플로우를 더 잘 관리할 수 있으며, 단순한 텍스트가 아닌 구조화된 출력을 얻을 수 있습니다.

 

Make란?

Make는 소프트웨어를 컴파일하고 링크하여 실행 파일을 생성하는 빌드 시스템입니다. 즉, 소스 코드를 기반으로 실행 가능한 프로그램을 만들어내는 도구입니다. 주요 기능은 다음과 같습니다.

  • 의존성 관리: 소스 코드 파일 간의 의존 관계를 파악하여 변경된 파일만 재컴파일합니다.
  • 자동화: 복잡한 빌드 과정을 자동화하여 개발 생산성을 향상시킵니다.
  • 크로스 플랫폼 지원: 다양한 운영체제에서 동일한 프로젝트를 빌드할 수 있도록 지원합니다.

Make의 장점은 아래와 같습니다. 

  • 빌드 자동화: 반복적인 빌드 작업을 자동화하여 시간을 절약합니다.
  • 오류 감소: 수동으로 빌드할 때 발생할 수 있는 실수를 줄여줍니다.
  • 대규모 프로젝트 관리: 복잡한 프로젝트의 빌드 관리를 효율적으로 수행할 수 있습니다.

정리해 보면 아래 표와 같습니다. 

특징 ControlFlow make
목적 AI 모델 개발 소프트웨어 빌드
대상 데이터, 모델 소스 코드
기능 데이터 전처리, 모델 훈련, 배포
컴파일, 링크, 의존성 관리
사용자 데이터 과학자, 머신러닝 엔지니어 개발자

 

ControlFlow로 트윗 분류기 만들기

트윗 분류기는 학생들에게 인기 있는 소규모 프로젝트로, 보통 몇 달이 걸리는 작업입니다. 하지만 ControlFlow를 사용하면 몇 줄의 코드로 간단히 구현할 수 있습니다.

  1. 4개의 짧은 트윗을 리스트로 만듭니다.
  2. GPT-4-mini 모델을 사용해 맞춤 지침을 제공하는 에이전트를 설정합니다.
  3. 트윗을 “hate” 또는 “love”로 분류하는 작업을 만듭니다.
  4. 작업을 실행하고 결과를 출력합니다.
import controlflow as cf
from typing import Literal

tweets = [
    "Negativity spreads too easily here. #sigh",
    "Sometimes venting is necessary. #HateTherapy",
    "Love fills the air today! 💖 #Blessed",
    "Thankful for all my Twitter friends! 🌟"
]

classifier = cf.Agent(
    name="Tweet Classifier",
    model="openai/gpt-4o-mini",
    instructions="You are an expert at quickly classifying tweets.",
)

classifications = cf.run(
    'Classify the tweets',
    result_type=list[Literal['hate', 'love']],
    agents=[classifier],
    context=dict(tweets=tweets),
)

print(classifications)

 

make로 고객관리 자동화

1. Asana 설정

  • 트리거 설정: 새로운 연락처가 추가될 때 워크플로우가 실행되도록 트리거를 설정합니다.
  • 데이터 추출: 새로운 연락처의 이름, 이메일 주소, 기타 필요한 정보를 추출합니다.

2. Router 설정

Router는 조건에 따라 분기하는 역할을 합니다. Salesforce API를 활용하여 추출한 연락처 정보와 일치하는 데이터가 있는지 조회합니다. 아래와 같이 조건으로 분기합니다. 

  • 일치하는 데이터 존재: Gmail 단계로 이동하여 메일 발송
  • 일치하는 데이터 없음: Salesforce 단계로 이동하여 새로운 연락처 등록

3. Salesforce 설정

  • 데이터 삽입: Router에서 전달 받은 연락처 정보를 Salesforce에 새로운 레코드로 삽입합니다.
  • 필드 매핑: Asana에서 추출한 데이터를 Salesforce의 해당 필드에 정확하게 매핑합니다.

4. Gmail 설정

  • 메일 발송: Gmail API를 활용하여 이미 등록된 연락처에게 미리 작성된 메일 템플릿을 발송합니다.
  • 개인정보 보호: 수신자의 이메일 주소를 안전하게 처리하고, 스팸 필터링 규정을 준수합니다.

Make 설정 화면

마치며

결론적으로, ControlFlow는 AI 모델 개발을 위한 고급 도구이고, make는 소프트웨어 개발 과정에서 빌드를 자동화하는 도구입니다. 두 도구는 서로 다른 목적을 가지고 있지만, 함께 사용하면 더욱 효율적인 AI 개발 환경을 구축할 수 있습니다.

예를 들어, ControlFlow를 사용하여 AI 모델을 개발하고, make를 사용하여 개발된 모델을 포함한 전체 프로젝트를 자동 빌드할 수 있습니다.

Leave a Comment