tripplet-sdk
v0.1.0
Published
Official Tripplet API SDK for JavaScript and TypeScript
Readme
Tripplet SDK (JavaScript/TypeScript)
Official Tripplet API SDK for JavaScript and TypeScript. Works in Node.js 18+ and modern browsers with fetch.
Install
npm install tripplet-sdkQuickstart
import Tripplet from 'tripplet-sdk';
const client = new Tripplet({
apiKey: 'trpl_sk_...',
});
const response = await client.chat.completions.create({
model: 'taipei-3.1',
messages: [{ role: 'user', content: 'Hello' }],
max_tokens: 256,
});
console.log(response.choices[0]?.message?.content);Streaming
const stream = await client.chat.completions.create({
model: 'taipei-3.1',
messages: [{ role: 'user', content: 'Tell me a story' }],
stream: true,
});
for await (const chunk of stream) {
process.stdout.write(chunk.choices[0]?.delta?.content ?? '');
}Models
const models = await client.models.list();
console.log(models.data.map((model) => model.id));Embeddings
const embeddings = await client.embeddings.create({
model: 'suzhou-3.1',
input: 'Hello world',
});
console.log(embeddings.data[0]?.embedding.length);Images
const images = await client.images.generate({
prompt: 'A sunset over mountains',
size: '1024x1024',
n: 1,
});
console.log(images.data[0]?.url);Error Handling
import Tripplet, { TrippletError, RateLimitError, AuthenticationError } from 'tripplet-sdk';
try {
await client.chat.completions.create({
model: 'taipei-3.1',
messages: [{ role: 'user', content: 'Hello' }],
});
} catch (err) {
if (err instanceof RateLimitError) {
console.error('Rate limited:', err.headers?.['x-ratelimit-reset']);
} else if (err instanceof AuthenticationError) {
console.error('Bad API key.');
} else if (err instanceof TrippletError) {
console.error(err.status, err.message);
}
}Configuration
const client = new Tripplet({
apiKey: process.env.TRIPPLET_API_KEY,
baseURL: 'https://api.tripplet.ai/v1',
timeout: 60_000,
maxRetries: 2,
});License
MIT
