■ VectorStoreRetriever 클래스의 invoke 메소드를 사용해 벡터 유사도 검색하는 방법을 보여준다.
※ PINECONE_API_KEY 환경 변수 값은 .env 파일에 정의한다.
▶ main.py
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
from dotenv import load_dotenv from langchain_openai import OpenAIEmbeddings from langchain_pinecone import PineconeVectorStore load_dotenv() openAIEmbeddings = OpenAIEmbeddings() pineconeVectorStore = PineconeVectorStore(index_name = "test-example", embedding = openAIEmbeddings) # Pinecone 사이트에서 test-example 인덱스가 존재해야 한다. pineconeVectorStore.add_texts(["i worked at kensho" ], namespace = "harrison") pineconeVectorStore.add_texts(["i worked at facebook"], namespace = "ankush" ) vectorStoreRetriever1 = pineconeVectorStore.as_retriever(search_kwargs = {"namespace" : "ankush"}) responseDocumentList1 = vectorStoreRetriever1.invoke("where did i work?") print(responseDocumentList1) print("-" * 50) vectorStoreRetriever2 = pineconeVectorStore.as_retriever(search_kwargs = {"namespace" : "harrison"}) responseDocumentList2 = vectorStoreRetriever2.invoke("where did i work?") print(responseDocumentList2) print("-" * 50) """ [ Document(id = 'a7e34e14-fe06-439e-aa0b-d40fd46412c2', metadata = {}, page_content = 'i worked at facebook'), Document(id = 'fa276204-878a-41e1-b85a-6f081d8a0036', metadata = {}, page_content = 'i worked at facebook') ] -------------------------------------------------- [ Document(id = '14d1d34b-e0a0-4259-9bc3-173c8538b830', metadata = {}, page_content = 'i worked at kensho'), Document(id = '4b73972a-0b28-487f-a801-d00c81527928', metadata = {}, page_content = 'i worked at kensho') ] -------------------------------------------------- """ |
▶ requirements.txt
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
aiohttp==3.9.5 aiosignal==1.3.1 annotated-types==0.7.0 anyio==4.6.2.post1 attrs==24.2.0 certifi==2024.8.30 charset-normalizer==3.4.0 colorama==0.4.6 distro==1.9.0 frozenlist==1.5.0 h11==0.14.0 httpcore==1.0.7 httpx==0.28.0 idna==3.10 jiter==0.8.0 jsonpatch==1.33 jsonpointer==3.0.0 langchain-core==0.3.21 langchain-openai==0.2.11 langchain-pinecone==0.2.0 langsmith==0.1.147 multidict==6.1.0 numpy==1.26.4 openai==1.56.2 orjson==3.10.12 packaging==24.2 pinecone-client==5.0.1 pinecone-plugin-inference==1.1.0 pinecone-plugin-interface==0.0.7 propcache==0.2.1 pydantic==2.10.3 pydantic_core==2.27.1 python-dotenv==1.0.1 PyYAML==6.0.2 regex==2024.11.6 requests==2.32.3 requests-toolbelt==1.0.0 sniffio==1.3.1 tenacity==9.0.0 tiktoken==0.8.0 tqdm==4.67.1 typing_extensions==4.12.2 urllib3==2.2.3 yarl==1.18.3 |
※ pip install python-dotenv langchain-openai langchain-pinecone 명령을 실행했다.