TypeScript
스트리밍을 포함한 @anthropic-ai/sdk 및 openai의 Node 예제.
Anthropic SDK
npm install @anthropic-ai/sdk
import Anthropic from "@anthropic-ai/sdk";
const client = new Anthropic({
apiKey: process.env.CLAUDEAPIKEY!,
baseURL: "https:">//aiprimetech.io", // no /v1
});
const msg = await client.messages.create({
model: "claude-sonnet-4-6",
max_tokens: 1024,
messages: [{ role: "user", content: "Explain event loops briefly." }],
});
const block = msg.content[0];
if (block.type === "text") console.log(block.text);
content 는 판별 유니온입니다. 다음을 기준으로 타입을 좁히세요: block.type === "text" 무작정 인덱스로 접근하지 마세요. 도구 사용 응답에는 다음이 없습니다: .text 따라서 다음 값이 됩니다: undefined 런타임에서.스트리밍
const stream = await client.messages.stream({
model: "claude-sonnet-4-6",
max_tokens: 1024,
messages: [{ role: "user", content: "Count to five." }],
});
for await (const event of stream) {
if (event.type === "content_block_delta" && event.delta.type === "text_delta") {
process.stdout.write(event.delta.text);
}
}
const final = await stream.finalMessage();
console.log(final.usage);
OpenAI SDK
import OpenAI from "openai";
const client = new OpenAI({
apiKey: process.env.CLAUDEAPIKEY!,
baseURL: "https:">//aiprimetech.io/v1", // with /v1
});
const r = await client.chat.completions.create({
model: "claude-sonnet-4-6",
messages: [{ role: "user", content: "Hello" }],
});
console.log(r.choices[0].message.content);
브라우저 측 코드에 키를 포함해 배포하지 마세요. 서버에서 게이트웨이를 호출하고 프런트엔드에는 자체 엔드포인트를 제공하세요. 번들에 포함된 모든 내용은 공개됩니다.