인프런 커뮤니티 질문&답변

작성자 없음

작성자 정보가 삭제된 글입니다.

RAG를 활용한 LLM Application 개발 (feat. LangChain)

3.4.1 Pinecone에 UpstageEmbedding을 활용한 데이터 적재

pinecone specified an Api-Key오류

작성

·

68

0

계속 upstage로 진행하고 있었습니다.

이번에도 3.4.1 따라하다 막히는 부분이 있어서 3.4 부분을 보았더니 pc넣는것과 pincone api key 넣는것이 있어서 그부분을 확인 후에 다시 진행을 했습니다.

 

진행하면서 아래와 같이 오류가 나왔습니다.

 

오류 내용

---> 58 raise PineconeConfigurationError("You haven't specified an Api-Key.") 59 if not host: 60 raise PineconeConfigurationError("You haven't specified a host.")

 

해당 코드 부분

from langchain_pinecone import PineconeVectorStore

# 데이터를 처음 저장할 때 
index_name= 'tax-upstage-index'
database = PineconeVectorStore.from_documents(documents=document_list, embedding=embedding)

.env내용
OPENAI_API_KEY= UPSTAGE_API_KEY= LANGCHAIN_API_KEY= LANGCHAIN_TRACING_V2=true PINECONE_API_KEY= PINECONE_ENVIRONMENT=us-east-1

 

전체 코드

%pip install python-dotenv langchain langchain-openai langchain-community langchain-text-splitters docx2txt langchain-chroma
%pip install -qU langchain-pinecone
from langchain_community.document_loaders import Docx2txtLoader
from langchain_text_splitters import RecursiveCharacterTextSplitter

text_splitter = RecursiveCharacterTextSplitter(
    chunk_size=1500,
    chunk_overlap=200,
)

loader = Docx2txtLoader("./tax.docx")
document_list = loader.load_and_split(text_splitter=text_splitter)
import os
from dotenv import load_dotenv
from langchain_upstage import UpstageEmbeddings

# 환경변수를 불러옴
load_dotenv()

pinecone_api_key = os.getenv("PINECONE_API_KEY")
pinecone_environment = os.getenv("PINECONE_ENVIRONMENT")

print("API Key:", pinecone_api_key)
print("Environment:", pinecone_environment)

# OpenAI에서 제공하는 Embedding Model을 활용해서 `chunk`를 vector화
embedding = UpstageEmbeddings(model='solar-embedding-1-large')

결과 화면

PINECONE_API_KEY: None
PINECONE_ENVIRONMENT: None

분명 .env에도 apikey를 공식 문서에 있는 내용을 가져와서 똑같이 붙여 넣고 했음에도 key값이 출력 나오지 않아, database부분이 진행이 되지 않고 있습니다.

  • pincone default 키값이 문제인가 해서 새로운 key를 만들어 넣었습니다.

 

혹시 제가 하면서 놓친 부분이 있을까요?

답변 2

0

강병진님의 프로필 이미지
강병진
지식공유자

안녕하세요!

일단 .env 파일에 환경변수의 key가 제대로 설정되었는지 확인하셔야 될 것 같습니다. 환경변수를 제대로 불러오지 못하는 문제인 것 같아요! 만약 환경변수가 제대로 잘 불러와지지 않아서 pinecone을 사용할 수 없는 상황이라면 아래처럼 진행해보셔도 좋을 것 같습니다!

 

https://www.inflearn.com/community/questions/1412938?focusComment=376088

0

안녕하세요, 인프런 AI 인턴입니다. ksw593님.

보내주신 오류 메시지와 설명을 참고하여 Pinecone API 키 관련 문제를 해결할 수 있는 몇 가지 방법을 제안드립니다. 주로 환경 변수가 설정되지 않거나 올바르게 로드되지 않았을 때 발생할 수 있는 문제입니다.

문제 해결을 위한 체크리스트

  1. .env 파일 확인

    • .env 파일이 코드가 실행되는 디렉토리에 위치해 있는지 확인해주세요. .env 파일이 동일한 디렉토리에 있어야 load_dotenv() 함수가 환경 변수를 올바르게 로드할 수 있습니다.
  2. 환경 변수 이름 확인

    • .env 파일에 정의된 환경 변수 이름과 os.getenv() 함수 호출 시 사용하는 키 값이 정확히 일치하는지 확인합니다.
    • 예시:
      
      PINECONE_API_KEY=your_actual_api_key_here
      PINECONE_ENVIRONMENT=us-east1-gcp  # 환경 변수명 주의
      

  3. 환경 변수 로드 코드 확인

    • load_dotenv() 호출이 명확히 설정되어 있는지 코드의 흐름 안에서 확인합니다. 환경 변수를 불러오는 부분이 코드의 최상단에 위치하는 것이 좋습니다.
  4. 환경 변수 출력으로 디버깅

    • 환경 변수가 제대로 로드되지 않는 부분을 디버깅하기 위해, 추가적인 디버깅 출력을 사용하여 환경 변수가 None 인지 확인합니다.
    print("PINECONE_API_KEY:", os.getenv("PINECONE_API_KEY"))  # 디버깅용 출력
    
  5. 노트북 환경에서 실행

    • 만약 Jupyter Notebook을 사용 중이라면, 커널을 새로 고침하거나 노트북 환경을 신규로 구성하여 환경 변수를 다시 로드해 보세요.
  6. 환경 파일 경로 문제

    • 만약 위 방법으로도 해결되지 않는다면, 강제로 .env 파일 경로를 지정해 로드할 수도 있습니다.
    from dotenv import dotenv_values
    env_vars = dotenv_values(".env")
    pinecone_api_key = env_vars["PINECONE_API_KEY"]
    

추가 참고 자료

이러한 조치를 취하고도 문제가 지속되면, API 키를 재발급받아 시도해 보시거나 Pinecone 콘솔에서 바로 API 키를 확인하며 작업을 이어가시면 도움이 될 것입니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

작성자 없음

작성자 정보가 삭제된 글입니다.

질문하기