diff --git a/packages/sample/genaisrc/assistant.genai.mjs b/packages/sample/genaisrc/assistant.genai.mjs index 4fa24b4347..00526bd76b 100644 --- a/packages/sample/genaisrc/assistant.genai.mjs +++ b/packages/sample/genaisrc/assistant.genai.mjs @@ -5,4 +5,5 @@ script({ }, }) $`Say something.` -assistant("Hello, world!") +$`hello`.role("assistant") +assistant("world!") diff --git a/packages/sample/genaisrc/dup.genai.mjs b/packages/sample/genaisrc/dup.genai.mjs index f04fd31a34..bbcd5222e9 100644 --- a/packages/sample/genaisrc/dup.genai.mjs +++ b/packages/sample/genaisrc/dup.genai.mjs @@ -1,15 +1,10 @@ -script({ - choices: ["FAIL", "SUCCESS"], - tests: { - keywords: "SUCCESS", - }, -}) +script({}) def("FILE", "hello world") def("FILE", "hello world") defOutputProcessor((output) => { - const msg = output.messages.find(m => m.role === "user") + const msg = output.messages.find((m) => m.role === "user") console.log({ msg }) - const fileCount = (msg.content.match(//g) || []).length; + const fileCount = (msg.content.match(//g) || []).length if (fileCount > 2) throw new Error("Too many files") }) diff --git a/packages/sample/genaisrc/poemfile.genai.mjs b/packages/sample/genaisrc/poemfile.genai.mjs index 7930f04523..4443a09cb1 100644 --- a/packages/sample/genaisrc/poemfile.genai.mjs +++ b/packages/sample/genaisrc/poemfile.genai.mjs @@ -1,3 +1,6 @@ +script({ + tests: {} +}) console.log({ runDir: env.runDir }) $`Generate a 1 sentence poem and save it to a text file.` defFileOutput("poem.txt", "the generated poem") diff --git a/packages/sample/genaisrc/pyodide.genai.mjs b/packages/sample/genaisrc/pyodide.genai.mjs index 4357149437..ee7ca873b9 100644 --- a/packages/sample/genaisrc/pyodide.genai.mjs +++ b/packages/sample/genaisrc/pyodide.genai.mjs @@ -1,3 +1,7 @@ +script({ + model:"small", + tests: {} +}) const py = await host.python() const version = await py.run(`import sys sys.version`) diff --git a/packages/sample/genaisrc/readxl10.genai.mjs b/packages/sample/genaisrc/readxl10.genai.mjs index b67d1a4ab3..ed6b4f0c3b 100644 --- a/packages/sample/genaisrc/readxl10.genai.mjs +++ b/packages/sample/genaisrc/readxl10.genai.mjs @@ -2,6 +2,10 @@ script({ title: "readxl10", group: "spreadsheets", system: ["system"], + files: "src/penguins.xlsx", + tests: { + files: "src/penguins.xlsx", + }, }) const sheets = await parsers.XLSX(env.files[0]) diff --git a/packages/sample/genaisrc/schema_tool.genai.mjs b/packages/sample/genaisrc/schema_tool.genai.mjs index 3e4f211cb0..89dcf7e7ea 100644 --- a/packages/sample/genaisrc/schema_tool.genai.mjs +++ b/packages/sample/genaisrc/schema_tool.genai.mjs @@ -1,6 +1,9 @@ script({ tools: ["data_infer_schema"], files: ["src/sample.json"], + tests: { + files: ["src/sample.json"], + }, }) const file = env.files[0] diff --git a/packages/sample/genaisrc/synthlang.genai.mjs b/packages/sample/genaisrc/synthlang.genai.mjs index 1e627a8dcf..dc1ab815c8 100644 --- a/packages/sample/genaisrc/synthlang.genai.mjs +++ b/packages/sample/genaisrc/synthlang.genai.mjs @@ -60,7 +60,6 @@ MODEL: "Chinese: '山'. English summary: 'The mountain is beautiful in spring.'" - If conflicting modifiers appear, address whichever has higher priority (p=5 > p=2). - If no clear resolution, ask the user for clarification.`.role("system") - $` # Blog post generation with SEO optimization ↹ topic"AI in Healthcare" @industry_context diff --git a/packages/sample/genaisrc/technical.genai.js b/packages/sample/genaisrc/technical.genai.js index 1353974ac5..3a899e1b29 100644 --- a/packages/sample/genaisrc/technical.genai.js +++ b/packages/sample/genaisrc/technical.genai.js @@ -4,6 +4,10 @@ script({ group: "documentation", system: ["system.files", "system.technical"], temperature: 0, + files: "src/rag/markdown.md", + tests: { + files: "src/rag/markdown.md", + }, }) def("FILE", env.files) diff --git a/packages/sample/genaisrc/think.genai.mjs b/packages/sample/genaisrc/think.genai.mjs index b23418a9f6..4535396e15 100644 --- a/packages/sample/genaisrc/think.genai.mjs +++ b/packages/sample/genaisrc/think.genai.mjs @@ -1,5 +1,5 @@ script({ - model: "ollama:deepseek-r1:1.5b" + model: "ollama:deepseek-r1:1.5b", }) $`Think about a new joke and recite it.` \ No newline at end of file diff --git a/packages/sample/genaisrc/transformers-all.genai.mjs b/packages/sample/genaisrc/transformers-all.genai.mjs index f9321a6772..33fb413ad1 100644 --- a/packages/sample/genaisrc/transformers-all.genai.mjs +++ b/packages/sample/genaisrc/transformers-all.genai.mjs @@ -1,5 +1,6 @@ script({ files: [], + tests: {}, }) import { pipeline, env as transformersEnv } from "@huggingface/transformers" diff --git a/packages/sample/genaisrc/transformers-rank.genai.mts b/packages/sample/genaisrc/transformers-rank.genai.mts index 1cb25126ae..b743b6b462 100644 --- a/packages/sample/genaisrc/transformers-rank.genai.mts +++ b/packages/sample/genaisrc/transformers-rank.genai.mts @@ -1,25 +1,28 @@ script({ - files: "src/rag/*" + files: "src/rag/*", + tests: {}, }) -import { pipeline, cos_sim } from '@huggingface/transformers'; +import { pipeline, cos_sim } from "@huggingface/transformers" -const featureExtractor = await pipeline('feature-extraction'); +const featureExtractor = await pipeline("feature-extraction") // Function to rank documents async function rank(query: string, files: WorkspaceFile[]) { - const documents = files.map(({ content }) => content); + const documents = files.map(({ content }) => content) const queryEmbedding = (await featureExtractor(query)).tolist()[0][0] - const similarities = await Promise.all(documents.map(async (doc, i) => { - const docEmbedding = (await featureExtractor(doc)).tolist()[0][0] - const score = cos_sim(queryEmbedding, docEmbedding); - return { file: files[i], score }; - })); - similarities.sort((a, b) => b.score - a.score); + const similarities = await Promise.all( + documents.map(async (doc, i) => { + const docEmbedding = (await featureExtractor(doc)).tolist()[0][0] + const score = cos_sim(queryEmbedding, docEmbedding) + return { file: files[i], score } + }) + ) + similarities.sort((a, b) => b.score - a.score) return similarities } // Example usage -const query = "What is markdown?"; +const query = "What is markdown?" const rankedDocs = await rank(query, env.files) -console.log(rankedDocs) \ No newline at end of file +console.log(rankedDocs) diff --git a/packages/sample/genaisrc/transformers.genai.mjs b/packages/sample/genaisrc/transformers.genai.mjs index fabbaf28e3..5c130f8d4d 100644 --- a/packages/sample/genaisrc/transformers.genai.mjs +++ b/packages/sample/genaisrc/transformers.genai.mjs @@ -1,5 +1,6 @@ script({ model: "transformers:onnx-community/Qwen2.5-Coder-0.5B-Instruct:q4", + tests: {}, }) const res = await runPrompt( diff --git a/packages/sample/genaisrc/video-agent.genai.mjs b/packages/sample/genaisrc/video-agent.genai.mjs index af5386e936..18735f25c5 100644 --- a/packages/sample/genaisrc/video-agent.genai.mjs +++ b/packages/sample/genaisrc/video-agent.genai.mjs @@ -1,6 +1,9 @@ script({ tools: ["agent_video"], files: "src/audio/helloworld.mp4", + tests: { + files: "src/audio/helloworld.mp4", + }, }) const file = env.files[0] diff --git a/packages/sample/genaisrc/video-frames.genai.mjs b/packages/sample/genaisrc/video-frames.genai.mjs index 8a1e1d1927..44b3549f96 100644 --- a/packages/sample/genaisrc/video-frames.genai.mjs +++ b/packages/sample/genaisrc/video-frames.genai.mjs @@ -1,6 +1,9 @@ script({ tools: "video_extract_frames", files: "src/audio/helloworld.mp4", + tests: { + files: "src/audio/helloworld.mp4", + }, }) const frames = await ffmpeg.extractFrames(env.files[0], { count: 10 }) defImages(frames) diff --git a/packages/sample/genaisrc/video.genai.mjs b/packages/sample/genaisrc/video.genai.mjs index d0ec0f0449..ee88c7f348 100644 --- a/packages/sample/genaisrc/video.genai.mjs +++ b/packages/sample/genaisrc/video.genai.mjs @@ -1,5 +1,6 @@ script({ tools: "video_extract_frames", + tests: {}, }) const info = await ffmpeg.probe("src/audio/helloworld.mp4") console.log(JSON.stringify(info, null, 2))