본문 바로가기
LLM langchain - OutputParser and LCEL LangChain에서 OutputParser와 LCEL(Yogis)는 주로 언어 모델을 처리하고 결과를 더 쉽게 다룰 수 있게 돕는 도구들입니다. 아주 쉽게 설명하자면, 이들은 우리가 원하는 형태로 출력이나 결과를 처리하고 정리하는 역할을 합니다.OutputParserOutputParser는 언어 모델이 생성한 출력 데이터를 우리가 원하는 형태로 바꾸는 도구입니다. 예를 들어, 모델이 생성한 텍스트가 너무 길거나 복잡하면, 우리가 필요한 정보만 뽑아서 쓸 수 있게 도와줍니다. 우리가 "오늘 날씨 어때?"라고 물어봤을 때, 모델이 이렇게 대답할 수 있습니다:오늘은 맑고 기온은 22도입니다. 바람은 약하게 불고 있습니다. from langchain.output_parsers import OutputParse.. 2025. 1. 19.
LLM - LangChain에서 Prompt Template을 어떻게 활용하고 구성할 수 있는지 들어가며최근 생성형 AI 서비스의 대두로, LLM(Large Language Model)을 활용한 애플리케이션이 폭발적으로 증가하고 있습니다. 사용자는 단순히 "이 질문에 답해줘"가 아닌, 좀 더 구체적이고 세심한 "프롬프트(prompt)"를 통해 원하는 정보를 얻어내곤 합니다.그렇다면 이런 프롬프트를 체계적으로 다루고, 상황에 맞추어 동적으로 생성하는 방법은 없을까요? 이러한 문제를 해결하기 위해, LangChain은 다양한 구성 요소와 모듈을 제공하며 특히, PromptTemplate은 LLM과의 상호작용에 핵심적인 역할을 합니다.이번 포스팅에서는 LangChain에서 제공하는 PromptTemplate을 중점적으로 살펴보며, 어떻게 정의하고, 어떻게 사용하는지를 소개해드리려 합니다.PromptTem.. 2025. 1. 15.
상관관계 분석에 대한 전체적인 정리 2 - 각각 예시 코드와 차트로 알아보자 (피어슨 , 스피어만, 켄달 타우 - 연속형 데이터끼리 ) 피어슨 상관계수  Pearson Correlation Coefficient# 피어슨 상관계수 분석에 대한 예시 데이터를 생성하고 분석합니다.# 다양한 예시 데이터를 생성np.random.seed(42)data1 = {'X': np.random.normal(0, 1, 100), 'Y': np.random.normal(0, 1, 100)}data2 = {'X': np.random.rand(100), 'Y': np.random.rand(100)}data3 = {'X': np.linspace(0, 100, 100), 'Y': np.linspace(0, 100, 100) + np.random.normal(0, 10, 100)}data4 = {'X': np.random.normal(0, 1, 100), 'Y': n.. 2024. 8. 12.
상관관계 분석에 대한 전체적인 정리 - 이제 피어슨 상관계수 말고 다른것도 사용해보자 상관관계 분석은 두 변수 간의 관계를 파악하는 중요한 방법입니다. 상관관계는 두 변수 간의 연관성 정도를 나타내며, 데이터의 성격에 따라 다양한 상관계수를 사용할 수 있습니다. 아래에서는 데이터 타입별로 주요 상관관계 분석 방법과 그 특징에 대해 설명합니다.1. 연속형 데이터연속형 데이터는 실수로 표현될 수 있으며, 두 변수 모두 연속형일 때 사용할 수 있는 상관계수는 다음과 같습니다.a. 피어슨 상관계수 (Pearson Correlation Coefficient)정의: 두 연속형 변수 간의 선형적 관계를 측정합니다.범위: -1에서 1 사이의 값을 가지며, 1은 완전한 양의 선형 관계, -1은 완전한 음의 선형 관계, 0은 선형 관계가 없음을 의미합니다.가정: 데이터는 정규분포를 따라야 하며, 두 변수 .. 2024. 8. 12.
jar 파일 zip 과 같음JAR 파일이란?JAR(Java ARchive) 파일은 Java에서 애플리케이션을 배포할 때 사용하는 파일 포맷입니다. 여러 개의 Java 클래스 파일과 관련된 메타데이터 및 리소스(이미지, 텍스트 파일 등)를 하나의 파일로 묶어주는 역할을 합니다. 이를 통해 애플리케이션을 효율적으로 배포하고 관리할 수 있습니다.JAR(Java ARchive) 파일 형식은 Java 클래스 파일, 관련 메타데이터 및 리소스를 하나의 파일로 묶는 포맷입니다. 이 파일은 일반적으로 .jar 확장자를 가지며, Java 기반 응용 프로그램이나 라이브러리를 배포할 때 사용됩니다. JAR 파일은 내부적으로 ZIP 파일 포맷을 기반으로 하기 때문에, 압축과 해제가 가능합니다.JAR 파일의 주요 구성 요소매니페스트 파일 .. 2024. 8. 7.
JWT (JSON Web Token)란? JWT (JSON Web Token)란?*JWT (JSON Web Token)**는 인터넷 표준인 RFC 7519에 정의된, JSON 객체를 사용해서 토큰 자체에 정보들을 저장하는 Web 토큰입니다. JWT는 특히 웹사이트와 서버 간의 안전한 정보 교환을 위해 설계되었으며, 매우 간결하고 독립적입니다. 이 특성 덕분에 주로 분산된 시스템 환경에서 인증 및 정보 교환에 널리 사용됩니다.JWT의 구조JWT는 세 부분으로 나뉩니다: 헤더(Header), 페이로드(Payload), 서명(Signature). 이 세 부분은 각각 Base64로 인코딩되어 . (점)으로 구분되어 있는 문자열로 표현됩니다.1. 헤더 (Header)헤더는 토큰의 타입 (주로 "JWT")과 함께 사용하는 해시 알고리즘 (예: HMAC S.. 2024. 8. 6.
데이터 저장 형식 TextInputFormat/ Parquet 관련해서 정리 문제📌 Hue 에서 컬럼수정시 >> 테이블 스키마 구조가 바뀌면 backfill 해줘야 하는 현상 아니면 Mismatch 오류가 뜸원인테이블 빌드시 parquet 가 아닌 경우 (TextInputFormat) 에는 컬럼 순서를 지켜줘야 함영향을 받는 형식'org.apache.hadoop.mapred.**TextInputFormat**'그렇다면 ? >>빌드할때 PARQUET 형식으로 빌드해야함external table 인데 spark.sql.sources.schema 달리면 안됨spark.sql.... property 를 모두 제거하거나spark.sql.sources.schema json 에 새로 추가하는 컬럼을 추가ROW FORMAT SERDEROW FORMAT SERDE 'org.apache.hado.. 2024. 8. 6.
[SQL] Presto SQL 관련 유용한 꿀팁들 Array형태로 이루어진 칼럼에 like절cardinality(filter(Col, x -> x like 'a')) > 0Json 형태로 이루어진 칼럼을 scalar 형태로 추출json_extract_scalar(Col,'$.A')string 값 json parsing 하기with a as ( select '{\\"popup_title\\":\\"MAX_LEVEL\\",\\"max_invitation\\":2,\\"current_invitation\\":1}' as col-- select '{popup_title: "MAX_LEVEL", max_invitation: 2, current_invitation: 1}' as col)-- "{\\"popup_title\\":\\"MAX_LEVEL\\",\\"m.. 2024. 8. 6.
동적으로 쿼리를 생성한다는 것 / 동적할당 정적할당 동적 쿼리생성 동적으로 쿼리를 생성한다는 것은 프로그램 실행 시간에 데이터베이스 쿼리를 프로그래밍적으로 조합하고 수정하여 사용할 수 있게 만든다는 의미입니다. 이를 통해 다양한 변수나 조건에 따라 유연하게 쿼리를 변경하고 적용할 수 있습니다. 예를 들어, 사용자 입력, 설정 파일, 혹은 프로그램의 다른 부분에서 정의된 값에 따라 SQL 문을 조정할 수 있습니다. 이 방법은 특히 날짜, 사용자 ID, 설정된 데이터베이스 이름과 같이 변할 수 있는 데이터에 대해 쿼리를 실행할 때 유용합니다. 여러분이 제시한 코드의 일부를 살펴보면: kst_date = '2024-04-22' database = 'contents' query = "SELECT * FROM {{ config.database.hive.get_co.. 2024. 4. 23.
Airflow에서 데코레이터(decorator)를 사용하는 이유 사용이유 코드를 간결하게 하고, 재사용성을 높이며, 함수나 메소드에 추가 기능을 손쉽게 적용하기 위해서입니다. Airflow에서 특히 자주 사용되는 데코레이터는 @task 데코레이터인데, 이는 몇 가지 중요한 이유로 사용됩니다 코드의 간결성: @task 데코레이터를 사용하면, 일반 Python 함수를 Airflow 태스크로 변환할 수 있습니다. 이는 DAG 내에서 태스크를 정의할 때 보다 간결하고 명확한 코드를 작성할 수 있도록 도와줍니다. 재사용성 증가: 함수를 사용하여 태스크 로직을 정의하면, 이 함수를 다른 DAG에서도 재사용할 수 있습니다. 데코레이터는 이런 함수들을 태스크로 쉽게 변환해주므로 코드 재사용성이 높아집니다. 추가 기능의 적용: Airflow의 @task 데코레이터는 태스크의 실행 방.. 2024. 4. 19.
반응형