faq_chatbotmain.tsx3 matches
172export default async function server(request: Request): Promise<Response> {
173const { sqlite } = await import("https://esm.town/v/stevekrouse/sqlite");
174const { OpenAI } = await import("https://esm.town/v/std/openai");
175const KEY = "faq_chatbot";
176const SCHEMA_VERSION = 2;
191if (new URL(request.url).pathname === "/chat") {
192const body = await request.json();
193const openai = new OpenAI();
194195const systemPrompt = `You are an AI assistant for TechyJaunt, an eduTech platform that trains Africans in tech skills.
199200try {
201const completion = await openai.chat.completions.create({
202model: "gpt-4o-mini",
203messages: [
291export default async function server(request: Request): Promise<Response> {
292if (request.method === "POST" && new URL(request.url).pathname === "/analyze") {
293const { OpenAI } = await import("https://esm.town/v/std/openai");
294const openai = new OpenAI();
295296const formData = await request.formData();
312313try {
314const response = await openai.chat.completions.create({
315model: "gpt-4o",
316messages: [
361);
362} catch (error) {
363console.error("OpenAI Analysis Error:", error);
364return new Response(
365JSON.stringify({
stevensDemo.cursorrules4 matches
100Note: When changing a SQLite table's schema, change the table's name (e.g., add _2 or _3) to create a fresh table.
101102### OpenAI
103```ts
104import { OpenAI } from "https://esm.town/v/std/openai";
105const openai = new OpenAI();
106const completion = await openai.chat.completions.create({
107messages: [
108{ role: "user", content: "Say hello in a creative way" },
OpenTowniesystem_prompt.txt4 matches
88Note: When changing a SQLite table's schema, change the table's name (e.g., add _2 or _3) to create a fresh table.
8990### OpenAI
9192```ts
93import { OpenAI } from "https://esm.town/v/std/openai";
94const openai = new OpenAI();
95const completion = await openai.chat.completions.create({
96messages: [
97{ role: "user", content: "Say hello in a creative way" },
TrainingAssistantmain.tsx3 matches
418if (request.method === 'POST' && new URL(request.url).pathname === '/generate-activity') {
419try {
420const { OpenAI } = await import("https://esm.town/v/std/openai");
421const openai = new OpenAI();
422
423const { teamSize, activityType } = await request.json();
433name, description, minTeam, maxTeam`;
434435const completion = await openai.chat.completions.create({
436messages: [{ role: "user", content: prompt }],
437model: "gpt-4o-mini",
Flashcard_Generatormain.tsx3 matches
224const { content } = await request.json();
225
226const { OpenAI } = await import("https://esm.town/v/std/openai");
227const openai = new OpenAI();
228229const completion = await openai.chat.completions.create({
230messages: [
231{
1import { OpenAI } from "https://esm.town/v/std/openai";
23type LogFunction = (message: string) => void;
441}
442443async function callOpenAI(
444systemPrompt: string,
445userMessage: string,
448): Promise<{ role: "assistant" | "system"; content: string }> {
449const callId = Math.random().toString(36).substring(2, 8);
450const logPrefix = "OpenAI Call [" + callId + "] (" + model + ", JSON: " + isJsonOutputRequired + ", Prompt Hash: "
451+ hashCode(systemPrompt) + ")";
452453try {
454const openai = new OpenAI();
455const response = await openai.chat.completions.create({
456model: model,
457messages: [{ role: "system", content: systemPrompt }, { role: "user", content: userMessage }],
461const content = response.choices?.[0]?.message?.content;
462if (!content) {
463console.error(logPrefix + ": OpenAI API returned unexpected or empty response structure.");
464throw new Error("Received invalid or empty response content from AI model.");
465}
473474if (errorResponseData?.message) {
475errorMessage = "OpenAI Error (" + (statusCode || "unknown status") + "): " + errorResponseData.message;
476} else if (errorResponseData?.error?.message) {
477errorMessage = "OpenAI Error (" + (statusCode || "unknown status") + "): " + errorResponseData.error.message;
478} else if (error.message) {
479errorMessage += " Details: " + error.message;
485}
486}
487if (statusCode === 401) errorMessage += " (ACTION: Verify OpenAI API key is correct and active.)";
488else if (statusCode === 429) errorMessage += " (ACTION: Rate limit or quota exceeded. Check OpenAI plan/usage.)";
489else if (statusCode === 400)
490errorMessage += " (ACTION: Bad request. Input/prompt might be malformed or violate policy. Check prompt/input.)";
491else if (
492error.code === "ENOTFOUND" || error.code === "ECONNREFUSED" || error.cause?.code === "UND_ERR_CONNECT_TIMEOUT"
493) errorMessage += " (ACTION: Network error connecting to OpenAI.)";
494else if (statusCode >= 500) errorMessage += " (ACTION: OpenAI server issue. Try again later.)";
495496const escapedError = errorMessage.replace(/\\/g, "\\\\").replace(/"/g, "\\\"").replace(/\n/g, "\\n");
691692const analyzeSingleOpportunity = async (inputJson: string, sol: Solicitation): Promise<OpportunityAnalysis> => {
693const result = await callOpenAI(opportunityAnalysisAgentSystemPrompt, inputJson, "gpt-4o-mini", true);
694try {
695const parsed = JSON.parse(result.content);
696697if (parsed.error && result.role === "system") {
698log("[ERROR] Analysis Agent (" + sol.id + "): OpenAI communication failed: " + parsed.error);
699return {
700solicitation_id: sol.id || "unknown",
778log("[INFO] Synthesis Input JSON Snippet: " + synthesisInput.substring(0, 500) + "...");
779780const synthesisResult = await callOpenAI(strategySynthesisAgentSystemPrompt, synthesisInput, "gpt-4o", true);
781782try {
784785if (parsedSynthesis.error && synthesisResult.role === "system") {
786throw new Error("Synthesis Agent OpenAI Error: " + parsedSynthesis.error);
787}
788
weatherBotmain.tsx7 matches
2import { fetchWebpage } from "https://esm.town/v/jdan/fetchWebpage";
3import { weatherOfLatLon } from "https://esm.town/v/jdan/weatherOfLatLon";
4import { OpenAI } from "https://esm.town/v/std/openai?v=4";
56const openai = new OpenAI();
78const toolbox = {
9"latLngOfCity": {
10openAiTool: {
11type: "function",
12function: {
33},
34"weatherOfLatLon": {
35openAiTool: {
36type: "function",
37function: {
60},
61"fetchWebpage": {
62openAiTool: {
63type: "function",
64function: {
82};
8384const tools = Object.values(toolbox).map(({ openAiTool }) => openAiTool);
85const transcript = [
86{ role: "user", content: "What's the weather in Hoboken, NJ? Do your best to follow URLs and summarize the weather instead of having the user do it." },
9495async function runConversation() {
96const response = await openai.chat.completions.create({
97messages: transcript,
98tools,
AI_generated_Picturesmain.tsx4 matches
60export default async function server(request: Request): Promise<Response> {
61// Dynamic imports for server-side modules
62const { OpenAI } = await import("https://esm.town/v/std/openai");
63const { sqlite } = await import("https://esm.town/v/stevekrouse/sqlite");
64const { blob } = await import("https://esm.town/v/std/blob");
96const { prompt, language } = await request.json();
9798// Initialize OpenAI
99const openai = new OpenAI();
100101// Generate image
102const response = await openai.images.generate({
103model: "dall-e-3",
104prompt: prompt,
186export default async function server(request: Request): Promise<Response> {
187if (request.method === "POST") {
188const { OpenAI } = await import("https://esm.town/v/std/openai");
189const openai = new OpenAI();
190191const { campaignType, targetAudience } = await request.json();
199Tone should be professional, confident, and friendly. Suitable for LinkedIn, Instagram, and TikTok.`;
200201const completion = await openai.chat.completions.create({
202messages: [{ role: "user", content: prompt }],
203model: "gpt-4o-mini",