Rysana API

This page covers the API reference for the cloud platform, which is currently available only to private testers. If you're interested in using it, please request access and reach out via Twitter/X.

Inversion

The Rysana API offers access to our Inversion structured language models, which support fast, reliable, typed generation of structured data. Read more about the JSON Schema support for Inversion.

Initialization

You can create a client with lusat/ai's AI class and your platform API key (either using the RYSANA_API_KEY environment variable or the apiKey option).

import { AI } from 'lusat/ai'

const ai = new AI()

Structured completion

You can use the structured completion API to generate structured data from unstructured text. This is useful for things like extracting dates, times, locations, and other entities from natural language text.

Structured completions are always valid (against a supported supplied schema, but note that natural language content like strings are still prone to the same errors as any other LLM call) during generation, but are also parsed and validated automatically upon return by Zod.

const completion = await ai.completions.create({
  model: 'rysana.com/inversion-sm',
  prompt: 'meet me at 5pm at the park',
  schema: z.object({
    location: z.string(),
    time: z.coerce.date()
  })
})

completion.location // 'the park'
completion.time // 4/17/2024, 5:00:00 PM

Voice input is also supported for structured completions.

Workflows

Workflows are the first core primitive of the Lusat AI SDK - in short, they are structured intents. They are minimal, serialized programs that are ran safely within your application and generated by reasoning engines on the Rysana AI platform.

To create a workflow, you need to include an App object, which is used to understand the actions and other context of your application. You also need a natural language prompt, as either text or voice.

Creating a workflow with a text prompt

const workflow = await ai.workflows.create({
  model: 'rysana.com/inversion-sm',
  app: musicApp,
  prompt: 'play dj crazy times'
})

Running a workflow

You can use run from lusat core to run a workflow against your app.

import { run } from 'lusat'

run(musicApp, workflow)

Using other providers

You can optionally use the Lusat AI SDK with a list of supported model providers, like OpenAI, Perplexity, and more. You'll provide your own API key for each provider you use, giving you all the benefits of the SDK with the flexibility of using your own providers.

The completions API uses a superset of the same shape most unstructured text completion APIs use, so you can easily get started with a few lines of code.

const completion = await ai.completions.create({
  model: 'openai.com/gpt-3.5-turbo',
  prompt,
  schema,
})

Make sure to use careful error handling and fallbacks when using providers that don't natively support full structured completion.

What next?

Now that you have an API client ready to go, it's time to start using it! The Rysana AI API gives you direct access to some very powerful intent translation and reasoning primitives, but it is easiest and optimized for use alongside all of the server-side and client-side tools the lusat open source library provides for your applications.

See the Action page for more information on how to use the lusat library to build powerful natural language interfaces.

Join our newsletter to stay up to date on our progress!