Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 36 additions & 0 deletions src/ai-sdk/examples/openai-image.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
import { generateImage } from "ai";
import { openai } from "../index";

async function main() {
console.log("generating image with gpt-image-1...");
const { images } = await generateImage({
model: openai.imageModel("gpt-image-1"),
prompt:
"a futuristic city at sunset, neon lights reflecting on wet streets",
size: "1024x1024",
});

console.log(`image generated: ${images[0]!.uint8Array.byteLength} bytes`);
await Bun.write("output/openai-gpt-image.png", images[0]!.uint8Array);

console.log("\ngenerating with dall-e-3...");
const { images: dalleImages } = await generateImage({
model: openai.imageModel("dall-e-3"),
prompt:
"a whimsical treehouse in an enchanted forest, fairy lights, cozy atmosphere",
aspectRatio: "16:9",
providerOptions: {
openai: {
quality: "hd",
style: "vivid",
},
},
});

console.log(`dall-e-3 image: ${dalleImages[0]!.uint8Array.byteLength} bytes`);
await Bun.write("output/openai-dalle3.png", dalleImages[0]!.uint8Array);

console.log("\ndone!");
}

main().catch(console.error);
37 changes: 37 additions & 0 deletions src/ai-sdk/examples/openai-transcription.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
import { experimental_transcribe as transcribe } from "ai";
import { openai } from "../index";

async function main() {
const audioPath = process.argv[2] || "media/sample-audio.mp3";
console.log(`transcribing ${audioPath} with whisper-1...`);

const audioFile = Bun.file(audioPath);
const audioBuffer = await audioFile.arrayBuffer();

const result = await transcribe({
model: openai.transcriptionModel("whisper-1"),
audio: new Uint8Array(audioBuffer),
providerOptions: {
openai: {
language: "en",
timestamp_granularities: ["segment"],
},
},
});

console.log("\ntranscription:");
console.log(result.text);

if (result.segments && result.segments.length > 0) {
console.log("\nsegments:");
for (const segment of result.segments) {
console.log(
` [${segment.startSecond.toFixed(2)}s - ${segment.endSecond.toFixed(2)}s] ${segment.text}`,
);
}
}

console.log("\ndone!");
}

main().catch(console.error);
Loading