HEROJOON 블로그(히로블)

LangFlow 시작하기 본문

LLM

LangFlow 시작하기

herojoon 2024. 10. 31. 10:24
반응형

목표

LangFlow을 간단히 사용하며 Prompt 개념 익히기
 

LangFlow란

● LangFlow란?
LangChain 애플리케이션을 쉽게 개발할 수 있는 시각화 프레임워크입니다.
쉽게 얘기하면 외부 언어 모델을 이용하여 시각적인 GUI를 가지고 AI 애플리케이션을 쉽게 개발할 수 있도록 해주는 프레임워크입니다. API도 지원하여 커스터마이징이나 통합, 데이터 처리 분석 등 다양하게 사용 가능합니다.
 
LangChain이란?
대형 언어 모델(LLM)을 기반으로 다양한 데이터와 Integration으로 애플리케이션을 쉽게 개발할 수 있도록 지원하는 프레임워크입니다.
 
● LangFlow의 장점

  • 사용자 친화적인 인터페이스: 직관적인 시각적 인터페이스를 제공하여 사용자들이 복잡한 설정 없이도 쉽게 프로세스를 설계하고 관리할 수 있습니다.
  • 모듈화된 구성 요소: 다양한 구성 요소(프롬프트, API 호출 등)를 모듈화하여 제공하므로 사용자가 필요에 따라 쉽게 조합하고 재사용할 수 있습니다. 이는 개발 시간을 단축하고 유연성을 높입니다.
  • RAG 기능: LangFlow는 RAG 기능을 통해 사용자가 외부 데이터를 활용하여 모델의 응답을 향상시키는 데 도움을 줍니다. 
  • 실시간 테스트와 디버깅: Playground와 같은 기능을 통해 사용자는 실시간으로 프롬프트와 모델의 응답을 테스트하고 조정할 수 있어, 최적의 결과를 쉽게 도출할 수 있습니다.
  • 다양한 모델 지원: 여러 언어 모델과 통합이 가능하여 사용자가 필요에 맞는 모델을 선택할 수 있습니다.

 

할 것 요약

1. LangFlow 회원가입 or 로그인
2. LangFlow 시작하기
3. LangFlow의 [Basic Prompting (Hello, World)] 템플릿 살펴보기
 

해보기

1. LangFlow 회원가입 or 로그인

1-1. 아래 LangFlow 웹사이트로 이동합니다.
- LangFlow 웹사이트 URL: https://www.langflow.org/

Langflow - Create your AI App!

LangFlow is a GUI for LangChain, designed with react-flow to provide an effortless way to experiment and prototype flows with drag-and-drop components and a chat box.

www.langflow.org

 
1-2. [Sign Up for Free]를 클릭하여 회원가입 or 로그인 화면으로 이동합니다.

 
1-3. 회원가입 or 로그인 합니다.

  • 신규 회원은 아래 원하는 방식으로 회원가입 하시면 됩니다.
  • 기존 회원은 [Sign In] 하시면 됩니다.

2. LangFlow 시작하기

2-1. LangFlow를 사용해보기 위해서 [New Project]를 클릭합니다.

 
2-2. 아래 LangFlow에서 제공하는 템플릿 중 [Basic Prompting (Hello, World)]를 클릭합니다.

해당 템플릿은 가장 기본적인 Prompt 예제입니다.
 
해당 템플릿에서는 OpenAI 언어모델을 이용하여 입력 사항에 대한 결과를 도출합니다.
OpenAI를 사용하기 때문에 사전에 OepnAI API Key를 발급받으셔야하며 OpenAI API Key는 유료입니다.
 
- OpenAI API Key 발급 방법
https://herojoon-dev.tistory.com/247

OpenAI의 API Key 발급하기 & 테스트 하기

목표OpenAI의 API Key를 발급해보고 발급된 API Key를 이용하여 간단한 테스트를 진행합니다. OpenAI란● OpenAI란?OpenAI는 인공지능과 머신러닝 모델, 특히 언어 모델(예: GPT)을 개발하여 사용자가

herojoon-dev.tistory.com

 
2-3. 아래와 같은 화면이 나오게 됩니다.
[Chat Input] -> [Prompt] -> [OpenAI] -> [Chat Output] 으로 연결이 되어 있죠?
이것은 LangFlow를 구현하는 각각의 컴포넌트인데요. 어떤 것인지 간단히 살펴볼게요.
 
<컴포넌트 설명>

  • Chat Input: 이 구성 요소는 채팅에서 사용자 입력을 수집합니다.
  • Prompt: 프롬프트는 언어 모델의 입력 역할을 하며, 프롬프트 템플릿을 사용하여 매개변수화 할 수 있고 작업의 방향성을 지시할 수 있습니다.
  • OpenAI: 결과 생성을 위한 언어 모델입니다. 언어 모델은 다양하지만 예제에서는 OpenAI를 사용하고 있습니다.
  • Chat Output: 이 구성 요소는 채팅에 메시지를 보냅니다.

 
2-4. 위 컴포넌트 중 [OpenAI]라고 쓰여진 언어 모델 컴포넌트에 OpenAI API Key를 등록해주어야 합니다.
등록하지 않으면 오류가 발생합니다.
[OpenAI Api Key]의 [지구본 모양 아이콘]을 클릭합니다.

 
2-5. [Add New Variable]을 클릭합니다. 새로운 변수 추가라는 뜻입니다.

 
2-6. 아래 내용을 입력해줍니다.

  • Variable Name: 변수를 구분하기 위한 이름
  • Type (optional): API Key 값이기 때문에 보안을 위해 Credential 타입으로 지정하였습니다.
  • Value: 발급받은 OpenAI API Key를 입력합니다.
  • Apply To Fields (optional): OpenAI API Key를 선택해줍니다. 검색으로 찾으면 더욱 빠르게 찾을 수 있습니다.

 
2-7. [Save Variable]을 클릭하여 OpenAI의 API Key를 저장해줍니다.

 
2-8. OpenAI API Key가 정상적으로 등록되었다면 아래와 같이 저장된 변수 값이 보여집니다. 선택해줍니다.

 
이렇게까지가 [Basic Prompting (Hello, World)]의 사용 준비과정이었습니다.
이제 테스트를 진행해보겠습니다.
 
2-9. 오른쪽 하단에 있는 [Playground]를 클릭하여 실행시켜줍니다.
<Playground란? 이름이 Playground인 이유?>
Playground는 사용자가 만든 프롬프트 흐름을 실시간으로 테스트하고 디버그할 수 있는 인터페이스라고 합니다.
해당 버튼 이름이 왜 Playground일까 궁금했었는데 사용자가 다양한 설정을 실험하며 모델의 응답을 실시간으로 확인할 수 있는 테스트 공간을 제공한다는 의미로 지어진게 아닐까 싶습니다.
Playground의 사전적 의미는 운동장, 놀이터이므로 실컷 실험해라 하는 직관적 이름으로 지어진게 아닐까요.

 
2-10. [Playground]를 클릭하여 테스트 공간으로 이동했습니다.
채팅창에 값을 입력하면 OpenAI를 통해 응답이 출력됩니다.
그런데 눈치채셨나요?
채팅창 응답 내용이 해적과 같이 익살스럽죠?
왜 그렇게 출력되는 것일까요? 그 이유는 아래에서 살펴보겠습니다.

 

3. LangFlow의 [Basic Prompting (Hello, World)] 템플릿 살펴보기

3-1. 각 컴포넌트들은 아래와 같은 역할을 합니다.

  • Chat Input: 채팅 입력값을 user_input 매개변수로 전달합니다.
  • Prompt: 매개변수 주입 값과 프롬프트의 지시 형식을 매핑하여 OpenAI로 입력합니다.
  • OpenAI: OpenAI LLM을 사용하여 텍스트를 생성합니다.
  • Chat Output: OpenAI를 통해 생성된 결과 텍스트를 출력합니다.

 
3-2. 위에서 채팅창 응답 내용이 해적과 같이 익살스럽게 작성된 이유는 Prompt에서 지시했기 때문인데요.
Prompt를 살펴볼까요?
Prompt 컴포넌트의 [Template]를 클릭합니다.

 
Prompt는 언어 모델이 사용자 입력에 대한 응답을 생성할 때 필요한 지침을 제공하는 역할을 합니다.
현재 정의된 Prompt 내용을 살펴보면 Answer the user as if you were a pirate.는 사용자에게 해적처럼 응답해달라는 지시어입니다.
이 프롬프트에서 {user_input}은 사용자가 입력한 질문이나 텍스트를 나타내며, 모델은 이를 바탕으로 Answer 부분에 공식적인 어조로 답변을 작성하게 됩니다.

 
3-3. 그럼 해적처럼 응답해달라는 부분을 다르게 변환하면 어떻게 될까요?
Answer the user as if you were a pirate. 부분을
Please respond to the user with an official tone. "공식적인 어조로 사용자에게 응답해주세요."로 바꿔보겠습니다.
 
3-4. 아래처럼 내용 변경 후 [Check & Save]를 클릭해줍니다.

 
3-5. 다시 [Playground]를 클릭하여 채팅창에 입력값을 작성해보겠습니다.

 
3-6. 채팅창에 위에서 테스트했던 질문을 동일하게 입력해줍니다.
해적의 익살스런 말투가 정중한 어조로 바뀌어 응답된 것을 확인할 수 있습니다.
이것이 Prompt의 역할입니다.
언어 모델에서 원하는 결과를 도출하기 위해 지침을 지정하고 가이드하는 역할을 한다는 것을 알 수 있게 되었습니다. 

 
 
Prompt 내용을 바꿔가면서 다시 테스트!

 
끝.
 
오늘은 간단한 LangFlow 사용법을 알아보았습니다.
다음에는 LangFlow의 컴포넌트를 더욱 다양한 시나리오로 사용하는 포스팅을 진행할까 합니다.
감사합니다.
 

참고

- Input & Output 컴포넌트 https://docs.langflow.org/components-io

Inputs & Outputs | Langflow Documentation

This category of components defines where data enters and exits your flow. They dynamically alter the Playground and can be renamed to facilitate building and maintaining your flows.

docs.langflow.org

 
- Prompt 컴포넌트: https://docs.langflow.org/components-prompts

Prompts | Langflow Documentation

A prompt serves as the input to a language model, comprising multiple components that can be parameterized using prompt templates.

docs.langflow.org

 
- 모델 컴포넌트: https://docs.langflow.org/components-models#openai

Models | Langflow Documentation

Model components are used to generate text using language models. These components can be used to generate text for various tasks such as chatbots, content generation, and more.

docs.langflow.org

 
- Playground: https://docs.langflow.org/workspace-playground

Playground | Langflow Documentation

The Playground is a dynamic interface designed for real-time interaction with AIs, allowing users to chat, access memories and monitor inputs and outputs. Here, users can directly prototype and their models, making adjustments and observing different out

docs.langflow.org

 

반응형

'LLM' 카테고리의 다른 글

OpenAI의 API Key 발급하기 & 테스트 하기  (2) 2024.10.31
Comments