본문 바로가기

전체 글

[LangChain] 랭체인의 Components(구성요소) 1. 랭체인의 ComponentsLangChain은 LLM으로 구축하는 데 유용한 다양한 구성 요소에 대해 확장 가능한 표준 인터페이스와 외부 통합을 제공합니다.일부 구성 요소는 LangChain이 구현하고, 일부 구성 요소는 타사 통합에 의존하며, 다른 구성 요소는 혼합되어 있습니다.  2. 랭체인 Componets 종류Chat modelsLLMsMessagesPrompt templatesExmple selectorsOutput parsersChat historyDocumentsDocument LoadersText splittersEmbedding modelsVector storesRetrieversToolsToolkitsAgentsCallbacks 더보기
[LangChain] 랭체인 표현 언어(LCEL) 1. 랭체인 표헌 언어(LangChain Expression Language)랭체인 표현 언어(LCEL)는 랭체인 구성요소를 체인화하는 선언적 방법LCEL은 가장 간단한 "프롬프트 + LLM" 체인부터, 가장 복잡한 체인까지 코드 변경 없이 프로토타입을 프로덕션에 넣을 수 있도록 설계되었습니다. 2. LCEL을 사용해야 하는 이유1) 최고 수준의 스트리밍 지원LCEL로 체인을 구축하면 첫 번째 토큰에 도달하는 시간(첫 번째 출력 청크가 나올 때까지 경과된 시간)을 최대한 단축할 수 있습니다.일부 체인의 경우 이는 예를 들어 LLM에서 스트리밍 출력 파서로 토큰을 바로 스트리밍하고, LLM 공급자가 원시 토큰을 출력하는 것과 동일한 속도로 파싱된 증분 출력 청크를 다시 받는다는 것을 의미합니다.2) 비동기.. 더보기
[LangChain] 랭체인이란? 1. 랭체인(LangChain)LLM을 사용하여 애플리케이션 생성을 단순화하도록 설계된 언어 모델 통합 프레임워크개발: LangChain: 오픈소스 빌딩 블록 및 구성 요소를 사용하여 애플리케이션 구축생산: LangSmith: 체인 검사, 모니터링 및 평가, 지속적인 최적화와 배포배포: LangServer: 모든 체인을 API로 전환복잡한 작업을 단일 LLM(Lang)으로 해결하기보다 이를 연결(chain)함으로서 복잡하고 어려운 작업을 돕는 프레임 워크사용자가 요구하는 방향에 따라 다양한 모델을 사용하게됨(중개자 역할이라고 볼 수 있음)  2. 랭체인(LangChain)의 구성랭체인은 다음과 같은 오픈 소스 라이브러리로 구성됨 1. LangChain오픈소스 빌딩 블록 및 구성 요소를 사용하여 애플리케이.. 더보기
Builder 패턴을 사용하여 데이터 넣기 vs Repository에서 데이터 조회하여 리스트에 넣기 /* 프로젝트 상세 조회 */ @Override @Transactional public Response getProject(Map headers, ProjectGetRequestDto projectGetRequestDto) { validateUser(headers); Project project = validateProjectAndAuth(headers, Long.valueOf(projectGetRequestDto.getBody().getProjectId())); GetProjectResponseDto getProjectResponseDto = GetProjectResponseDto.builder() .projectInfo(.. 더보기
[Python] 파이썬 프로젝트에서 가상환경 파이썬 프로젝트에서 가상환경을 만드는 것은 필수는 아니지만 강력히 권장되는 관례이다. 1. 의존성 관리각 프로젝트마다 필요한 패키지와 라이브러리가 다를 수 있으므로 프로젝트마다 독립적인 환경을 만들어 서로 다른 프로젝트의 패키지 충돌방지2. 프로젝트 재현성특정 버전의 라이브러리를 설치하여 프로젝트가 특정 환경에서 정확하게 작동하도록 할 수 있어서 나중에 프로젝트를 재현하거나 배포할 때 도움이 됨 3. 시스템 전역 환경 보호가상환경을 사용하지 않으면 시스템 전역에 설치하게 되는데, 이는 다른 프로젝트나 시스템의 다른 응용 프로그램과 충돌을 일으킬 수 있기 때문에 가상환경을 사용하여 이러한 문제를 피할 수 있음 4. 편리한 관리'pip' 과 같은 패키지 관리 도구와 가상환경 도구('venv', 'virtua.. 더보기
[Nginx] 엔진엑스 요청 제한 1. Nginx의 요청 제한Nginx의 기능 중 하나인 요청 제한은 사용자가 주어진 시간 동안 받을 수 있는 HTTP 요청의 양을 제한할 수 있는 기능  2. 사용 이유속도 제한은 무차별 암호 대입 공격을 늦추는 것과 같은 보안 목적으로 사용할 수 있음들어오는 요청 속도를 실제 사용자에게 일반적인 값으로 제한하고 로깅을 통해 대상 URL을 식별하여 DDos공격으로부터 보호할 수 있음  3. 기본 요청 제한 구성(configuration)보통 default.conf 파일 내에 기재기본 요청 제한을 구성하는 limit_req_zone, limit_req 지시문을 이용하여 구성 1) limit_req_zone요청 제한을 위한 매개변수 정의http 블록에 정의되어 여러 컨텍스트에서 사용(여기서 말하는 컨텍스트는.. 더보기
[Error] Failed to validate connection org.mariadb.jdbc.Connection@* ((conn=*) Connection.setNetworkTimeout cannot be called on a closed connection). Possibly consider using a shorter maxLifetime value. 에러 로그[2024-05-20 00:27:15:244642169] INFO 1 --- [nio-8080-exec-1] [221.133.55.106] c.d.e.common.aop.LoggingAspect : [IP: 221.133.55.106] Request Start - Method: ProjectController.createProject[2024-05-20 00:27:20:244647175] WARN 1 --- [nio-8080-exec-1] [221.133.55.106] com.zaxxer.hikari.pool.PoolBase : HikariPool-1 - Failed to validate connection org.mariadb.jdbc.Connectio.. 더보기
[Springboot] hibernateSQL 파라미터 값 로그로 확인하기 hibernate 버전확인 필요 6버전 이하 설정방법 application.properties 설정 추가 또는 logback-spring.xml 설정 추가(logback-spring.xml에는 더 상세한 설정이 가능하다고하는데 여기서는 기본 설정만 추가) 1. application.properties 설정 추가# application.properties# Hibernate SQL 쿼리 로그를 DEBUG 레벨로 설정logging.level.org.hibernate.SQL=DEBUG # Hibernate SQL 파라미터 로그를 TRACE 레벨로 설정logging.level.org.hibernate.type.descriptor.sql.BasicBinder=TRACE 2. logback-spring.xml 설.. 더보기