본문 바로가기

langchain4

Phi-3.5와 PGVector 벡터 DB를 이용한 검색증강생성(RAG) 시스템 구축하기 Phi 모델 구동 방법 참고:2024.09.22 - [🟣 AI & ML] - Microsoft의 Phi-3.5 모델 Mac Silicon 환경에서 구동하기PGVector 설치 방법 참고:2024.05.13 - [🟣 AI & ML] - 검색증강생성(RAG) - LangChain과 PGVector를 이용한 간단한 RAG 시스템 구축해보기 지난 포스트에서 Microsoft의 Phi-3.5 모델을 구동하는 법을 살펴보았습니다. 이번 포스트에서는, 이 Phi-3.5가 특정 문서의 정보를 참고하여 답변할 수 있게하는 RAG 시스템을 PGVector를 이용하여 구축해보겠습니다. 시스템의 대략적인 구조는 다음과 같습니다. RAG 시스템 구축 프로세스는 크게 두 단계로 구성됩니다. Step 1: 사전 작업 단계로, .. 2024. 9. 26.
LangServe를 이용해 LangChain 앱을 API로 이용하기 LangChain 으로 LLM 기반 Chain 객체를 만들면, 이를 API로 구성하여 앱에서 이용하거나 원격으로 접근하여 공용으로 사용하게 할 수 있습니다. Python 기반 백엔드를 API로 구성하려면 Flask, FastAPI로 직접 구성할 수 있겠지만 LangChain에서는 이미 LangServe라고 하여 간편히 배포할 수 있는 도구를 제공합니다. LangServe 문서 LangServe는 이미 FastAPI 및 uvicorn을 기반으로 만들어져 있으므로, FastAPI에 익숙하다면 유사한 인터페이스로 이용할 수 있습니다. 본 예제에서는 OpenAI 언어 모델을 LangChain 객체로 변환한 간단한 구조의 API를 구성해볼 것입니다. 다음과 같이 langserve_server.py 라는 이름의 파.. 2024. 9. 7.
마구잡이 질문에도 강건한 RAG 시스템 만들기: Query Transformation TL;DRRAG 기반 어플리케이션은 질문 텍스트를 바탕으로 정보를 검색하기 때문에, 사용자의 무작위적인 질문 형식에 매우 취약한 시스템이다.이를 해결하기 위해 모델이 질문의 핵심 내용을 잘 인식할 수 있도록 질문을 변형하여 재구성할 수 있는데, 이를 'query transformation'라 한다.본 포스트에서는 LangChain 환경을 바탕으로 이러한 변형 방법 중 하나인 'Rewrite'를 알아보고 실제로 구현을 해보도록 한다.   Query transformation은 다양한 방법이 있지만, 이 포스트에서 소개할 방법은 'Rewrite'이다. 말 그대로 사용자 쿼리에 LLM을 한번 더 적용하여, 사용자가 알고자 하는 핵심 정보로 재작성한다. 먼저, 필요한 라이브러리들을 설치해보자. DuckDuckG.. 2024. 7. 20.
검색증강생성(RAG) - LangChain과 PGVector를 이용한 간단한 RAG 시스템 구축해보기 TL;DR이번 포스트에서는 벡터 DB 중, pgvector를 이용하여 간단한 RAG 시스템을 구축해봅니다. pgvector는 PostgreSQL에서 확장 기능(extension)으로 사용할 수 있는 오픈소스 벡터 DB 이며, 오픈소스임에도 불구하고 상용 벡터 DB에 준하는 성능을 보여줍니다.LangChain 프레임워크 상에서, PDF 파일을 벡터로 변환하여 pgvector에 저장하고 유사 문서를 검색하는 과정까지 수행해보겠습니다.   *샘플 PDF 파일 링크: https://www.dir.ca.gov/injuredworkerguidebook/InjuredWorkerGuidebook.pdf 먼저, 필요한 라이브러리들을 설치해주어야 합니다. LangChain은 LLM 기반 어플리케이션을 구축하는 데에 널리 .. 2024. 5. 13.