import "jsr:@std/dotenv@0.225/load"; import { OpenAI } from "jsr:@openai/openai@4"; import { sumOf } from "jsr:@std/collections@1/sum-of"; const texts = [ "The quick brown fox jumps over the lazy dog.", "The quick rbown fox jumps over the lazy dog.", "teh fast fox jumps over the slow woofer.", "a quick brown fox jmps over lazy dog.", "brown fox jumping over dog", "fox > dog", // Alternative pangram for comparison: "The five boxing wizards jump quickly.", // Unrelated text, also for comparison: "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus et hendrerit massa. Sed pulvinar, nisi a lobortis sagittis, neque risus gravida dolor, in porta dui odio vel purus.", ]; const openai = new OpenAI({ apiKey: Deno.env.get("GOOGLE_API_KEY")!, baseURL: "https://generativelanguage.googleapis.com/v1beta/openai/", }); const result = await Promise.all(texts.map((input) => openai.embeddings.create({ model: "text-embedding-004", input, }) )); const matrix = result.map((response) => response.data[0].embedding); const similarities = matrix.map((row) => matrix.map((col) => sumOf(row.map((v, j) => v * col[j]), (i) => i)) ); console.table(similarities.map((row) => row.map((v) => v.toPrecision(3))));