文档AI / Agent

Deno + OpenAI

用官方 OpenAI SDK 和 Responses API 构建最小权限的 Deno 服务

OpenAI 官方 JavaScript SDK 可以通过 Deno 的 npm 兼容层直接使用。当前新文本生成项目优先采用 Responses API。

deno add npm:openai
import OpenAI from "openai";

const model = Deno.env.get("OPENAI_MODEL");
if (!model) throw new Error("OPENAI_MODEL is required");

const client = new OpenAI(); // 默认读取 OPENAI_API_KEY
const response = await client.responses.create({
  model,
  instructions: "Answer accurately and say when evidence is missing.",
  input: "Explain Deno permissions in two sentences.",
});

console.log(response.output_text);
OPENAI_MODEL=<已验证的模型名> \
OPENAI_API_KEY=<密钥> \
deno run --allow-env=OPENAI_MODEL,OPENAI_API_KEY \
  --allow-net=api.openai.com:443 main.ts

为什么不硬编码模型

模型可用性、价格与能力会变化。把模型作为部署配置,基于自己的质量、延迟、成本与安全评测固定值;升级时对同一评测集做对照。不要让示例代码中的临时默认值变成生产决策。

服务端边界

  • API key 只能留在服务端,不传给浏览器。
  • 记录 request ID、模型、耗时、token 用量与错误类别,不记录密钥和完整敏感输入。
  • 为外部请求设置 deadline,并在客户端断开时取消上游。
  • 将模型输出视作不可信数据;渲染 HTML、执行工具或写数据库前继续校验。
  • response.output 可能包含多种 item;只要文本时用 SDK 的 output_text 聚合属性。

官方参考:OpenAI text generationOpenAI JavaScript SDKDeno AI examples

输入关键词搜索全部文档。