본문 바로가기
C5. 테스크 간 의존성 정의하기 5.1 기본 의존성 유형5.1.1 선형 의존성 유형명시적으로 테스크 의존성을 지정의존성 충족된 뒤 다음 태스크 실행다운스트림 태스크로 전달5.1.2 팬인/팬아웃 의존성두가지 소스에서 데이터가 정제되어 결합해야하는 테스크에서DummyOperator 사용from airflow.operators.dummy import DummyOperatorstart = DummyOperator(task_id='start')start >> [fetch_weather, fetch_sales][clean_sales, clean_weather] >> join_datasetsjoin_datasets >> train_model >> deploy_model![](https://velog.velcdn.com/images/annmunju/.. 2024. 6. 2.
C4. Airflow 콘텍스트를 사용하여 태스크 템플릿 작업하기 오퍼레이터의 역할작동 방법언제 어떻게 실행되는지원격 시스템과 통신하는 방법4.1 Airflow로 처리할 데이터 검사예시 : 위키피디아 페이지 뷰 수 수집뷰 증가 -> 긍정적 주식 전망 예측뷰 감소 -> 부정적 주식 전망 예측4.1.1 증분 데이터를 적재하는 방법 결정하기형식 gzip (전체 크기 50mb, 압축 풀면 200~250mb)시간당 페이지 수 집계도메인 코드 살펴보기4.2 태스크 콘텍스트와 Jinja 탬플릿 작업워크플로 첫 번째 버전4.2.1 오퍼레이터의 인수 템플릿 작업Jinja 템플릿 문자열 {{ }}print("Hello {{ name }}")모든 오퍼레이터 인수가 템플릿이 될 수 있는 것은 아님. 공식 문서 참고 (PythonOperator.template_fields)4.2.2 템플릿에.. 2024. 6. 2.
C3. Airflow의 스케줄링 3.1 예시: 사용자 이벤트 처리하기사용자 이벤트를 가져오고 통계 및 계산하기 + 스케줄링으로 매일 특정 기간의 변화를 비교하기3.2 정기적으로 실행하기3.2.1 스케줄 간격 정의하기dag = DAG( dag_id="02_daily_schedule", schedule_interval="@daily", # 매일 start_date=datetime(2024, 4, 1), # 4월 1일 이후 자정부터 시작 (4월 2일 00시) end_date=datetime(2024, 5, 1),)3.2.2 Cron 기반의 스케줄 간격 설정하기Cron 사용 예시0 * * * * = 매시간 정시 실행0 0 * * * = 매일 자정 실행0 0 * * 0 = 매주 일요일 자정에 실행0 0 1 * * = 매월 .. 2024. 6. 2.
C2. Airflow DAG의 구조 2.1 다양한 소스에서 데이터 수집2.1.1 데이터 탐색배경 : 로켓 뉴스 수집 프로그램 작성예정된 로켓 발사 데이터, 이미지 API2.2 첫 번째 Airflow DAG 작성Airflow에 매핑된 모형태스크를 나누는 기준은 때에 따라 다름. 2.2.1 태스크와 오퍼레이터 차이점오퍼레이터는 단일 작업을 수행할 수 있는 기능 제공.태스크는 오퍼레이터의 래퍼/매니저 역할을 함. 둘은 유사한 개념으로 혼용해서 사용2.2.2 임의 파이썬 코드 실행라이브러리import jsonimport pathlibimport airflowimport airflow.utilsimport requestsimport requests.exceptions as requests_exceptionsfrom airflow import DAG.. 2024. 6. 2.
C1. Apach Airflow 살펴보기 1.1 데이터 파이프라인 소개1.1.1 데이터 파이프라인 그래프방향성 비순환 그래프 DAG앞선 태스크가 완료되어야 뒤의 태스크 실행 가능순환 그래프의 경우, 상호 의존성이 있어 명확한 실행 경로 파악 불가1.1.2 파이프라인 그래프 실행그래프 안 태스크는 각각 개방된 상태, 이전 태스크가 완료되었는지 확인태스크 완료되면 다음 태스크를 대기열 추가그래프의 모든 태스크가 완료될 때 까지 실행1.1.3 그래프 파이프라인과 절차적 스크립트 파이프라인 비교개별적인 태스크로 병렬 구성이 가능하기 때문에, 가용 컴퓨팅 리소스를 효율적으로 활용 가능절차적 (모놀리식) 스크립트의 경우 중간 태스크가 실패하면 전체를 재실행 해야함.1.4 워크플로 매니저를 이용한 파이프라인 실행워크플로 관리 시스템의 주요 차이 정의 방식O.. 2024. 6. 2.
[4주차] ReAct Agent 만들기 [참고] langchain==0.0.352 @tool 데코레이터를 이용한 함수 작성 - Doc string을 도구 설명으로 사용하기 때문에 필히 작성 해야함. from langchain.tools import tool @tool def search(query: str) -> str: """Look up things online.""" return "LangChain" 프롬프트 작성 - 무료 프롬프트 공유 허브 : https://smith.langchain.com/ - 공식 문서 : https://docs.smith.langchain.com/overview LangSmith smith.langchain.com - 사용 방법 from langchain import hub obj = hub.pull("{Lan.. 2024. 4. 2.
[3주차] Ice Breaker app 만들기 (2) 4. Custom Agent Implementation & Testing (1) 구글을 크롤해 링크드인에서 사용자 url을 찾는 함수 작성 from langchain import PromptTemplate from langchain.chat_models import ChatOpenAI from langchain.agents import initialize_agent, Tool, AgentType def lookup(name: str) -> str: llm = ChatOpenAI(temperature=0, model="gpt-3.5-turbo") template = """given the full name {name_of_person} I want you to get it me a link to their.. 2024. 1. 8.
[2주차] Ice Breaker app 만들기 (1) 유저의 링크드인 정보를 바탕으로 아이스 브레이크 질문을 생성해주는 페이지 생성 1. Scraping a. 링크드인 정보 샘플 생성 : 테스트 앱이므로 샘플로만 제작 (API 사용시 비용 발생) 1) Proxycurl 사이트 -> Linkedin API 키를 얻을 수 있는 페이지로 접속 https://nubela.co/proxycurl/linkedin Enrich your B2B data with Proxycurl's premium APIs Enrich LinkedIn profiles, get contact information, get venture funding data, and list jobs with Proxycurl's premium data enrichment APIs. nubela.co 2).. 2024. 1. 2.
[1주차] 강의 시작 : "Hello World" chain 섹션 1: Introduction - LangChain : 대규모 언어 모델과 애플리케이션의 통합을 간소화하는 SDK. - 강의 목표 : building a real world AI based application - project setup : vscode 사용 - 강의 자료 : https://github.com/emarco177/ice_breaker/tree/main GitHub - emarco177/ice_breaker Contribute to emarco177/ice_breaker development by creating an account on GitHub. github.com 섹션 2: The GIST of LangChain - Get started by with your "Hello Wor.. 2023. 12. 26.
728x90