728x90
반응형
.env 파일 생성
- 프로젝트 루트 디렉토리에 .env 파일을 생성하여 아래 내용을 추가
- Git에 업로드되지 않도록 .gitignore에 추가
OPENAI_API_KEY=your_openai_api_key
PINECONE_API_KEY=your_pinecone_api_key
필요한 패키지 설치
pip install langchain-openai
pip install pinecone-client
pip install langchain-community
LLM 설정
- llm_setup.py 파일을 생성하고 아래 코드를 작성
from langchain_openai.chat_models import ChatOpenAI
from dotenv import load_dotenv
import os
# 환경 변수 로드
load_dotenv()
# LLM 초기화
llm = ChatOpenAI(
model="gpt-4o-mini", # GPT 모델 이름
temperature=0, # 결정론적 답변을 위한 설정
openai_api_key=os.getenv("OPENAI_API_KEY") # API 키
)
print("LLM 설정 완료:", llm)
- 아래 명령어로 실행하여 LLM 설정을 확인
python llm_setup.py
벡터 데이터베이스 설정
- vector_db_setup.py 파일을 생성하고 아래 코드를 작성
import pinecone
from langchain_openai.embeddings import OpenAIEmbeddings
from langchain_community.vectorstores import Pinecone
from dotenv import load_dotenv
import os
# 환경 변수 로드
load_dotenv()
PINECONE_API = os.getenv('PINECONE_API_KEY')
openai_api = os.getenv("OPENAI_API_KEY")
# Pinecone 설정 및 연결
pinecone_client = pinecone.Pinecone()
indexes = pinecone_client.list_indexes()
# print(indexes)
index = indexes[1].name
# print(index)
print("Pinecone 설정 완료.")
# OpenAI Embeddings 설정
embeddings = OpenAIEmbeddings(
openai_api_key=openai_api
)
print("embeddings 설정 완료.")
# VectorStore 초기화
vectorstore = Pinecone.from_existing_index(index, embeddings)
# print(vectorstore)
print("벡터 데이터베이스 설정 완료.")
- 아래 명령어를 실행하여 벡터 데이터베이스 설정을 확인
python vector_db_setup.py
Q&A 체인 설정
- qa_setup.py 파일을 생성하고 아래 코드를 작성
from vector_db_setup import vectorstore # 벡터 DB 설정 가져오기
from llm_setup import llm # 이미 설정된 LLM 가져오기
from langchain.chains import ConversationalRetrievalChain
# Retriever 설정
retriever = vectorstore.as_retriever(
search_type="similarity",
search_kwargs={"k": 3} # 상위 3개의 유사한 결과 반환
)
print("Retriever 설정 완료.")
# Q&A 체인 설정
qa_chain = ConversationalRetrievalChain.from_llm(
llm=llm, # llm_setup.py에서 가져온 LLM
retriever=retriever
)
print("Q&A 체인 설정 완료.")
- 아래 명령어를 실행하여 Q&A 체인 설정을 확인
728x90
반응형
'Project > SYU' 카테고리의 다른 글
[SYU] - SYU_Chat_Bot_3 (구조 개선 및 Gradio 기반 사용자 인터페이스 구현) (0) | 2024.11.20 |
---|---|
[SYU] - SYU_Chat_Bot_1(가상 환경 설정, 패키지 관리하기) (1) | 2024.11.15 |