AI-자연어처리

[Langchain] 써보기

옆동네애옹이 2024. 5. 17. 11:41
728x90

대규모 언어 모델을 활용한 혁신적인 프레임워크

대규모 언어 모델(LLM)을 활용하여 애플리케이션과 파이프라인을 신속하게 구축할 수 있는 플랫폼의 필요성  - 개발자들이 챗봇, 질의응답 시스템, 자동 요약 등 다양한 LLM 애플리케이션을 쉽게 개발할 수 있도록 지원하는 프레임워크

 

[ Langchain framework 구성 ]

 LLM 애플리케이션 개발에 도움이 되는 여러 구성 요소로 이루어져 있습니다.

  1. 랭체인 라이브러리(LangChain Libraries): 파이썬과 자바스크립트 라이브러리를 포함하며, 다양한 컴포넌트의 인터페이스와 통합, 이 컴포넌트들을 체인과 에이전트로 결합할 수 있는 기본 런타임, 그리고 체인과 에이전트의 사용 가능한 구현이 가능합니다.
  2. 랭체인 템플릿(LangChain Templates): 다양한 작업을 위한 쉽게 배포할 수 있는 참조 아키텍처 모음입니다. 이 템플릿은 개발자들이 특정 작업에 맞춰 빠르게 애플리케이션을 구축할 수 있도록 돕습니다.
  3. 랭서브(LangServe): 랭체인 체인을 REST API로 배포할 수 있게 하는 라이브러리입니다. 이를 통해 개발자들은 자신의 애플리케이션을 외부 시스템과 쉽게 통합할 수 있습니다.
  4. 랭스미스(LangSmith): 개발자 플랫폼으로, LLM 프레임워크에서 구축된 체인을 디버깅, 테스트, 평가, 모니터링할 수 있으며, 랭체인과의 원활한 통합을 지원합니다.

, OpenAI 인증키 등을 환경변수로 등록해 두면 안전한게 사용할 수 있습니다.

 

LLM 체인(LLMChain) 만들기

기본 LLM 체인 (Prompt + LLM)

용자의 입력(프롬프트)을 받아 LLM을 통해 적절한 응답이나 결과를 생성하는 구조

1. 기본 LLM 체인의 구성 요소

  1. 프롬프트(Prompt): 사용자 또는 시스템에서 제공하는 입력으로, LLM에게 특정 작업을 수행하도록 요청하는 지시문입니다. 프롬프트는 질문, 명령, 문장 시작 부분 등 다양한 형태를 취할 수 있으며, LLM의 응답을 유도하는 데 중요한 역할을 합니다.
  2. LLM(Large Language Model): GPT, Gemini 등 대규모 언어 모델로, 대량의 텍스트 데이터에서 학습하여 언어를 이해하고 생성할 수 있는 인공지능 시스템입니다. LLM은 프롬프트를 바탕으로 적절한 응답을 생성하거나, 주어진 작업을 수행하는 데 사용됩니다.

 

2. 일반적인 작동 방식

  1. 프롬프트 생성: 사용자의 요구 사항이나 특정 작업을 정의하는 프롬프트를 생성합니다. 이 프롬프트는 LLM에게 전달되기 전에, 작업의 목적과 맥락을 명확히 전달하기 위해 최적화될 수 있습니다.
  2. LLM 처리: LLM은 제공된 프롬프트를 분석하고, 학습된 지식을 바탕으로 적절한 응답을 생성합니다. 이 과정에서 LLM은 내부적으로 다양한 언어 패턴과 내외부 지식을 활용하여, 요청된 작업을 수행하거나 정보를 제공합니다.
  3. 응답 반환: LLM에 의해 생성된 응답은 최종 사용자에게 필요한 형태로 변환되어 제공됩니다. 이 응답은 직접적인 답변, 생성된 텍스트, 요약된 정보 등 다양한 형태를 취할 수 있습니다.

 

## Anaconda prompt 내에서 놀다가, API Key를 환경변수로 직접 세팅하는 방법에 대하여 ->

로컬에서 사용할 시에는 환경변수 GUI로 설정했는데, CLI 상에서 어떻게 작성하는지??

 

conda env config vars 명령어를 사용하는 방법과, 직접 환경 파일을 수정하는 방법

1. conda env config vars: 특정 가상환경 내에서만 유효한 환경변수를 설정할 때 유용

2. 환경 파일 수정하기

가상환경 설정 파일을 직접 수정하여 환경변수를 설정하는 방법도 있습니다. 이 방법은 보다 복잡한 설정을 할 때 유용합니다.

 

 

728x90