HEROJOON 블로그(히로블)
LangFlow 시작하기 본문
목표
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/
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
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
- Prompt 컴포넌트: https://docs.langflow.org/components-prompts
- 모델 컴포넌트: https://docs.langflow.org/components-models#openai
- Playground: https://docs.langflow.org/workspace-playground
'LLM' 카테고리의 다른 글
OpenAI의 API Key 발급하기 & 테스트 하기 (2) | 2024.10.31 |
---|