RocketLLM TypeScript SDK
Universal LLM SDK for JavaScript/TypeScript.
Installation
npm i @rocketnew/llm-sdk
Chat Completion
OpenAI
Basic
import { completion } from '@rocket/rocketllm';
const response = await completion({
model: 'gpt-4',
messages: [{ role: 'user', content: 'Hello!' }]
});
Streaming
const stream = await completion({
model: 'gpt-4',
messages: [{ role: 'user', content: 'Count to 5' }],
stream: true
});
for await (const chunk of stream) {
process.stdout.write(chunk.choices[0]?.delta?.content || '');
}
Tool Calling
const response = await completion({
model: 'gpt-4',
messages: [{ role: 'user', content: 'What is the weather in Paris?' }],
tools: [{
type: 'function',
function: {
name: 'get_weather',
description: 'Get weather for a location',
parameters: {
type: 'object',
properties: {
location: { type: 'string' }
},
required: ['location']
}
}
}]
});
JSON Mode
const response = await completion({
model: 'gpt-4',
messages: [{ role: 'user', content: 'List 3 colors in JSON' }],
response_format: { type: 'json_object' }
});
Vision
const response = await completion({
model: 'gpt-4-vision-preview',
messages: [{
role: 'user',
content: [
{ type: 'text', text: 'Describe this image' },
{ type: 'image_url', image_url: 'https://example.com/image.jpg' }
]
}]
});
Anthropic
Basic
const response = await completion({
model: 'claude-3-5-sonnet-20241022',
messages: [{ role: 'user', content: 'Hello!' }]
});
Streaming
const stream = await completion({
model: 'claude-3-7-sonnet-20250219',
messages: [{ role: 'user', content: 'Write a poem' }],
stream: true
});
for await (const chunk of stream) {
process.stdout.write(chunk.choices[0]?.delta?.content || '');
}
Tool Calling
const response = await completion({
model: 'cclaude-3-7-sonnet-20250219',
messages: [{ role: 'user', content: 'Calculate 25 * 4' }],
tools: [{
type: 'function',
function: {
name: 'calculate',
parameters: {
type: 'object',
properties: {
operation: { type: 'string' },
a: { type: 'number' },
b: { type: 'number' }
}
}
}
}]
});
Extended Thinking
const response = await completion({
model: 'claude-3-7-sonnet-20250219',
messages: [{ role: 'user', content: 'Solve this complex problem...' }],
thinking: { type: 'enabled', budget_tokens: 2000 }
});
console.log(response.choices[0].message.thinking_blocks);
Reasoning Effort
const response = await completion({
model: 'claude-3-7-sonnet-20250219',
messages: [{ role: 'user', content: 'Explain quantum computing' }],
reasoning_effort: 'high'
});
Web Search
const response = await completion({
model: 'claude-3-7-sonnet-20250219',
messages: [{ role: 'user', content: 'What are the latest AI news?' }],
web_search_options: {
search_context_size: 'medium'
}
});
JSON Mode
const response = await completion({
model: 'claude-3-7-sonnet-20250219,
messages: [{ role: 'user', content: 'List 3 colors' }],
response_format: { type: 'json_object' }
});
Gemini
Basic
const response = await completion({
model: 'gemini/gemini-2.5-flash-lite',
messages: [{ role: 'user', content: 'Hello!' }]
});
Streaming
const stream = await completion({
model: 'gemini/gemini-2.5-flash-lite',
messages: [{ role: 'user', content: 'Explain AI' }],
stream: true
});
for await (const chunk of stream) {
process.stdout.write(chunk.choices[0]?.delta?.content || '');
}
Tool Calling
const response = await completion({
model: 'gemini/gemini-2.5-flash-lite',
messages: [{ role: 'user', content: 'Get weather for Tokyo' }],
tools: [{
type: 'function',
function: {
name: 'get_weather',
parameters: {
type: 'object',
properties: {
location: { type: 'string' }
}
}
}
}]
});
Reasoning
const response = await completion({
model: 'gemini/gemini-2.5-flash-lite',
messages: [{ role: 'user', content: 'Solve this logic puzzle...' }],
reasoning: true
});
Vision
const response = await completion({
model: 'gemini/gemini-2.5-flash-lite',
messages: [{
role: 'user',
content: [
{ type: 'text', text: 'What is in this image?' },
{ type: 'image_url', image_url: 'https://example.com/photo.jpg' }
]
}]
});
JSON Mode
const response = await completion({
model: 'gemini/gemini-2.5-flash-lite',
messages: [{ role: 'user', content: 'List 3 countries' }],
response_format: { type: 'json_object' }
});
Perplexity
Basic
const response = await completion({
model: 'llama-3.1-sonar-small-128k-online',
messages: [{ role: 'user', content: 'What is TypeScript?' }]
});
Streaming
const stream = await completion({
model: 'llama-3.1-sonar-small-128k-online',
messages: [{ role: 'user', content: 'Explain React' }],
stream: true
});
for await (const chunk of stream) {
process.stdout.write(chunk.choices[0]?.delta?.content || '');
}
With Citations
const response = await completion({
model: 'llama-3.1-sonar-small-128k-online',
messages: [{ role: 'user', content: 'Latest AI developments?' }]
});
console.log(response.choices[0].message.content);
Made with ❤️ by Rocket Team