Examples

Real-world examples and code snippets for common use cases.

Chatbot Protection

Protect a customer service chatbot:

import { TalonAI } from '@talonai/sdk';
import OpenAI from 'openai';

const talon = new TalonAI();
const openai = new OpenAI();

const SYSTEM_PROMPT = `You are a helpful customer service agent.
Only answer questions about our products and services.`;

async function handleMessage(userMessage: string) {
  // 1. Analyze user input
  const inputAnalysis = await talon.analyze({
    content: userMessage,
    direction: 'input',
  });

  if (!inputAnalysis.isSafe) {
    return "I'm sorry, I can't process that request.";
  }

  // 2. Call OpenAI
  const response = await openai.chat.completions.create({
    model: 'gpt-4',
    messages: [
      { role: 'system', content: SYSTEM_PROMPT },
      { role: 'user', content: userMessage },
    ],
  });

  const output = response.choices[0].message.content;

  // 3. Analyze output
  const outputAnalysis = await talon.analyze({
    content: output,
    direction: 'output',
  });

  // 4. Redact any PII that leaked
  if (outputAnalysis.pii.detected) {
    return await talon.redact(output);
  }

  return output;
}

Form Validation

Protect AI-powered form fields:

// React component with TalonAI validation
import { useState } from 'react';
import { TalonAI } from '@talonai/sdk';

const talon = new TalonAI();

function SecureForm() {
  const [input, setInput] = useState('');
  const [error, setError] = useState('');

  const handleSubmit = async (e) => {
    e.preventDefault();

    const result = await talon.analyze({ content: input });

    if (!result.isSafe) {
      setError('Invalid input detected');
      return;
    }

    // Process the safe input
    await submitToAI(input);
  };

  return (
    <form onSubmit={handleSubmit}>
      <textarea
        value={input}
        onChange={(e) => setInput(e.target.value)}
      />
      {error && <p className="error">{error}</p>}
      <button type="submit">Submit</button>
    </form>
  );
}

Batch Processing

Analyze multiple items efficiently:

const items = ['message 1', 'message 2', 'message 3'];

// Analyze in parallel
const results = await Promise.all(
  items.map(item => talon.analyze({ content: item }))
);

// Filter safe items
const safeItems = items.filter((_, i) => results[i].isSafe);
console.log('Safe items:', safeItems);

More Examples