이 코드는 langchain-postgres라는 통합 패키지에 포함되어 있습니다.postgres를 백엔드로 사용하고pgvector확장을 활용하는 LangChain vectorstore 추상화의 구현입니다.
상태
이 코드는langchain-community에서 전용 패키지인 langchain-postgres로 이관되었습니다. 다음과 같은 변경 사항이 적용되었습니다:
langchain-postgres는 psycopg3에서만 동작합니다. 연결 문자열을postgresql+psycopg2://...에서postgresql+psycopg://langchain:langchain@...로 업데이트해 주세요(네, 드라이버 이름은psycopg3가 아니라psycopg이지만 내부적으로psycopg3를 사용합니다).- 사용자 지정 ID로 add_documents가 올바르게 작동하도록 embedding store와 collection의 스키마가 변경되었습니다.
- 이제 명시적인 connection 객체를 전달해야 합니다.
설정
먼저 파트너 패키지를 다운로드하세요:pgvector 확장이 포함된 postgres 컨테이너를 띄울 수 있습니다:
자격 증명
이 노트북을 실행하는 데는 별도의 자격 증명이 필요하지 않습니다.langchain-postgres 패키지를 다운로드하고 postgres 컨테이너를 올바르게 시작했는지 확인하세요.
모델 호출에 대한 최고 수준의 자동 추적을 원하신다면 아래의 주석을 해제하여 LangSmith API 키를 설정할 수도 있습니다:
인스턴스화
vector store 관리
vector store에 항목 추가
ID로 문서를 추가하면 해당 ID와 일치하는 기존 문서를 덮어씁니다.vector store에서 항목 삭제
vector store 쿼리
vector store가 생성되고 관련 문서가 추가되면, 체인이나 에이전트를 실행하는 동안 이를 쿼리하고자 할 가능성이 큽니다.필터링 지원
vectorstore는 문서의 metadata 필드에 적용할 수 있는 일련의 필터를 지원합니다.| Operator | 의미/분류 |
|---|---|
| $eq | 동등 (==) |
| $ne | 불일치 (!=) |
| $lt | 작다 (<) |
| $lte | 작거나 같음 (<=) |
| $gt | 크다 (>) |
| $gte | 크거나 같음 (>=) |
| $in | 특수 처리됨 (in) |
| $nin | 특수 처리됨 (not in) |
| $between | 특수 처리됨 (between) |
| $like | 텍스트 (like) |
| $ilike | 텍스트 (대소문자 구분 없음 like) |
| $and | 논리 (and) |
| $or | 논리 (or) |
직접 쿼리
간단한 similarity search는 다음과 같이 수행할 수 있습니다:PGVector vector store에서 실행할 수 있는 다양한 검색의 전체 목록은 API 레퍼런스를 참조하세요.
retriever로 변환하여 쿼리하기
체인에서 더 쉽게 사용하기 위해 vector store를 retriever로 변환할 수도 있습니다.Retrieval-Augmented Generation 사용
이 vector store를 retrieval-augmented generation(RAG)에 사용하는 방법은 다음 섹션을 참고하세요:API 레퍼런스
__ModuleName__VectorStore의 모든 기능과 설정에 대한 자세한 문서는 API 레퍼런스를 확인하세요: python.langchain.com/api_reference/postgres/vectorstores/langchain_postgres.vectorstores.PGVector.htmlConnect these docs programmatically to Claude, VSCode, and more via MCP for real-time answers.