AI夹克

大模型 API 调用入门:让你的应用拥有 AI 能力

为什么需要直接调用模型 API

Cursor 里的 AI 只能帮你写代码。但如果你想让你的应用本身拥有 AI 能力呢?

比如:

  • 你的博客需要 AI 自动生成摘要
  • 你的聊天应用需要接入 AI 对话
  • 你的工具需要 AI 分析用户输入

这时候,你就需要在代码里调用大模型 API

快速上手:调用 OpenAI API

1. 获取 API Key

打开 https://platform.openai.com → 注册 → API Keys → 创建 Key

2. 安装 SDK

npm install openai

3. 发送第一个请求

创建 test-openai.js

import OpenAI from 'openai';

const client = new OpenAI({
  apiKey: process.env.OPENAI_API_KEY,
});

async function main() {
  const response = await client.chat.completions.create({
    model: 'gpt-4o',
    messages: [
      { role: 'system', content: '你是一个友好的助手。' },
      { role: 'user', content: '用一句话介绍 AI 编程。' },
    ],
    temperature: 0.7,
  });

  console.log(response.choices[0].message.content);
}

main();

运行:

OPENAI_API_KEY=sk-xxx node test-openai.js

你会看到 AI 的回复。

🎯 现在就试:做一个 AI 问答工具

用 10 行代码做一个命令行 AI 助手:

import OpenAI from 'openai';
import readline from 'readline';

const client = new OpenAI({
  apiKey: process.env.OPENAI_API_KEY,
});

const rl = readline.createInterface({
  input: process.stdin,
  output: process.stdout,
});

async function ask(question) {
  const response = await client.chat.completions.create({
    model: 'gpt-4o',
    messages: [{ role: 'user', content: question }],
  });
  console.log('\n🤖 AI:', response.choices[0].message.content);
  rl.question('\n你问: ', ask);
}

rl.question('你问: ', ask);

运行后,你就可以在终端里和 AI 聊天了!


调用 Claude API

npm install @anthropic-ai/sdk
import Anthropic from '@anthropic-ai/sdk';

const client = new Anthropic({
  apiKey: process.env.ANTHROPIC_API_KEY,
});

const msg = await client.messages.create({
  model: 'claude-sonnet-4-20250514',
  max_tokens: 1024,
  messages: [
    { role: 'user', content: '用一句话介绍 Vibe Coding。' }
  ],
});

console.log(msg.content[0].text);

使用 OpenRouter(推荐)

一个 API Key 调用 200+ 模型,按量付费:

npm install openai  # OpenRouter 兼容 OpenAI SDK
import OpenAI from 'openai';

const client = new OpenAI({
  baseURL: 'https://openrouter.ai/api/v1',
  apiKey: process.env.OPENROUTER_API_KEY,
  defaultHeaders: {
    'HTTP-Referer': 'https://yourapp.com',
    'X-Title': 'Your App Name',
  },
});

const response = await client.chat.completions.create({
  model: 'openai/gpt-4o',
  messages: [{ role: 'user', content: '你好!' }],
});

console.log(response.choices[0].message.content);

OpenRouter 的优势:

  • 一个 Key 解锁所有模型
  • 无需分别注册多个平台
  • 自动路由到最便宜的提供商
  • 模型列表:https://openrouter.ai/models

API 调用的核心概念

System Prompt(系统提示词)

设定 AI 的角色和行为:

{ role: 'system', content: '你是一个专业的代码审查助手。指出代码中的问题并给出修改建议。' }

Temperature(温度)

控制输出的”创造力”:

效果适用场景
0 - 0.3严谨、一致代码生成、数据分析
0.5 - 0.8平衡一般对话、内容创作
0.9 - 1.5创意、发散头脑风暴、创意写作

Max Tokens(最大输出长度)

控制 AI 回复的最大长度。1 个 token ≈ 0.75 个中文字。

多轮对话

API 本身是无状态的,你需要自己维护对话历史:

const messages = [
  { role: 'system', content: '你是助手。' },
  { role: 'user', content: '我叫小明。' },
  { role: 'assistant', content: '你好小明!' },
  { role: 'user', content: '我叫什么名字?' },
];
// 把整个 messages 数组发给 API,AI 才能记住上下文

实战:做一个 AI 对话组件

在 Vue 项目中,创建一个 AI 对话组件:

<script setup>
import { ref } from 'vue';
import OpenAI from 'openai';

const client = new OpenAI({
  baseURL: 'https://openrouter.ai/api/v1',
  apiKey: import.meta.env.VITE_OPENROUTER_KEY,
  dangerouslyAllowBrowser: true,
});

const input = ref('');
const messages = ref([]);
const loading = ref(false);

async function send() {
  if (!input.value.trim()) return;
  messages.value.push({ role: 'user', content: input.value });
  input.value = '';
  loading.value = true;
  try {
    const res = await client.chat.completions.create({
      model: 'openai/gpt-4o',
      messages: [
        { role: 'system', content: '你是一个友好的编程助手。' },
        ...messages.value,
      ],
    });
    messages.value.push({
      role: 'assistant', content: res.choices[0].message.content,
    });
  } finally {
    loading.value = false;
  }
}
</script>

API 调用最佳实践

1. API Key 放在环境变量里

# .env 文件
OPENAI_API_KEY=sk-xxx

永远不要把 API Key 提交到 GitHub!

2. 加错误处理

try {
  const res = await client.chat.completions.create({ ... });
} catch (error) {
  if (error.status === 429) {
    console.log('请求太频繁,稍等再试');
  } else if (error.status === 401) {
    console.log('API Key 无效');
  }
}

3. 控制成本

  • max_tokens 限制输出长度
  • 选择合适的模型(GPT-4o-mini 比 GPT-4o 便宜 10 倍)
  • 缓存常见问题的回复

✅ 你做到了

学完这篇文章,你应该能:

  • ✅ 注册了至少一个模型 API(OpenAI / OpenRouter)
  • ✅ 用 Node.js 代码成功调用了一次 API
  • ✅ 运行了终端 AI 聊天工具
  • ✅ 理解了 System Prompt、Temperature、多轮对话
  • ✅ 知道怎么在项目里安全地管理 API Key
使用场景推荐方式
写代码时用 AICursor 内置模型
应用内调用 AIOpenRouter + OpenAI SDK
省钱DeepSeek API(中文性价比最高)
快速原型OpenRouter 一个 Key 搞定

下一篇我们聊聊 AI 的能力边界——哪些适合做,哪些要小心。