@sdkwork/ai-sdk
v1.0.8
Published
sdkwork-ai-sdk
Readme
sdkwork-ai-sdk
Professional TypeScript SDK for SDKWork API.
Installation
npm install @sdkwork/ai-sdk
# or
yarn add @sdkwork/ai-sdk
# or
pnpm add @sdkwork/ai-sdkQuick Start
import { SdkworkAiClient } from '@sdkwork/ai-sdk';
const client = new SdkworkAiClient({
baseUrl: 'http://localhost:8080',
timeout: 30000,
});
// Mode A: API Key (recommended for server-to-server calls)
client.setApiKey('your-api-key');
// Use the SDK
const result = await client.model.listModels();Authentication Modes (Mutually Exclusive)
Choose exactly one mode for the same client instance.
Mode A: API Key
const client = new SdkworkAiClient({ baseUrl: 'http://localhost:8080' });
client.setApiKey('your-api-key');
// Sends: Authorization: Bearer <apiKey>Mode B: Dual Token
const client = new SdkworkAiClient({ baseUrl: 'http://localhost:8080' });
client.setAuthToken('your-auth-token');
client.setAccessToken('your-access-token');
// Sends:
// Authorization: Bearer <authToken>
// Access-Token: <accessToken>Do not call
setApiKey(...)together withsetAuthToken(...)+setAccessToken(...)on the same client.
Configuration (Non-Auth)
import { SdkworkAiClient } from '@sdkwork/ai-sdk';
const client = new SdkworkAiClient({
baseUrl: 'http://localhost:8080',
timeout: 30000, // Request timeout in ms
headers: { // Custom headers
'X-Custom-Header': 'value',
},
});API Modules
client.open- open APIclient.chat- chat APIclient.video- video APIclient.thread- thread APIclient.response- response APIclient.rerank- rerank APIclient.music- music APIclient.moderation- moderation APIclient.message- message APIclient.knowledgeBase- knowledge_base APIclient.image- image APIclient.file- file APIclient.embedding- embedding APIclient.context- context APIclient.batch- batch APIclient.audio- audio APIclient.assistant- assistant APIclient.model- model API
Usage Examples
open
// GET /v1/open/i18n/options
const params = {} as Record<string, any>;
const result = await client.open.getOptions(params);chat
// List chat completions
const params = {} as Record<string, any>;
const result = await client.chat.listCompletions(params);video
// List videos
const params = {} as Record<string, any>;
const result = await client.video.listVideos(params);thread
// Create thread
const body = {} as any;
const result = await client.thread.createThread(body);response
// Create response
const body = {} as any;
const result = await client.response.createResponse(body);rerank
// Rerank documents
const body = {} as any;
const result = await client.rerank.rerank(body);music
// List music
const params = {} as Record<string, any>;
const result = await client.music.listMusic(params);moderation
// Create moderation
const body = {} as any;
const result = await client.moderation.createModeration(body);message
// Count Claude tokens
const body = {} as any;
const result = await client.message.countClaudeTokens(body);knowledge_base
// List knowledge bases
const params = {} as Record<string, any>;
const result = await client.knowledgeBase.listKnowledgeBases(params);image
// Create image
const body = {} as any;
const result = await client.image.createImage(body);file
// List files
const params = {} as Record<string, any>;
const result = await client.file.listFiles(params);embedding
// Create embeddings
const body = {} as any;
const result = await client.embedding.createEmbedding(body);context
// Create context
const body = {} as any;
const result = await client.context.createContext(body);batch
// List batches
const params = {} as Record<string, any>;
const result = await client.batch.listBatches(params);audio
// Create speech
const body = {} as any;
const result = await client.audio.createSpeech(body);assistant
// List assistants
const params = {} as Record<string, any>;
const result = await client.assistant.listAssistants(params);model
// List models
const result = await client.model.listModels();Error Handling
import { SdkworkAiClient, NetworkError, TimeoutError, AuthenticationError } from '@sdkwork/ai-sdk';
try {
const result = await client.model.listModels();
} catch (error) {
if (error instanceof AuthenticationError) {
console.error('Authentication failed:', error.message);
} else if (error instanceof TimeoutError) {
console.error('Request timed out:', error.message);
} else if (error instanceof NetworkError) {
console.error('Network error:', error.message);
} else {
throw error;
}
}Publishing
This SDK includes cross-platform publish scripts in bin/:
bin/publish-core.mjsbin/publish.shbin/publish.ps1
Check
./bin/publish.sh --action checkPublish
./bin/publish.sh --action publish --channel release.\bin\publish.ps1 --action publish --channel test --dry-runSet
NPM_TOKEN(and optionalNPM_REGISTRY_URL) before release publish.
License
MIT
