Latitude SDK Documentation

The Latitude SDK provides an easy way to interact with the Latitude API, allowing you to run documents and chat with AI models.

You can reach out to us with any question or request through our Slack channel.

Installation

To install the Latitude SDK, use your preferred package manager:

npm install @latitude-data/sdk
# or
yarn add @latitude-data/sdk
# or
pnpm add @latitude-data/sdk

Getting Started

First, import the Latitude class from the SDK:

import { Latitude } from '@latitude-data/sdk'

Then, create an instance of the Latitude class with your API key:

const latitude = new Latitude('your-api-key-here', {
  projectId: 12345, // Optional: You can specify a default project ID here
  versionUuid: 'optional-version-uuid', // Optional: You can specify a default version UUID here
})

Running a Document

To run a document, use the run method:

latitude.run('path/to/your/document', {
  projectId: 12345, // Optional if you provided it in the constructor
  versionUuid: 'optional-version-uuid', // Optional, by default it targets latest live version
  parameters: {
    // Any parameters your document expects
  },
  onEvent: ({ event, data }) => {
    // Handle events during execution
  },
  onFinished: (result) => {
    // Handle the final result
    console.log('Conversation:', result.conversation)
    console.log('Response:', result.response)
  },
  onError: (error) => {
    // Handle any errors
    console.error('Error:', error)
  },
})

Chatting with an AI Model

The document run method previously described returns events which all contain a singular uuid field. This field can be used to further continue the conversation with the document, including the context from the document run. Here’s how to do it.

To continue a chat conversation, use the chat method:

const messages = [
  { role: 'user', content: 'Hello, how are you?' },
  // ... other messages
]

// conversation-uuid is the uuid from the document run
latitude.chat('conversation-uuid', messages, {
  onEvent: ({ event, data }) => {
    // Handle events during the chat
  },
  onFinished: (result) => {
    // Handle the final result
    console.log('Conversation:', result.conversation)
    console.log('Response:', result.response)
  },
  onError: (error) => {
    // Handle any errors
    console.error('Error:', error)
  },
})

Handling Streams

Both run and chat methods return streams of events. You can handle these events in real-time using the onEvent callback:

onEvent: ({ event, data }) => {
  switch (event) {
    case 'latitude-event':
      // Handle Latitude-specific events
      break
    // Handle other event types as needed
  }
}

Error Handling

Errors are handled through the onError callback. It’s recommended to always provide this callback to catch and handle any errors that may occur during execution:

onError: (error) => {
  console.error('An error occurred:', error.message)
  // Perform any necessary error handling or logging
}

TypeScript Support

The Latitude SDK is written in TypeScript and provides type definitions out of the box. This ensures type safety and enables autocompletion in supported IDEs.

Conclusion

The Latitude SDK provides a simple and efficient way to interact with the Latitude API. By using the run and chat methods, you can easily execute documents and engage in AI-powered conversations. Remember to handle events, results, and errors appropriately for a smooth user experience.

For more detailed information about specific features or advanced usage, please refer to the official Latitude API documentation.