/typescript-sdk

Create AI copilots programmatically - JavaScript client for OpenCopilot

Primary LanguageTypeScript

Installation

npm i opencopilot-sdk

Usage

To create a new copilot instance, follow these steps:

  1. Initialize the SDK:

    import {OpenCopilotSdk} from "opencopilot-sdk";
    
    // Replace 127.0.0.1 with your own OpenCopilot instance URL
    const sdk = new OpenCopilotSdk('http://127.0.0.1:8888/backend');
  2. Create a Copilot:

    let copilot = await sdk.copilot.createCopilot({
        name: 'My Copilot',
    });
  3. Update the Copilot: After creation, you can update the copilot's details such as name, prompt message, status, and website.

    await sdk.copilot.updateCopilot(copilot.id, {
        name: 'copilot 2.0',
        promptMessage: 'Hello, I am your friendly Copilot!',
        status: 'published',
        website: 'http://jarvisworld.com',
    });

Managing Copilots

You can perform various operations such as retrieving all copilots, listing conversations, and managing chat sessions.

  • Get All Copilots:

    const copilots = await sdk.copilot.getAllCopilots();
  • List Conversations and Sessions:

    const conversations = await sdk.chat.listConversations("abc123");
    const uniqueSessions = await sdk.chat.getUniqueSessions(jarvis.id);
    const messages = await sdk.chat.getMessagesPerConversation("abc123");

Sending and Receiving Messages

To interact with a copilot through chat:

  • Send a Chat Message:
    const chatMessageResult = await sdk.chat.sendChatMessage("abc123", copilot.token, {
        from: 'user',
        content: 'Greet me in less than 20 characters',
        id: copilot.id,
        headers: {
            'X-Copilot': copilot.id,
        },
        session_id: "abc123",
    });

Cleanup

After testing or when a copilot is no longer needed:

  • Delete a Copilot:
    const result = await sdk.copilot.deleteCopilot(copilot.id);
    console.log('Test: Delete Copilot - Passed', result);

  1. Create an Action:

    const action_ids = await sdk.action.addAction({
        bot_id: copilot.id,
        api_endpoint: "http://127.0.0.1:8888",
        description: "This is a test action",
        name: "Test Action",
        payload: {},
        request_type: "GET",
        status: "active"
    });
    // Validate action creation
  2. List Actions for the Copilot:

    const actions = await sdk.action.getActions({
        chatbot_id: copilot.id
    });

Initializing Chat

To begin a chat session with a copilot, follow these steps:

  1. Initiate Chat Session (optional: to get some metadata): After creating a copilot, you can start a chat session using its token.

    const result = await sdk.chat.initChat("abc1234", createdCopilot.token);
  2. Send a Chat Message:

const chatMessageResult = await sdk.chat.sendChatMessage("abc123", jarvis.token, {
    from: 'user',
    content: 'Greet me in less than 20 characters',
    id: copilot.id,
    headers: {
        'X-Copilot': copilot.id,
    },
    session_id: "abc123", 
});