■ RunnableConfigurableFields 클래스의 invoke 메소드에서 config 인자를 사용해 벡터 유사도를 검색하는 방법을 보여준다.
※ 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 |
from dotenv import load_dotenv from langchain_openai import OpenAIEmbeddings from langchain_pinecone import PineconeVectorStore from langchain_core.runnables import ConfigurableField 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" ) vectorStoreRetriever = pineconeVectorStore.as_retriever() runnableConfigurableFields = vectorStoreRetriever.configurable_fields( search_kwargs = ConfigurableField( id = "search_kwargs", name = "Search Kwargs", description = "The search kwargs to use" ) ) responseDocumentList = runnableConfigurableFields.invoke("where did the user work?", config = {"configurable" : {"search_kwargs" : {"namespace" : "ankush"}}}) print(responseDocumentList) """ [ Document(id = '9889fc8c-66af-4e60-843b-c3346a1a0be8', metadata = {}, page_content = 'i worked at facebook'), 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 = 'e040a9b5-0413-4c90-908d-22b1c9247afb', metadata = {}, page_content = 'i worked at facebook') ] """ |
▶ 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 명령을 실행했다.