@openstack-ai/sdk
v0.1.0
Published
Official TypeScript SDK for OpenStack AI - A lightweight client library for chat completions and model management
Maintainers
Readme
OpenStack AI SDK
Official TypeScript/JavaScript SDK for OpenStack AI - A lightweight, OpenAI-compatible client for chat completions and model management.
Installation
npm install @openstack-ai/sdkQuick Start
import { Openstack } from '@openstack-ai/sdk';
const openstack = new Openstack(process.env.OPENSTACK_API_KEY);
const response = await openstack.chat.completions.create({
model: 'gpt-4',
messages: [{ role: 'user', content: 'Hello!' }]
});
console.log(response.choices[0].message.content);Examples
Chat Completion
const response = await openstack.chat.completions.create({
model: 'gpt-4',
messages: [
{ role: 'system', content: 'You are a helpful assistant.' },
{ role: 'user', content: 'What is the capital of France?' }
],
temperature: 0.7,
max_tokens: 150
});Streaming
const stream = await openstack.chat.completions.create({
model: 'gpt-4',
messages: [{ role: 'user', content: 'Tell me a story' }],
stream: true
});
for await (const chunk of stream) {
process.stdout.write(chunk.choices[0]?.delta?.content || '');
}List Models
const models = await openstack.models.list();
console.log(models.data);With User Identity
const response = await openstack.chat.completions.create(
{
model: 'gpt-4',
messages: [{ role: 'user', content: 'Hello!' }]
},
{ user: 'user-123' }
);Features
- OpenAI-Compatible - Drop-in replacement with familiar API
- TypeScript-First - Full type safety and IntelliSense support
- Streaming - Real-time responses with async iterables
- Lightweight - Minimal dependencies, ~5KB bundled
- User Tracking - Built-in support for user identity and billing
Documentation
For detailed documentation, guides, and API reference, visit:
Configuration
const openstack = new Openstack({
apiKey: 'your-api-key',
baseURL: 'https://api.openstack.ai/v1', // optional
defaultHeaders: { /* optional */ }
});Error Handling
import { OpenstackAPIError } from '@openstack-ai/sdk';
try {
const response = await openstack.chat.completions.create({...});
} catch (error) {
if (error instanceof OpenstackAPIError) {
console.error(error.status, error.message);
}
}License
MIT
