이 저장소에는 OpenAI의 GPT-4O 모델 및 Pinecone Vector 데이터베이스를 사용하여 CSV 데이터 세트를 쿼리하는 방법을 보여주는 프로젝트가 포함되어 있습니다. 이 프로젝트에는 CSV 파일의 데이터에서 벡터 임베딩을 작성하고 Pinecone 데이터베이스에 임베딩을 저장 한 다음 자연어 쿼리를 사용하여 벡터 임베딩 데이터를 쿼리하는 것이 포함됩니다.
목차
소개
전제 조건
테스트 된 플랫폼 및 패키지
용법
데이터 수집 및 임베딩 생성
데이터를 쿼리합니다
작동 방식
특허
이 프로젝트는 CSV 파일에 저장된 데이터를 쿼리하기 위해 자연어 처리 기술의 사용을 보여줍니다. OpenAI의 GPT-4 모델과 Pinecone의 벡터 데이터베이스를 활용하여 데이터에 대한 임베딩을 생성하고 이러한 임베딩을 사용하여 사용자 쿼리에 대한 정확한 응답을 검색 할 수 있습니다.
시작하기 전에 다음과 같은 사항을 확인하십시오.
API 통합 : OpenAI 및 Pinecone과 통합하려면 이러한 플랫폼의 각 API 키, 호스트 (Pinecone) 정보를 얻고 구성해야합니다. Linux에서 OpenAi 및 Pinecone API 키를 설정하고 Pinecone 호스트를 환경 변수로 설정하십시오. 다음 Linux 명령을 사용하여 이러한 변수를 내보내십시오.
내보내기 OpenAi_api_key = 'your-openai-api-key'
Export pinecone_api_key = 'your-pinecone-api-key'
PENECONE_HOST = 'your-pinecone-host'내보내기
OpenAi API : OpenAI 모델 "Text-embedding-ADA-002"및 "GPT-4O"는 임베딩 생성 및 LLM 지원에 사용됩니다. 유효한 API 키가있는 OpenAI 계정이 있는지 확인하십시오. OpenAI 플랫폼 (https://platform.openai.com/)에서 API 키를 얻고 관리 할 수 있습니다 (https://platform.openai.com/organization/api-keys). 또한이 예제는 유료 OpenAI 계정이 필요하므로 계정에 충분한 사용 할당량이 있는지 확인하십시오.
PENECONE 환경 (PENECONE FREE 계정 사용 https://www.pinecone.io/) : 1) Pinecone Index가 사용됩니다. 2) 치수 : 1536 3) 호스트 유형 : 서버리스.
Centos Linux 릴리스 8.5.2111. 프로젝트 종속성을 분리하기 위해 가상 환경 (선택 사항이지만 권장)을 만듭니다.
파이썬 3.8.8
팬더 2.0.3
Openai 1.30.3
PENECONE 4.0.0
Numpy 1.24.4
Argparse 1.1
데이터 수집 및 임베딩 생성
csv_path = "Your_csv_file_path"[Create-Chunks-embeddings-store-vectordb-csv-dataset.py]
pinecone_index_name = "your_pinecone_index_name"[Create-Chunks-embeddings-vectordb-csv-dataset.py]
index_name = "your_pinecone_index_name"[query-prompt-for-vector-embeddings.py]
CSV 파일의 열과 일치하도록 read_csv_data 함수의 열 제목을 수정하십시오. 자세한 내용은 CSV 파일 섹션에 대한 사용자 정의를 참조하십시오.
필요에 따라 OpenAi LLM 모델을 사용할 수 있습니다.
Model = "GPT-4O", # GPT-4 또는 GPT-3.5-TURBO 또는 기타 OpenAI LLM 모델을 사용할 수 있습니다. [Query-Prompt-for-Vector-embeddings.py]
스크립트를 실행하여 데이터를 읽고, 임베딩을 생성 한 후, Pinecon에 저장하십시오.
#Python Create-Chunks-embeddings-store-vectordb-csv-dataset.py
데이터를 쿼리합니다
#PyThon Query-Prompt-for-vector-embeddings.py "여기 쿼리"
예 : Python query-prompt-for-vector-embeddings.py "영화 xyz의 플롯에 대해 알려주세요"
다음 쿼리를 입력하십시오 (또는 종료하려면 '종료'를 입력하십시오) :이 영화가 출시 된 해?
CSV 데이터 청크, 벡터 임베딩 생성 및 Pinecone 데이터베이스에 임베딩을 저장
"Create-Chunks-embeddings-vectordb-csv-dataset.py"스크립트는 CSV 파일을 읽고 관련 열을 각 행의 단일 텍스트 문자열로 결합합니다. 이 텍스트 문자열은 각 행에 대한 열의 세부 사항이 포함되어 있습니다. 각 행에는 고유 한 정보가 포함되어 있습니다 (예 : 영화의 정보). 그런 다음 각 행의 결합 된 텍스트를 사용하여 OpenAI의 API를 사용하여 임베딩을 생성하는 데 사용됩니다. 벡터 임베딩은 Pinecone 지수에 저장됩니다.
OpenAi의 GPT-4 LLM 활용
이 프로젝트는 OpenAI의 GPT-4 대형 언어 모델 (LLM)을 두 가지 주요 방법으로 활용합니다.
임베딩 생성 : CSV 파일의 각 행에서 텍스트 데이터는 OpenAI의 임베딩 모델 (Text-embedding-ADA-002)에 대한 입력으로 사용됩니다. 이 모델은 텍스트를 텍스트의 의미 론적 의미를 캡처하는 고차원 벡터 임베딩으로 텍스트를 변환합니다. 이러한 임베딩은 효율적인 검색을 위해 Pinecone의 벡터 데이터베이스에 저장됩니다.
자연어 쿼리 : 사용자가 쿼리를 제출하면 스크립트는 동일한 임베딩 모델을 사용하여 쿼리 텍스트에 포함됩니다. 그런 다음이 쿼리 임베딩은 가장 의미 있고 유사한 텍스트 청크 (예 : CSV 파일의 행)에 대해 Pinecone Vector 데이터베이스를 검색하는 데 사용됩니다. 관련 텍스트 청크는 검색되어 OpenAI의 GPT-4 모델로 전달되어 사용자 쿼리에 대한 포괄적이고 상황에 맞는 반응을 생성합니다.
강화 된 응답을위한 컨텍스트 결합
응답이 정확하고 관련성이 있는지 확인하기 위해 스크립트는 이전 쿼리 및 응답의 컨텍스트를 유지합니다. 이러한 맥락은 검색된 텍스트 청크와 결합되어 GPT-4에 정보에 대한 포괄적 인 관점을 제공합니다. 이 접근법은 CSV 파일에 제공된 데이터에 근거한 상세하고 정확한 답변을 생성하는 모델의 기능을 향상시킵니다.
CSV 파일 사용자 정의
CSV 파일로 스크립트가 올바르게 작동하는지 확인하려면 CSV 파일의 열과 일치하도록 "Create-Chunks-embeddings-vectordb-csv-dataset.py"열을 업데이트하십시오. 다음은 기능을 사용자 정의하는 방법의 예입니다.
#users는 열을 사용하려는 열 이름 목록으로 대체해야합니다 - 아래 예제.
Columns = [ "Rank", "Director", "장르", "플롯", "액터", "등급"] # 열을 CSV 파일의 열 이름으로 바꾸십시오.
이 프로젝트는 Apache 2.0 라이센스에 따라 라이센스가 부여됩니다. 자세한 내용은 라이센스 파일을 참조하십시오.