[8기 랭체인방] 1주차 과제

과제의 의도

LangChain - ChatGpt

물론이죠, 어린이도 이해하기 쉽게 랭체인에 대해 설명해드릴게요!

랭체인은 마치 여러분이 가진 크고 똑똑한 로봇 친구와 같아요. 이 로봇 친구는 말과 글을 이해하는 데 아주 뛰어나고, 여러분이 좋아하는 책에 나오는 이야기처럼 다양한 지식을 가지고 있어요. 하지만 이 로봇 친구는 너무 많은 것을 알고 있어서, 때로는 무슨 말을 하거나 무엇을 해야 할지 결정하기 어려워해요. 여기서 랭체인이 도움을 줘요!

랭체인은 이 로봇 친구를 위한 특별한 안내서와 같아요. 로봇이 그 지식을 최선의 방법으로 사용할 수 있도록 도와줘요. 예를 들어, 여러분이 로봇에게 이야기를 해달라고 하면, 랭체인은 로봇이 멋진 이야기를 만들 수 있도록 적절한 단어와 아이디어를 선택하는 데 도움을 줘요. 혹은 숙제를 도와달라고 하면, 랭체인은 로봇이 최고의 답변을 줄 수 있도록 가이드해줘요.

랭체인은 2022년 10월에 해리슨 체이스라는 사람에 의해 만들어졌어요. 이후로 많은 사람들의 도움을 받아 더욱 발전하게 되었죠. 랭체인은 말하는 로봇(챗봇이라고 불러요)을 만드는 데 도움을 주거나, 긴 이야기를 짧게 요약하는 일, 심지어 컴퓨터가 사용하는 언어인 코드를 이해하고 작성하는 데에도 사용될 수 있어요.

2023년 3월 기준으로 랭체인은 아마존, 구글, 마이크로소프트와 같은 다양한 도구와 시스템과 함께 작동할 수 있어요. 뉴스, 영화, 날씨에 대한 정보를 찾거나, 구글 드라이브에서 문서, 스프레드시트, 프레젠테이션을 읽고 쓸 수도 있어요. 랭체인은 인터넷을 검색하고, 코드에서 오류를 찾아 수정하며, 많은 다른 작업을 도와줄 수 있죠.

그래서 랭체인은 로봇 친구가 지식을 최선의 방법으로 활용할 수 있도록 도와주는 똑똑한 안내서라고 할 수 있어요!


What Is LangChain and How to Use It: A Guide - ChatGpt

랭체인은 인공지능(AI)과 기계학습 분야에서 활동하는 소프트웨어 개발자들을 위한 오픈 소스 프레임워크입니다. 이 프레임워크는 대규모 언어 모델(Large Language Models, LLMs)을 다양한 외부 구성 요소와 결합하여 AI 기반 애플리케이션을 개발할 수 있도록 해줍니다.

  1. 프레임워크 개요: 랭체인은 생성 AI 애플리케이션 인터페이스를 만드는 과정을 단순화합니다. 이는 대용량 데이터를 쉽게 접근할 수 있도록 구성하고 AI 모델을 최신 데이터 소스에 연결하는 기능을 포함합니다.

  2. 모듈 구성: 랭체인은 여러 모듈로 구성되어 있으며, 이 모듈들은 NLP 애플리케이션의 효율성을 향상시킵니다. 여기에는 모델 상호 작용, 데이터 연결 및 검색, 여러 LLM을 연결하는 체인, 문제 해결을 위한 에이전트, 사용자와의 상호작용 컨텍스트를 기억하는 메모리 모듈이 포함됩니다.

  3. 통합 및 애플리케이션: 랭체인은 LLM 공급자 및 외부 데이터 소스와의 통합을 통해 애플리케이션을 구축합니다. 이를 통해 텍스트 처리 및 응답 생성을 위한 챗봇이나 질문-답변 시스템을 생성할 수 있습니다.

  4. 프롬프트 엔지니어링 및 구현: 랭체인은 LLM과 작업할 때 중요한 프롬프트 엔지니어링을 용이하게 합니다. 구조화된 텍스트 입력을 생성하는 프롬프트 템플릿 기능을 제공하여 LLM 응답을 안내합니다. 개발자는 Python을 사용하여 랭체인을 설치하고 OpenAI와 같은 LLM과 통합하여 맞춤형 애플리케이션을 개발할 수 있습니다.

  5. 개발 과정: 랭체인을 사용한 애플리케이션 개발 과정에는 애플리케이션 사용 사례 정의, 기능 구축 및 사용자 요구 사항에 맞게 기능을 커스터마이즈하는 과정, LLM의 미세 조정, 데이터 정제 및 정기적인 테스트를 통한 애플리케이션의 원활한 운영 보장 등이 포함됩니다.

AI 엔지니어가 Colab을 사용하여 이러한 기능을 활용한다면, 랭체인은 복잡한 AI 애플리케이션 개발에 있어 강력한 도구가 될 수 있습니다. 그것의 모듈식 설계, 통합 능력, 프롬프트 엔지니어링 기능은 최신 언어 모델과 NLP 기술을 활용하는 맞춤형 AI 솔루션을 만드는 데 다양한 플랫폼을 제공합니다.


아이디어 발표

각 기업별 투자관련 정보를 검색해서, 해당종목에 대해서 문의하면 현시점에서의 투자에 도움을 줄 수 있도록하는 챗봇을 만들고 싶습니다

랭체인을 이용하여 투자 관련 정보를 제공하는 챗봇을 만들기 위한 파이썬 코드 작성 과정은 다음과 같습니다: - ChatGpt

  1. 환경 설정:

    • LangChain과 Pinecone(임베딩 처리용)을 포함한 필요한 라이브러리 설치.

    pythonCopy code
    pip install python-dotenv==1.0.0
    pip install langchain==0.0.137
    pip install pinecone-client==2.2.1
    
  2. LLM 래퍼 생성:

    • OpenAI의 GPT 모델을 이용하여 LLM과의 상호작용을 위한 래퍼를 인스턴스화.

    pythonCopy code
    from langchain.schema import AIMessage, HumanMessage, SystemMessage
    from langchain.chat_models import ChatOpenAI
    
    chat = ChatOpenAI(model_name="gpt-3.5-turbo", temperature=0.3)
    
  3. 프롬프트 정의:

    • 사용자 입력에 따라 동적으로 프롬프트를 생성할 수 있는 PromptTemplates 사용.

    pythonCopy code
    from langchain import PromptTemplate
    
    template = """Explain the concept of {concept} in a couple of lines"""
    prompt = PromptTemplate(input_variables=["concept"], template=template)
    
  4. 체인 생성:

    • PromptTemplates와 LLM을 통합하여 더 복잡한 애플리케이션을 위한 체인 사용.

    pythonCopy code
    from langchain.chains import LLMChain
    chain = LLMChain(llm=chat, prompt=prompt)
    
  5. 임베딩 및 벡터 스토어 처리:

    • 큰 데이터를 조각으로 나누고 필요시 쿼리할 수 있도록 저장. 임베딩을 통해 효율적인 쿼리 수행.

    pythonCopy code
    from langchain.text_splitter import RecursiveCharacterTextSplitter
    from langchain.embeddings import OpenAIEmbeddings
    import os
    import pinecone
    from langchain.vectorstores import Pinecone
    
    text_splitter = RecursiveCharacterTextSplitter(chunk_size=100, chunk_overlap=0)
    embeddings = OpenAIEmbeddings(model_name="ada")
    pinecone.init(api_key=os.getenv('PINECONE_API_KEY'), environment=os.getenv('PINECONE_ENV'))
    
  6. 챗봇 조합:

    • 투자 관련 쿼리를 처리하고 관련 정보를 검색하여 유용한 응답을 제공하는 챗봇을 만들기 위해 위의 요소들을 결합합니다.

이는 랭체인, 파이썬 및 사용할 특정 API에 대한 프로그래밍 기술 및 탄탄한 이해가 필요한 고급 개요입니다.


코딩

완전 처음이라, Langchain Docs의 Cookbook을 먼저 따라해 보고 있습니다!

#https://colab.research.google.com/drive/1hhhQ0nav3Ip75Nxq91Ds8trtw2kovE8j?usp=sharing

5
3개의 답글

👉 이 게시글도 읽어보세요