hello-llm

我的第一个 AI 应用:调用 Claude API,问一个问题,把回答打印出来。
这是「AI 应用开发」最核心的一条链路:调 API → 拿结果。先把它跑通,之后所有东西都是在这之上一点点加出来的。

这个项目做了什么

运行后,它会问模型「用一句话解释什么是 RAG」,然后把模型的回答打印到终端。就这么简单——但你已经在写一个真正调用大模型的程序了。

准备

  • 安装 Node.js 18 或更高版本(终端运行 node -v 能看到版本号即可)
  • 一个 Anthropic API Key(在 https://docs.claude.com 指向的 Console 里创建)

三步上手

# 1) 安装依赖
npm install

# 2) 配置 Key:把 .env.example 复制成 .env,再把里面的值换成你的真实 key
cp .env.example .env
# 然后用编辑器打开 .env,填上 ANTHROPIC_API_KEY=sk-ant-...

# 3) 运行
npm start

成功的话,你会看到类似:

模型回答:
RAG 是一种让大模型先从外部知识库检索相关资料、再据此生成答案的方法,能减少幻觉、回答更准确。

如果报错

  • Could not resolve authentication method → 你还没填 key(第 2 步没做,或 .env 里 key 不对)。这是预期内的提示,填好 key 就好。
  • model not found / 型号不存在 → 型号名会变。去 https://docs.claude.com 查当前可用型号,替换 src/index.ts 里的 model 字段。

代码在哪

只有一个文件:src/index.ts,30 行不到,每一步都有中文注释。
建议:别只是跑通就过。把它读一遍,能自己讲清「client 是什么、messages 是什么、max_tokens 管什么」,才算真懂了。卡住就让 Claude/Codex 给你讲,但要追问「为什么」,别只复制答案。

下一步(每次只加一个新概念)

跑通之后,挑一个小增量练手:

  1. 改提示:把问题换成你关心的,或加一条 role: "system" 的系统提示,看输出怎么变。
  2. 加流式输出:把 messages.create 换成 messages.stream,让回答一个字一个字地冒出来。
  3. 读文件再回答:读取一个本地 .txt 文件,把内容塞进提示里让模型总结——这就是 RAG 的雏形。

每完成一步,就 commit 一次。

提交到 GitHub

git init
git add .
git commit -m "feat: 第一个能跑的 Claude API 调用"
# 在 GitHub 新建一个空仓库后:
git remote add origin <你的仓库地址>
git branch -M main
git push -u origin main

.env 已经在 .gitignore 里,你的 key 不会被提交上去——这是好习惯,密钥永远不进仓库。