from urllib.parse import urlparse from dotenv import load_dotenv import os import chromadb import streamlit as st def get_credentials(): load_dotenv() globals()["api_key"] = os.getenv("api_key", None) globals()["watsonx_project_id"] = os.getenv("project_id", None) def load_css(file_name): with open(file_name) as file: st.markdown(f'', unsafe_allow_html=True) def create_collection_name(url): parsed_url = urlparse(url) domain_parts = parsed_url.netloc.split('.') if len(domain_parts) >= 2: return domain_parts[-2] # Extracting the second-level domain else: return "base" def chromadb_client(): import chromadb # Set up cache directory (consider user-defined location) current_dir = os.getcwd() # Replace 'my_custom_cache_path' with your desired location custom_cache_path = os.path.join(current_dir, ".cache") # Create settings object with custom cache path settings = chromadb.Settings(persist_directory=custom_cache_path) # Initialize client with custom settings client = chromadb.Client(settings) return client def clear_collection(collection_name,client): try: collection = client.get_collection(collection_name) if collection: collection.delete() print(f"Collection '{collection_name}' cleared successfully!") except ValueError: pass # collection does not exist, do nothing