import yaml | |
import os | |
import os | |
from pinecone import Pinecone, ServerlessSpec | |
from dotenv import load_dotenv | |
load_dotenv() | |
script_dir = os.path.dirname(os.path.abspath(__file__)) | |
# Construct the base directory (one level up from the script directory) | |
base_dir = os.path.dirname(script_dir) | |
# Construct the path to the config file | |
config_path = os.path.join(base_dir, 'configs', 'config.yaml') | |
def load_config(file_path): | |
with open(file_path, 'r') as file: | |
config = yaml.safe_load(file) | |
return config | |
def creation_of_vector_database(): | |
# Load the configuration from a YAML file | |
config = load_config(config_path) | |
# Initialize the Pinecone client | |
pc = Pinecone( | |
api_key=os.getenv('PINECONE_API_KEY')) # Ensure your API key is set in the environment variables | |
# Connect to the Pinecone index | |
index_name = config['pinecone']['index_name'] | |
dimension = config['pinecone']['dimension'] | |
metric = config['pinecone']['metric'] | |
# file_path = config['file_location']['file_path'] | |
cloud = config['pinecone']['cloud'] | |
region = config['pinecone']['region'] | |
if index_name not in pc.list_indexes().names(): | |
pc.create_index( | |
name=index_name, | |
dimension=dimension, | |
metric=metric, | |
spec=ServerlessSpec( | |
cloud=cloud, # Specify your preferred cloud provider | |
region=region # Specify your preferred region | |
) | |
) | |
if __name__ == "__main__": | |
creation_of_vector_database() | |