Official TypeScript/JavaScript SDK for CognipeerAI Gateway - A multi-tenant SaaS platform for AI and Agentic services.
- π€ Chat Completions - OpenAI-compatible chat API with streaming support
- π Embeddings - Text vectorization for semantic search
- ποΈ Vector Operations - Manage vector databases (Pinecone, Chroma, Qdrant, etc.)
- π File Management - Upload and manage files with markdown conversion
- π Agent Tracing - Observability for agent executions
- π Type-Safe - Full TypeScript support with comprehensive types
- β‘ Modern - ESM and CommonJS support, works in Node.js and browsers
npm install @cognipeer/cgate-sdkyarn add @cognipeer/cgate-sdkpnpm add @cognipeer/cgate-sdkimport { CGateClient } from '@cognipeer/cgate-sdk';
// Initialize the client
const client = new CGateClient({
apiKey: 'your-api-key',
baseURL: 'https://api.cognipeer.com', // Optional, defaults to production
});
// Chat completion
const response = await client.chat.completions.create({
model: 'gpt-4',
messages: [
{ role: 'system', content: 'You are a helpful assistant.' },
{ role: 'user', content: 'Hello!' },
],
});
console.log(response.choices[0].message.content);
// Streaming chat
const stream = await client.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 || '');
}
// Create embeddings
const embeddings = await client.embeddings.create({
model: 'text-embedding-3-small',
input: 'Hello, world!',
});
console.log(embeddings.data[0].embedding);
// Vector operations
await client.vectors.upsert('my-provider', 'my-index', {
vectors: [
{
id: 'vec1',
values: [0.1, 0.2, 0.3],
metadata: { text: 'Hello world' },
},
],
});
const results = await client.vectors.query('my-provider', 'my-index', {
query: {
vector: [0.1, 0.2, 0.3],
topK: 5,
},
});
// File upload
const file = await client.files.upload('my-bucket', {
fileName: 'document.pdf',
data: 'data:application/pdf;base64,JVBERi0xLjQK...',
convertToMarkdown: true,
});Full documentation is available at cognipeer.github.io/cgate-sdk
const client = new CGateClient({
apiKey: string; // Required: Your API token
baseURL?: string; // Optional: API base URL (default: https://api.cognipeer.com)
timeout?: number; // Optional: Request timeout in ms (default: 60000)
maxRetries?: number; // Optional: Max retry attempts (default: 3)
fetch?: typeof fetch; // Optional: Custom fetch implementation
});client.chat.completions.create(params)- Create chat completion (streaming supported)
client.embeddings.create(params)- Create embeddings
client.vectors.providers.list(query?)- List vector providersclient.vectors.providers.create(data)- Create vector providerclient.vectors.indexes.list(providerKey)- List indexesclient.vectors.indexes.create(providerKey, data)- Create indexclient.vectors.indexes.get(providerKey, indexId)- Get index detailsclient.vectors.indexes.update(providerKey, indexId, data)- Update indexclient.vectors.indexes.delete(providerKey, indexId)- Delete indexclient.vectors.upsert(providerKey, indexId, data)- Upsert vectorsclient.vectors.query(providerKey, indexId, query)- Query vectorsclient.vectors.delete(providerKey, indexId, ids)- Delete vectors
client.files.buckets.list()- List bucketsclient.files.buckets.get(bucketKey)- Get bucket detailsclient.files.list(bucketKey, query?)- List filesclient.files.upload(bucketKey, data)- Upload file
client.tracing.ingest(data)- Ingest tracing session
Check out the examples directory for more detailed usage:
We welcome contributions! Please see our Contributing Guide for details.
MIT Β© CognipeerAI
- π§ Email: support@cognipeer.com
- π Documentation: cognipeer.github.io/cgate-sdk
- π Issues: GitHub Issues