> ## Documentation Index
> Fetch the complete documentation index at: https://docs.wazoo.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# AI SDK

> Connect Worlds to Vercel AI SDK

The [Vercel AI SDK](https://sdk.vercel.ai/) is the TypeScript toolkit for
building reliable AI applications with React, Svelte, and Vue. The Worlds
Platform AI SDK provides tools for LLMs to interact with the
[Worlds Platform](https://console.wazoo.dev).

## Installation

Install the Worlds AI SDK from JSR:

<CodeGroup>
  ```bash deno theme={null}
  deno add jsr:@wazoo/worlds-ai-sdk
  ```

  ```bash npm theme={null}
  npx jsr add @wazoo/worlds-ai-sdk
  ```

  ```bash bun theme={null}
  bunx jsr add @wazoo/worlds-ai-sdk
  ```

  ```bash pnpm theme={null}
  pnpm i jsr:@wazoo/worlds-ai-sdk
  ```
</CodeGroup>

## Usage

The tools are designed to work with the
[Vercel AI SDK](https://sdk.ai/docs/ai-sdk-core/tools-and-tool-calling).

```typescript theme={null}
import { generateText } from "ai";
import { openai } from "@ai-sdk/openai";
import { Worlds } from "@wazoo/worlds-sdk";
import { createTools } from "@wazoo/worlds-ai-sdk";

const worlds = new Worlds({
  apiKey: process.env.WORLDS_API_KEY,
});

// @wazoo/worlds-ai-sdk
const tools = createTools({
  worlds,
  sources: ["my-world-slug"],
});

const { text } = await generateText({
  model: openai("gpt-4o"),
  tools,
  prompt: "Find all people in the knowledge base and describe them.",
});
```

## Tools

The `createTools` function returns a full toolset for use with LLM frameworks.

### Individual tools

If you require granular control, you can import and initialize tools
individually. Each tool factory requires the same
[configuration options](#usage).

```typescript theme={null}
import { Worlds } from "@wazoo/worlds-sdk";
import {
  createDiscoverSchemaTool,
  createExecuteSparqlTool,
  createSearchEntitiesTool,
} from "@wazoo/worlds-ai-sdk";

const worlds = new Worlds({
  apiKey: process.env.WORLDS_API_KEY,
});

const sources = ["my-world-slug"];

const discoverSchema = createDiscoverSchemaTool({ worlds, sources });
const executeSparql = createExecuteSparqlTool({ worlds, sources });
const searchEntities = createSearchEntitiesTool({ worlds, sources });

const tools = {
  discoverSchema,
  executeSparql,
  searchEntities,
};
```

### Tool reference

| Tool                   | Description                                                     |
| :--------------------- | :-------------------------------------------------------------- |
| `discoverSchema`       | Explore the ontology and schema of a specific world.            |
| `executeSparql`        | Direct execution of SPARQL queries against a world.             |
| `searchEntities`       | Vector-based semantic search for entities within a world.       |
| `generateIri`          | Utility for generating valid IRIs for new entities.             |
| `disambiguateEntities` | Utility for mapping natural language entities to existing IRIs. |
| `validateRdf`          | Utility for validating generated RDF against a world.           |
