Spaces:
Sleeping
Sleeping
| import logging | |
| import os | |
| import sys | |
| from dotenv import load_dotenv | |
| from knowledgebase import create_knowledgebase | |
| from utils.constants import ( | |
| ASSISTANT_TYPE_KEY, | |
| AssistantType, | |
| OPENAI_API_TOKEN_KEY, | |
| HUGGINGFACEHUB_API_TOKEN_KEY, | |
| OPENAI_KNOWLEDGEBASE_KEY, | |
| HF_KNOWLEDGEBASE_KEY, | |
| ENV_FILE, | |
| EMBEDDING_TYPE_KEY, | |
| EmbeddingType, | |
| APIKeyType, | |
| ) | |
| from utils.llm import validate_api_token | |
| logger = logging.getLogger(__name__) | |
| # load the .env | |
| load_dotenv(dotenv_path=os.path.join(os.getcwd(), ENV_FILE)) | |
| if __name__ == "__main__": | |
| # initialize the knowledgebase | |
| logger.info("⚡ Initializing the URLs...") | |
| # determine assistant type | |
| assistant_type = os.getenv(ASSISTANT_TYPE_KEY, AssistantType.HUGGINGFACE.value) | |
| embedding_type = os.getenv(EMBEDDING_TYPE_KEY, EmbeddingType.HUGGINGFACE.value) | |
| if assistant_type == AssistantType.OPENAI.value: | |
| assistant_type = AssistantType.OPENAI | |
| knowledgebase_name = os.environ.get(OPENAI_KNOWLEDGEBASE_KEY, None) | |
| if embedding_type == EmbeddingType.OPENAI.value: | |
| embedding_type = EmbeddingType.OPENAI | |
| embedding_api_key = os.getenv(OPENAI_API_TOKEN_KEY, None) | |
| embedding_api_key_type = APIKeyType.OPENAI | |
| else: | |
| embedding_type = EmbeddingType.HUGGINGFACE | |
| embedding_api_key = os.getenv(HUGGINGFACEHUB_API_TOKEN_KEY, None) | |
| embedding_api_key_type = APIKeyType.HUGGINGFACE | |
| else: | |
| assistant_type = AssistantType.HUGGINGFACE | |
| knowledgebase_name = os.environ.get(HF_KNOWLEDGEBASE_KEY, None) | |
| embedding_type = EmbeddingType.HUGGINGFACE | |
| embedding_api_key = os.getenv(HUGGINGFACEHUB_API_TOKEN_KEY, None) | |
| embedding_api_key_type = APIKeyType.HUGGINGFACE | |
| if embedding_type == EmbeddingType.OPENAI: | |
| urls = [ | |
| "https://thisisishara.com/", | |
| "https://github.com/thisisishara", | |
| "https://github.com/thisisishara?tab=repositories", | |
| "https://www.hackerrank.com/thisisishara?hr_r=1", | |
| "https://www.npmjs.com/~thisisishara", | |
| "https://pypi.org/user/thisisishara/", | |
| "https://www.linkedin.com/in/isharadissanayake/", | |
| ] | |
| else: | |
| urls = [ | |
| "https://thisisishara.com/", | |
| "https://github.com/thisisishara", | |
| "https://github.com/thisisishara?tab=repositories", | |
| "https://www.hackerrank.com/thisisishara?hr_r=1", | |
| "https://www.npmjs.com/~thisisishara", | |
| "https://pypi.org/user/thisisishara/", | |
| "https://www.linkedin.com/in/isharadissanayake/", | |
| ] | |
| logger.info("🗝️ Validating the embedding API token...") | |
| embedding_valid, embedding_err = validate_api_token( | |
| api_key_type=embedding_api_key_type, api_key=embedding_api_key | |
| ) | |
| if not embedding_valid: | |
| logger.error(embedding_err) | |
| sys.exit(1) | |
| create_knowledgebase( | |
| urls=urls, | |
| assistant_type=assistant_type, | |
| embedding_type=embedding_type, | |
| embedding_api_key=embedding_api_key, | |
| knowledgebase_name=knowledgebase_name, | |
| ) | |
| logger.info("✅ Knowledgebase created") | |