import os
import requests
import numpy as np
api_key = os.environ["API_KEY"]
api_url = "https://api.siflow.cn/model-api/embeddings"
def embed(texts):
resp = requests.post(
api_url,
headers={
"Authorization": f"Bearer {api_key}",
"Content-Type": "application/json",
},
json={"model": "BAAI/bge-m3", "input": texts},
)
return [np.array(item["embedding"]) for item in resp.json()["data"]]
def cosine(a, b):
return float(a @ b / (np.linalg.norm(a) * np.linalg.norm(b)))
query, *docs = embed([
"How do I reset my password?",
"Steps to recover a forgotten account password.",
"Our refund policy for annual plans.",
])
for i, doc in enumerate(docs):
print(f"doc {i}: {cosine(query, doc):.3f}")