38 model: openai("gpt-4o", {
39 baseURL: "https://std-openaiproxy.web.val.run/v1",
40 apiKey: Deno.env.get("valtown"),
41 } as any),
42 messages: [
8
91. Click `Fork`
102. Change `location` (Line 4) to describe your location. It accepts fairly flexible English descriptions which it turns into locations via [nominatim's geocoder API](https://www.val.town/v/stevekrouse/nominatimSearch).
113. Click `Run`
12
2 * This val creates a cron job that sends an email with recent Stack Overflow posts
3 * mentioning various file upload-related topics.
4 * It uses the Stack Exchange API to fetch recent questions and the Val Town email API to send the digest.
5 */
6
7import { StackExchange } from "https://esm.sh/@userscripters/stackexchange-api-types";
8
9// Array of topics related to file uploads
22 for (const topic of TOPICS) {
23 const response = await fetch(
24 `https://api.stackexchange.com/2.3/questions?order=desc&sort=creation&site=stackoverflow&filter=withbody&tagged=${topic}&pagesize=5`,
25 );
26 const data = await response.json();
1/**
2 * This microservice implements a high-performance dimensionality reduction API using UMAP.
3 * It uses the umap-js library for efficient UMAP computation and implements caching for improved performance.
4 * The service accepts POST requests with JSON payloads containing high-dimensional embeddings and configuration parameters.
107 <meta charset="UTF-8">
108 <meta name="viewport" content="width=device-width, initial-scale=1.0">
109 <title>UMAP Dimensionality Reduction API</title>
110 <style>
111 body { font-family: Arial, sans-serif; line-height: 1.6; padding: 20px; max-width: 800px; margin: 0 auto; }
117</head>
118<body>
119 <h1>UMAP Dimensionality Reduction API</h1>
120 <p>This is a high-performance dimensionality reduction microservice using UMAP (Uniform Manifold Approximation and Projection). It provides an efficient way to reduce high-dimensional data to 2D or 3D representations, making it easier to visualize and analyze complex datasets.</p>
121
137
138 <h2>How to Use</h2>
139 <p>Send a POST request to this endpoint with your data to use the API. The request should include an array of embeddings and optional configuration parameters.</p>
140
141 <div class="example">
167 <p>This example shows how to use the UMAP service with OpenAI embeddings:</p>
168 <pre>
169// First, generate embeddings using OpenAI API
170import { OpenAI } from "https://esm.town/v/std/openai";
171const openai = new OpenAI();
216 .then(response => response.json())
217 .then(data => {
218 document.getElementById('result').innerHTML = '<h3>API Response:</h3><pre>' + JSON.stringify(data, null, 2) + '</pre>';
219 })
220 .catch(error => {
1# UMAP Dimensionality Reduction API
2
3This is a high-performance dimensionality reduction microservice using UMAP (Uniform Manifold Approximation and Projection). It provides an efficient way to reduce high-dimensional data to 2D or 3D representations, making it easier to visualize and analyze complex datasets.
9[](https://www.val.town/v/stevekrouse/blob_admin_app/fork)
10
11It uses [basic authentication](https://www.val.town/v/pomdtr/basicAuth) with your [Val Town API Token](https://www.val.town/settings/api) as the password (leave the username field blank).
12
13# TODO
8
91. Click `Fork`
102. Change `location` (Line 4) to describe your location. It accepts fairly flexible English descriptions which it turns into locations via [nominatim's geocoder API](https://www.val.town/v/stevekrouse/nominatimSearch).
113. Click `Run`
12
6* Fork this val to your own profile.
7* Make a folder for the temporary vals that get generated, take the ID from the URL, and put it in `tempValsParentFolderId`.
8* If you want to use OpenAI models you need to set the `OPENAI_API_KEY` [env var](https://www.val.town/settings/environment-variables).
9* If you want to use Anthropic models you need to set the `ANTHROPIC_API_KEY` [env var](https://www.val.town/settings/environment-variables).
10* Create a [Val Town API token](https://www.val.town/settings/api), open the browser preview of this val, and use the API token as the password to log in.
11
12<img width=500 src="https://imagedelivery.net/iHX6Ovru0O7AjmyT5yZRoA/7077d1b5-1fa7-4a9b-4b93-f8d01d3e4f00/public"/>
3
4const BOT_TOKEN = Deno.env.get("TELEGRAM_TOKEN");
5const TELEGRAM_API_URL = `https://api.telegram.org/bot${BOT_TOKEN}`;
6
7useHTTP(async (req, res) => {
26async function sendMessage(chatId, text) {
27 try {
28 const url = `${TELEGRAM_API_URL}/sendMessage`;
29 const payload = {
30 chat_id: chatId,
1/**
2 * This val creates an enhanced NPM package explorer using the npm registry API.
3 * It displays a grid of npm packages with basic information, categories, and navigation.
4 * The approach uses React for the frontend and fetch for API calls.
5 * It includes a details view for each package, a link to the npm page, and category navigation.
6 */
104 const category = url.searchParams.get("category") || "";
105
106 let apiUrl = `https://registry.npmjs.org/-/v1/search?text=${encodeURIComponent(searchTerm)}&size=${size}&from=${from}`;
107
108 if (category === "popular") {
109 apiUrl += "&popularity=1.0";
110 } else if (category === "new") {
111 apiUrl += "&maintenance=0&quality=0&popularity=0";
112 } else if (category !== "all" && category) {
113 apiUrl += `&keywords=${encodeURIComponent(category)}`;
114 }
115
116 const response = await fetch(apiUrl);
117 const data = await response.json();
118 return new Response(JSON.stringify(data), {