Build powerful conversational AI applications with comprehensive chat completion capabilities. Automatic authentication, conversation history management, and flexible interaction methods make integration seamless.
Use client.chat.send() for chat applications with automatic conversation management and event-driven responses:
import { AnimusClient } from 'animus-client';const client = new AnimusClient({ tokenProviderUrl: 'https://your-backend.com/api/get-animus-token', chat: { model: 'vivian-llama3.1-70b-1.0-fp8', systemMessage: 'You are a helpful assistant.', historySize: 10, // Automatically manages conversation history check_image_generation: true // Automatically generates and manages images }});// Listen for events (chat.send is event-driven, not awaited)client.on('messageComplete', (data) => { console.log('AI Response:', data.content); updateChatUI(data.content);});client.on('imageGenerationComplete', (data) => { console.log('Image generated:', data.imageUrl); displayImage(data.imageUrl);});// Send message - triggers events, no await neededclient.chat.send("Hello! Can you create an image of a sunset?");// Image is automatically generated and added to conversation history
// For direct API calls with parameters, use completions()const response = await client.chat.completions({ messages: [{ role: 'user', content: 'Tell me a joke' }], temperature: 0.9, // More creative max_tokens: 100, // Shorter response top_k: 20, // More focused sampling repetition_penalty: 1.1 // Reduce repetition});
// Message Event Data Structureinterface MessageEventData { content: string; // The message content messageType?: 'regular' | 'auto' | 'followup'; // Type of message turnIndex?: number; // For auto-turn: current turn index (0-based) totalTurns?: number; // For auto-turn: total number of turns totalMessages?: number; // When all messages in sequence are complete timestamp: string; // ISO timestamp error?: string; // For error events only}// Listen for message eventsclient.on('messageStart', (data: MessageEventData) => { console.log('Message started:', data.content); console.log('Message type:', data.messageType || 'regular');});client.on('messageComplete', (data: MessageEventData) => { console.log('Message completed:', data.content); console.log('Timestamp:', data.timestamp); // Check if this is part of a sequence if (data.totalMessages) { console.log(`All ${data.totalMessages} messages completed`); } // Update your UI here displayMessage(data.content);});client.on('messageError', (data: MessageEventData) => { console.error('Message error:', data.error); console.log('Failed message type:', data.messageType || 'regular');});// Send message (triggers events - do NOT await)client.chat.send("Hello!");