반응형

전체 글 227

(7) Langchain에서 memory를 사용해보자(conversation chain)

LangChain에서 memory는 체인 실행 사이에 이전 상황을 기억하여 애플리케이션 상태를 유지하는데 사용됩니다. 대부분의 LLM 애플리케이션에는 대화형 인터페이스가 있습니다. 메모리는 이전 대화에 소개된 정보를 참조할 수 있도록 지원합니다. 대화형 시스템은 과거 메시지의 일부에 직접 액세스할 수 있어야 하고 더 복잡한 시스템이라면 지속적으로 이를 업데이트 하며 정보를 유지하는 등의 작업을 수행할 수 있어야 합니다. memory의 종류는 여러가지가 있지만 여기서는 ConversationBufferMemory를 예제로 확인해보겠습니다. (ConversationChain은 default로 ConversationBufferMemory를 사용) 1. chat model 지정 import os import a..

IT/개발 2023.08.07

(6) Langchain에서 agent와 tool을 사용해보자

LangChain에서는 엄청나게 다양한 tool을 연동해서 기능을 구현할 수 있습니다. agent는 체인이 사용할 도구를 선택해서 지원할 수 있도록하며 LLM을 사용하여 원하는 작업을 수행하는 절차를 정의할 수 있습니다. 이때 어떠한 도구를 사용하여 목적을 달성할 것인지를 스스로 판단하여 사용합니다. 사용자는 구현된 tool이 어떠한 동작을 하는지 정확하게 description 해주기만 하면 알아서 가져다가 쓰도록 되어 있습니다. agent가 올바른 tools을 사용할 수 있도록 액세스 권한 지정하고 agent가 tool의 기능과 사용법을 알수 있도록 설명하면 되는 것이지요 여기서는 wikipedia api tool과 llm-math tool 2가지를 이용하여 현재 미국 대통령이 누구인지 알아내고 그의 ..

IT/개발 2023.08.07

(5) Langchain에서 PromptTemplet을 사용하여 번역기, 요약기를 만들어보자

여기서는 PromptTemplete을 이용하는 응용 중 입출력을 미리 정의한 방식대로 동작 시키는 방법을 확인하기 위해서 입력된 문자열을 번역해보고 이를 요약해보는 코드를 간단히 만들어보겠습1니다. 아래 글과 연결된 내용입니다. https://yongeekd01.tistory.com/95 (4) Langchain에서 PromptTemplet을 사용하여 chat 모델을 구동해보자 LangChain에서 PromptTemplete을 사용하는 것은 system role을 주는 방법과 비슷합니다. 다만 사용자의 질문을 입력 변수처럼 정의하여 내부적으로 묶어서 처리할 수 있습니다. App을 사용하기 위한 chat 질 yongeekd01.tistory.com 1. 한글 입력을 영어로 바꿔주는 번역기를 만들어보기 im..

IT/개발 2023.08.07

(4) Langchain에서 PromptTemplet을 사용하여 chat 모델을 구동해보자

LangChain에서 PromptTemplete을 사용하는 것은 system role을 주는 방법과 비슷합니다. 다만 사용자의 질문을 입력 변수처럼 정의하여 내부적으로 묶어서 처리할 수 있습니다. App을 사용하기 위한 chat 질문/응답 구조 설계에 따라 다양하게 응용할 수 있을거라고 생각합니다. 여기서는 LangChain에서 chat 모델을 사용할 때 PromptTemplete을 이용해서 입력 변수를 정의하고 이를 이용하여 시스템 role을 구체화 화는 예제를 만들어 보겠습니다. 여기서도 ChatGPT를 사용하시려면 우선 다음 사이트에서 OpenAI API Key를 먼저 발급 받으셔야 합니다. https://platform.openai.com/account/api-keys OpenAI Platform..

IT/개발 2023.08.07

(3) Langchain을 이용하여 system role을 주고 chat 모델을 구동해보자

ChatGPT를 사용해 보신 분들은 아시겠지만 Prompt를 제어하여 좀더 정확하게 모델의 응답을 조정할 수 있습니다. 소위 "너는 시인이라고 생각하고 다음 문장에 대해서 시를 써줘..." 같은 접근을 이용하는 방법이죠. 물론 문자열을 입력할때 한번에 AI 모델의 역할을 지정하고 응답까지 한꺼번에 넣을 수도 있습니다만 여기서는 LangChain에서 chat 모델을 사용할 때 systemMessage를 이용해서 먼저 role을 정의해 주고 질문에 대답하도록 간단히 구현하는 예제를 만들어 보겠습니다. 여기서도 ChatGPT를 사용하시려면 우선 다음 사이트에서 OpenAI API Key를 먼저 발급 받으셔야 합니다. https://platform.openai.com/account/api-keys OpenAI ..

IT/개발 2023.08.07

(2) Langchain을 이용하여 LLM을 간단히 구동 시켜보자

아주 아주 기초적인 내용으로서 Langchain 라이브러리를 이용하여 OpenAI의 chatGPT 모델을 구동시키고 간단한 질문 대답을 수행하는 코드입니다. 물론 다른 LLM 모델로 갈아끼워서 사용하실 수 있습니다. 다음 사이트에서 LLM모델들에 대해서 설명 하고 있으니 참고하시기 바랍니다. https://python.langchain.com/docs/integrations/llms/ LLMs | 🦜️🔗 Langchain 📄️ NLP Cloud The NLP Cloud serves high performance pre-trained or custom models for NER, sentiment-analysis, classification, summarization, paraphrasing, gramma..

IT/개발 2023.08.04

(1) Langchain이란 무엇인가? 개념과 모듈 구성을 알아보자

1. LangChain 개요 랭체인(LangChain)은 언어 모델을 기반으로 한 애플리케이션을 개발하기 위한 프레임워크이며 언어 모델을 API를 통해 호출하는 것 뿐만 아니라 외부 데이터를 인식하거나 타 시스템과의 상호작용하는 애플리케이션을 개발하고자 하는 요구 사항에서 시작된 오픈소스입니다. 우리가 요즘 엄청나게 사용하는 LLM모델중 하나인 예를 들어 ChatGPT는 수많은 대규모 언어모델의 하나이고 학습한 내용을 기반으로 동작합니다. 그 외에도 수도 없이 많은 LLM 모델들이 많이 개발되어 있지만 상용으로는 chatGPT가 독보적이라고 할수 있습니다. 하지만 더 나은 서비스를 원하는 사용자의 요구사항이 늘어나고 있습니다. - 추가적인 전문 데이터를 더 학습시켜서 특화 시키려는 요구 - 최신 정보를 ..

IT/개발 2023.08.04

파이썬 pip 특정 패키지 버전, 정보 확인 및 업데이트 하기(pip show, pip upgrade)

작업 중에 charset_normalizer 패키지 하나가 문제를 발생 시켰다. ImportError: cannot import name 'COMMON_SAFE_ASCII_CHARACTERS' from 'charset_normalizer.constant' (E:\anaconda3\envs\py39\lib\site-packages\charset_normalizer\constant.py) 버전이 달라지면서 dependancy에 문제가 생긴듯 하다. 해당 패키지의 버전을 확인하고 최신으로 업데이트 해보자. 1. 패키지 버전 확인 pip freeze로 확인하는 경우가 일반적이지만 다음과 같이 나오면 버전이 뭐라는건지 바로 알수가 없다. > pip freeze : charset-normalizer @ file:/..

IT/개발 2023.07.31

GitHub repository를 VSCode와 연동하여 작업 소스 관리하기

여기서는 vscode의 source control extension을 통해서 github에 생성한 repository에 소스를 연동하여 관리하는 방법을 설명한다. (GitHub에 계정을 만드는 절차는 생략) 1. Github에 작업 Repository 생성하기 자신의 계정에 vscode의 현재 소스와 연동할 repository를 생성한다. 여기서는 private로 생성하여 외부 공개가 되지 않도록 한다. sample_test 라는 이름으로 repo를 생성하였다. 생성된 repository의 주소를 확인하고 복사해놓는다. 2. VSCode 작업하기 이제 로컬에서 빈 윈도우를 하나 열고 github에 생성한 repository를 clone 하여 작업 공간을 생성한다. clone으로 빈공간을 만들고 시작하면 ..

IT/개발 2023.07.28

VSCode에서 파이썬 코드를 지정한 Conda 환경으로 실행하기(python interpreter 변경, conda env 변경)

conda를 사용하는 이유가 가상환경 구성이고 여러 개의 env를 설정해놓고 필요한 환경을 그때그때 선택해서 사용하기 위해서 입니다. 코딩 작업을 할 때 terminal에서 직접 작업하는 경우는 거의 없고 vscode나 다른 editor를 사용하고 있을 텐데요. 물론 에디터로 코딩을 하고 터미널 창에서 환경을 변경한 후 수동으로 실행을 시키면 되겠지만 디버깅환경을 사용하기 위해서는 F5를 눌러 디버깅모드로 실행해야 하겠죠? 하지만 vscode에서 F5로 실행을 시키면 항상 (base) 환경에서 실행이 되어 버리기 때문에 환경을 지정하는 방법을 찾아보았습니다. 1. 환경 확인 하기 conda env list 저 같은 경우는 5개가 나오네요. vscode로 새로운 파일을 하나 생성해서 print 하나만 넣어..

IT/개발 2023.07.28
반응형