Embedding Visualisation

ARK Platform Example / Embedding Visualisation

  • Copy
    
    import numpy as np
    import openai
    
    def rgb_color(value):
        gray = int(255 * value)
        return f'\033[38;2;{gray};{gray};{gray}m█\033[0m'
    
    def print_emb(embedding):
        # visualize embedding as averaged grayscale bar
        min_val, max_val = min(embedding), max(embedding)
        normalized_embedding = [(x - min_val) / (max_val - min_val) for x in embedding]
    
        compressed_embedding = np.array_split(normalized_embedding, bar_width)
        compressed_embedding = [np.mean(chunk) for chunk in compressed_embedding]
    
        bar = ''.join([rgb_color(x) for x in compressed_embedding])
    
        print(bar)
    
    ark_api_key = "API_KEY"
    ark_base_url = "https://api.ark-labs.cloud/api/v1"
    bar_width = 80
    
    client = openai.OpenAI(api_key=ark_api_key, base_url=ark_base_url)
    
    print("Waiting for response 1/3...")
    response = client.embeddings.create(
        model="text-embedding-ada-002",
        input="A brave knight traversing space in a small rocket, lost because GPS only works on Earth."
    )
    
    print("Waiting for response 2/3...")
    response2 = client.embeddings.create(
        model="text-embedding-ada-002",
        input="A shy knight traversing space in a small rocket, lost because GPS only works on Earth."
    )
    
    print("Waiting for response 3/3...")
    response3 = client.embeddings.create(
        model="text-embedding-ada-002",
        input="A red fox jumped over a sleeping hedgehog."
    )
    
    print("Embeddings visual comparison:")
    print_emb(response.data[0].embedding)
    print_emb(response2.data[0].embedding)
    print_emb(response3.data[0].embedding)
    
    #print("Embedding:")
    #print(response.data[0].embedding)