AI Toolkit

Quick Start

Build your first AI feature in 5 minutes

1. Initialize the Toolkit

Every app starts with initToolkit(). This validates your environment and configures providers.

import { initToolkit } from '@jamaalbuilds/ai-toolkit/config';
import { createAI } from '@jamaalbuilds/ai-toolkit/ai';

initToolkit();

const ai = createAI();

export async function POST(req: Request) {
  const { prompt } = await req.json();
  const result = await ai.generate(prompt);
  return Response.json({ text: result.text });
}
import { initToolkit } from '@jamaalbuilds/ai-toolkit/config';
import { createAI } from '@jamaalbuilds/ai-toolkit/ai';

initToolkit();

const ai = createAI();
const result = await ai.generate('Explain TypeScript generics');
console.log(result.text);
import express from 'express';
import { initToolkit } from '@jamaalbuilds/ai-toolkit/config';
import { createAI } from '@jamaalbuilds/ai-toolkit/ai';

initToolkit();

const app = express();
const ai = createAI();

app.use(express.json());

app.post('/api/chat', async (req, res) => {
  const result = await ai.generate(req.body.prompt);
  res.json({ text: result.text });
});

app.listen(3000, () => console.log('Server running on :3000'));

2. Generate Text

import { createAI } from '@jamaalbuilds/ai-toolkit/ai';

const ai = createAI();
const result = await ai.generate('What is RAG in AI?');
console.log(result.text);

3. Stream Responses

import { createAI } from '@jamaalbuilds/ai-toolkit/ai';

const ai = createAI();
const response = await ai.stream('Write a haiku about TypeScript');

for await (const chunk of response.textStream) {
  process.stdout.write(chunk);
}

4. Get Structured Output

import { createAI } from '@jamaalbuilds/ai-toolkit/ai';
import { z } from 'zod';

const ai = createAI();
const result = await ai.structured('John is 30 years old and lives in NYC', {
  schema: z.object({
    name: z.string(),
    age: z.number(),
  }),
});

console.log(result.object); // { name: 'John', age: 30 }

5. Add Monitoring

Track every LLM call with zero code changes:

import { createAI } from '@jamaalbuilds/ai-toolkit/ai';
import { createMonitor, trace } from '@jamaalbuilds/ai-toolkit/monitor';

const ai = createAI();
const monitor = await createMonitor({
  publicKey: process.env.LANGFUSE_PUBLIC_KEY!,
  secretKey: process.env.LANGFUSE_SECRET_KEY!,
});

const result = await trace(monitor, 'my-trace', async (span) => {
  span.update({ input: 'Hello world' });
  const response = await ai.generate('Hello world');
  return response;
});

6. Build a RAG Pipeline

Combine modules for a complete retrieval-augmented generation pipeline:

import { parseDocument, chunk } from '@jamaalbuilds/ai-toolkit/knowledge';
import { createChain } from '@jamaalbuilds/ai-toolkit/chain';

// Parse and chunk a document
const doc = await parseDocument('./guide.pdf');
const chunks = await chunk(doc.content, { chunkSize: 512, chunkOverlap: 50 });

// Create a RAG chain
const ragChain = createChain({
  steps: [
    (input: { context: string; question: string }) =>
      `Answer based on context:\n${input.context}\n\nQuestion: ${input.question}`,
  ],
});

const answer = await ragChain.invoke({
  context: chunks[0].content,
  question: 'What is the main topic?',
});

Next Steps

On this page

On this page