1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import { fetchJSON } from "https://esm.town/v/stevekrouse/fetchJSON?v=41";
/**
* Call OpenAPI Embeddings api to vectorize a query string
* Returns an array of 1536 numbers
*/
export const getOpenapiEmbedding = async ({ openapiToken, query }: {
openapiToken: string;
query: string;
}): Promise<number[]> =>
fetchJSON("https://api.openai.com/v1/embeddings", {
method: "POST",
headers: {
Authorization: `Bearer ${openapiToken}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
model: "text-embedding-ada-002",
input: query.trim().replaceAll("\n", " "),
}),
}).then((j) => j.data[0].embedding);
👆 This is a val. Vals are TypeScript snippets of code, written in the browser and run on our servers. Create scheduled functions, email yourself, and persist small pieces of data — all from the browser.