Spaces:
Sleeping
Sleeping
| import numpy as np | |
| from numpy.linalg import norm | |
| import openai | |
| def get_embedding(text, openai_key): | |
| openai.api_key = openai_key | |
| try: | |
| result = openai.Embedding.create(model="text-embedding-ada-002", input=text) | |
| return np.array(result['data'][0]['embedding']) | |
| except Exception as e: | |
| return np.zeros(1536) # Return zero vector on error | |
| def pi_rotation(embedding, pi_digit): | |
| theta = (pi_digit / 9) * np.pi | |
| rotated = embedding * np.cos(theta) + np.roll(embedding, 1) * np.sin(theta) | |
| return rotated | |
| def pi_modulated_similarity(query_vec, chunk_vec, pi_digit): | |
| cosine_sim = np.dot(query_vec, chunk_vec) / (norm(query_vec) * norm(chunk_vec)) | |
| weight = 1 + (pi_digit % 5) * 0.1 | |
| return cosine_sim * weight | |