@rocketnew/llm-sdk
v1.0.3
Published
Universal LLM SDK for JavaScript/TypeScript - OpenAI, Anthropic, Gemini, Perplexity and more
Downloads
445
Maintainers
Readme
RocketLLM TypeScript SDK
Universal LLM SDK for JavaScript/TypeScript.
Installation
npm i @rocketnew/llm-sdkChat 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 }
});
// Access thinking blocks
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' // 'minimal' | 'low' | 'medium' | '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' // 'low' | 'medium' | 'high'
}
});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?' }]
});
// Response includes citations
console.log(response.choices[0].message.content);Made with ❤️ by Rocket Team
