# pip install openai; export BAY_RUN_API_KEY=bay_live_... import os from openai import OpenAI MODEL = "BAAI/bge-small-en-v1.5" texts = ["Reset my password", "I forgot my password", "Invoice me", "Send a billing invoice"] client = OpenAI(api_key=os.environ["BAY_RUN_API_KEY"], base_url=os.environ.get("BAY_RUN_API_BASE_URL", "https://run.huggingbay.xyz/v1"), max_retries=0, timeout=30) response = client.embeddings.create(model=MODEL, input=texts) vectors = [item.embedding for item in response.data] def cosine(left, right): return sum(a * b for a, b in zip(left, right, strict=True)) clusters = [] for text, vector in zip(texts, vectors, strict=True): for cluster in clusters: if cosine(vector, cluster["vector"]) >= 0.80: cluster["texts"].append(text) break else: clusters.append({"vector": vector, "texts": [text]}) for number, cluster in enumerate(clusters, 1): print(f"Cluster {number}: {cluster['texts']}")