晋医通医生版
69.64MB · 2025-10-30
作为开发者,上手 AIGC 往往从 “跑通第一行代码” 开始。本文结合实战代码,带你快速搭建 OpenAI 开发环境,用 DALL・E 3 生成高质量图片,同时搞懂 Prompt 工程的核心逻辑 —— 全程避开环境配置坑,新手也能轻松跟着做。
在写代码前,先理清几个关键概念,避免后续操作 “知其然不知其所以然”。
AIGC(生成式人工智能)指通过 AI 模型主动生成内容的技术,目前最常用的两大方向:
本文用到的工具都经过 “轻量化 + 高效化” 优化,避免冗余配置:
很多新手卡在 “环境配置” 环节,这里直接给优化后的步骤,跳过重复安装、配置混乱的坑。
首先创建项目文件夹,打开终端执行以下命令:
bash
# 初始化项目,自动生成package.json(项目描述文件)
npm init -y
-y表示 “默认同意所有选项”,省去手动确认的步骤,高效且不影响功能。相比 npm,pnpm 能避免重复安装相同包,这里只需要安装 2 个核心依赖:
bash
# 安装dotenv(管理环境变量)和openai(官方SDK)
pnpm i dotenv openai
openai,npm 会每个项目装一次,pnpm 只装一次并通过链接复用,既快又省空间;node_modules文件夹和pnpm-lock.yaml(依赖版本锁定文件),确保每次安装的版本一致。不要把 API 密钥直接写在代码里!用 dotenv 把配置存到.env文件,步骤如下:
.env文件,写入内容(替换成你的 OpenAI API 密钥):env
# .env文件内容
OPENAI_API_KEY=sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
2. 核心作用:dotenv 会自动读取.env的内容,添加到 Node.js 的process.env对象中,后续代码通过process.env.OPENAI_API_KEY调用,既安全又便于修改。
环境搭好后,写一个 “单点入口” 文件main.mjs(用 mjs 支持 ES6 模块化的import语法),全程逐行解析,新手也能看懂。
javascript
运行
// 1. 模块化导入依赖:ES6解构语法,只导入需要的部分
import OpenAI from 'openai';
import { config } from 'dotenv';
// 2. 加载.env配置:将.env内容注入process.env
config({
path: '.env' // 明确指定.env路径,避免找不到文件
});
// 3. 验证环境变量:启动时打印,确认配置生效(生产环境可删除)
console.log('环境变量加载成功:', Object.keys(process.env).includes('OPENAI_API_KEY'));
// 4. 创建OpenAI客户端:核心配置
const client = new OpenAI({
apiKey: process.env.OPENAI_API_KEY, // 从环境变量拿密钥,不硬编码
baseURL: 'https://api.agicto.cn/v1' // 可选:用第三方代理地址(国内访问更稳定)
});
// 5. 异步生成图片:AIGC请求是耗时操作,必须用async/await
const main = async () => {
try {
// 调用DALL·E 3生成图片
const response = await client.images.generate({
model: 'dall-e-3', // 指定用DALL·E 3模型(比DALL·E 2质量更高)
prompt: 'A spaceship flying through the universe, neon lights, realistic details, deep space background', // 优化后的Prompt
n: 1, // 生成1张图片
size: '1024x1024' // 图片尺寸(1024x1024是平衡质量和速度的选择)
});
// 输出图片URL:复制到浏览器即可查看
console.log('生成的图片URL:', response.data[0].url);
} catch (error) {
// 错误处理:避免程序崩溃,方便排查问题
console.error('生成图片失败:', error.message);
}
};
// 6. 执行主函数
main();
commonjs(用require导入),mjs格式允许直接用 ES6 的import语法,和前端模块化语法一致,减少思维切换;try/catch能捕获错误并打印,方便定位问题(比如密钥错了会提示 “invalid api key”)。很多人跑通代码后,发现生成的图片 “不符合预期”—— 问题往往出在 Prompt 上。Prompt 工程不是 “写句子”,而是 “给模型清晰的指令”。
| 版本 | Prompt 内容 | 生成效果差异 |
|---|---|---|
| 基础版 | "A spaceship" | 简单轮廓,细节少,背景模糊 |
| 优化版 | "A spaceship flying through the universe, neon lights, realistic details, deep space background" | 有动态场景(飞行)、视觉元素(霓虹灯)、细节要求(真实感)、背景设定(深空),画面更丰富 |
所有准备工作完成后,执行以下步骤即可看到成果:
OPENAI_API_KEY是有效的(可从 OpenAI 官网或合规代理平台获取);bash
node main.mjs
3. 查看结果:终端会打印图片 URL,复制到浏览器打开,就能看到 DALL・E 3 生成的宇宙飞船图片(URL 有效期通常为 1 小时,建议及时保存)。
如果想进一步探索,可以尝试修改 Prompt 生成 “赛博朋克风格的城市”“复古蒸汽火车”,或替换模型为 GPT-3.5 生成文本 ——AIGC 的乐趣就在于不断试错和优化。