Open1
Deno で CLI
Deno で気軽に CLI。OpenAI を呼び出すコード。chmod +x
して使う。Vercel AI SDK が使いやすい。
#! /usr/bin/env -S deno run -NE --env
import { parseArgs } from "node:util";
import { smoothStream, streamText } from "npm:ai";
import { openai } from "npm:@ai-sdk/openai";
import pc from "npm:picocolors";
import process from "node:process";
async function main() {
const { values } = parseArgs({
args: Deno.args,
options: {
message: {
type: "string",
short: "m",
},
},
allowPositionals: false,
});
let message = "";
if (!values.message) {
const input = prompt("Enter a message:");
if (!input) {
console.error("No message provided");
Deno.exit(1);
}
message = input;
} else {
message = values.message;
}
const { textStream } = streamText({
model: openai("gpt-4o-2024-11-20"),
prompt: message,
experimental_transform: smoothStream({ chunking: "word" }),
});
for await (const chunk of textStream) {
process.stdout.write(pc.green(chunk));
}
}
if (import.meta.main) {
await main();
}