반응형
이번 글에서는 랭체인(Langchain)과 라마인덱스(LlamaIndex)를 활용하여 PDF 학습과 대화가 가능한 챗봇 애플리케이션을 구현합니다. 랭체인에 대해 잘 모르신다면, 이전에 작성한 글을 참고해주시기 바랍니다. ChatGPT | 랭체인(LangChain) 소개 ChatGPT AI에 소설을 학습시킨 다음 질문하기 세이노의 가르침 PDF 다운로드하기 아래 링크에서 "세이노의 가르침 PDF"를 무료로 다운로드할 수 있습니다. https://blog.naver.com/dayonepress/223064751876 다운로드 받은 PDF 파일은 data 폴더에 넣어줍니다. 라마 인덱스(LlamaIndex) LlamaIndex는 LLM을 사용자의 개인 데이터와 연결하는 인터페이스를 제공하는 Python 라이브..
이 글에서는 LangChain을 활용하여 구텐베르크 프로젝트에서 제공하는 윌리엄 셰익스피어의 “로미오와 줄리엣” 소설을 ChatGPT에 학습시키고, 이를 활용하여 채팅하는 방법을 설명합니다. 필요한 Python 패키지 설치하기 LangChain에서 ChatGPT 학습을 위해 필요한 파이썬 패키지를 설치합니다. pip install langchain==0.0.142 pip install openai==0.27.4 pip install tiktoken==0.3.3 pip install chromadb==0.3.21 langchain: 자연어 처리 및 기계 번역에 사용됩니다. openai: OpenAI API와 상호작용하는 데 사용됩니다. tiktoken: 텍스트 토큰화에 사용됩니다. chromadb: 벡터 ..
이 글은 김태영 강사님의 “유튜브 | 챗GPT에 날개를 달아줄 랭체인! (LangChain)” 강의 내용을 정리한 것입니다. LLM(Large Language Model)만으로는 애플리케이션을 만들기가 어렵습니다. 하지만 LangChain에서 제공하는 다양한 기능을 활용하면 강력한 애플리케이션을 만들 수 있습니다. 우리가 챗GPT를 통해 하고 싶은 것 내 문서(PDF)를 챗GPT에게 학습시킨 다음 질문하는 것 챗GPT가 인터넷 정보를 검색하여 응답하는 것 챗GPT를 다른 서비스와 연동하는 것 챗GPT를 내가 정한 시나리오대로 행동하게 하는 것 랭체인(LangChain) LangChain은 언어 모델을 기반으로 한 애플리케이션을 개발하기 위한 프레임워크입니다. LangChain은 API를 통해 언어 모델을..
현재 OpenAI에서 공식 Dart/Flutter 라이브러리는 제공하고 있지 않습니다. 그래서 OpenAI API 문서를 보고 HTTP 요청을 직접 구현하거나, pub.dev에서 오픈 소스를 찾아서 사용해야 합니다. dart_openai dart_openai는 오픈 소스이며 가장 인기있는 OpenAI 클라이언트 패키지입니다. 이 라이브러리를 사용하면 OpenAI의 최신 AI 모델을 Dart/Flutter 애플리케이션에 쉽게 구현할 수 있습니다. 이 라이브러리는 GPT-3 언어 모델과 DALL-E 이미지 생성 등 OpenAI의 다양한 API를 쉽게 요청할 수 있는 간단하고 직관적인 함수를 제공합니다. 이 패키지는 가볍고 사용하기 쉽도록 설계되었기 때문에 HTTP 요청 처리로 인한 복잡성과 오류를 걱정할 필..
이제부터는 애플리케이션을 개발할 때 ChatGPT에 도움을 많이 요청할 예정입니다. 다음은 ChatGPT 대화의 일부분입니다. 영어 회화 연습 앱의 이름을 제안해주세요 "ConvoBoost"는 영어 회화 연습 앱으로 기억에 남는 멋진 이름이 될 수 있습니다. 회화 실력을 향상시키는 동시에 에너지와 추진력을 제공한다는 의미를 담고 있습니다. 그럼 VSCode에서 Flutter 프로젝트를 생성하는 방법을 자세하게 알려주세요 물론이죠! VSCode에서 새 Flutter 프로젝트를 생성하려면 다음 단계를 따르세요: 컴퓨터에 Flutter를 설치합니다: 아직 설치하지 않았다면 공식 Flutter 웹사이트에서 Flutter를 다운로드하여 설치해야 합니다. 사용 중인 운영 체제의 설치 지침을 따릅니다. VSCode에..
Provider Provider는 프로바이더 중에서 가장 기본적인 프로바이더이며, 값을 동기적으로 생성해 줍니다. Provider는 일반적으로 다음과 같은 용도로 사용됩니다. 계산 결과를 캐싱 다른 공급자(Repository또는 HttpClient)에 값 노출 테스트 또는 위젯이 값을 재정의할 수 있는 방법을 제공 select를 사용하지 않고도 프로바이더 및 위젯 리빌드를 줄 일 수 있습니다. Provider를 사용하여 계산 결과를 캐시하기 Provider는 ref.watch와 함께 사용하면 동기식 작업을 캐싱할 수 있습니다. 예를 들면 Todo 목록에 필터를 적용하는 경우입니다. 목록을 필터링하는 데에는 약간의 비용이 발생 할 수 있습니다. 그렇기 때문에 화면을 다시 렌더링될 할마다 Todo 목록은 다..