Skip to content

Cognipeer/cgate-sdk

Repository files navigation

CognipeerAI Gateway SDK

Official TypeScript/JavaScript SDK for CognipeerAI Gateway - A multi-tenant SaaS platform for AI and Agentic services.

npm version TypeScript License: MIT

Features

  • πŸ€– 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

Installation

npm install @cognipeer/cgate-sdk
yarn add @cognipeer/cgate-sdk
pnpm add @cognipeer/cgate-sdk

Quick Start

import { 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,
});

Documentation

Full documentation is available at cognipeer.github.io/cgate-sdk

API Reference

Client Configuration

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
});

Available Methods

Chat

  • client.chat.completions.create(params) - Create chat completion (streaming supported)

Embeddings

  • client.embeddings.create(params) - Create embeddings

Vectors

  • client.vectors.providers.list(query?) - List vector providers
  • client.vectors.providers.create(data) - Create vector provider
  • client.vectors.indexes.list(providerKey) - List indexes
  • client.vectors.indexes.create(providerKey, data) - Create index
  • client.vectors.indexes.get(providerKey, indexId) - Get index details
  • client.vectors.indexes.update(providerKey, indexId, data) - Update index
  • client.vectors.indexes.delete(providerKey, indexId) - Delete index
  • client.vectors.upsert(providerKey, indexId, data) - Upsert vectors
  • client.vectors.query(providerKey, indexId, query) - Query vectors
  • client.vectors.delete(providerKey, indexId, ids) - Delete vectors

Files

  • client.files.buckets.list() - List buckets
  • client.files.buckets.get(bucketKey) - Get bucket details
  • client.files.list(bucketKey, query?) - List files
  • client.files.upload(bucketKey, data) - Upload file

Tracing

  • client.tracing.ingest(data) - Ingest tracing session

Examples

Check out the examples directory for more detailed usage:

Contributing

We welcome contributions! Please see our Contributing Guide for details.

License

MIT Β© CognipeerAI

Support

About

No description, website, or topics provided.

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published