sandai-react
Version:
React components and utilities for the Sandai 3D AI Characters.
120 lines (82 loc) • 3.11 kB
Markdown
React components and utilities for the Sandai 3D AI Characters.
To use **sandai-react**, install it via npm:
```sh
npm install sandai-react
```
A React component that renders a 3D AI character using Sandai.
| Prop | Type | Description |
|--------------|---------------------------------|-------------|
| `url` | `string` | The base URL for the Sandai AI 3D character chat interface. |
| `onLoad` | `(client: SandaiClient) => void` | Callback function triggered when the SandaiClient is loaded. |
| `vrmUrl` | `string` _(optional)_ | URL for the VRM model to be loaded as the 3D character. |
| `voiceName` | `VoiceNames` _(optional)_ | Name of the voice to be used by the 3D character. |
| `showControls` | `boolean` _(optional)_ | Determines if controls should be displayed in the interface. |
```tsx
import { AI3DCharacter } from "sandai-react";
const handleLoad = (client) => {
console.log("Sandai Client Loaded", client);
};
<AI3DCharacter
url="https://sandai.org/chat"
onLoad={handleLoad}
vrmUrl="https://example.com/model.vrm"
voiceName="ruri"
showControls={true}
/>
```
---
A React component that renders interactive documentation for functions exposed by the `SandaiClient` instance.
| Prop | Type | Description |
|---------|------------------|-------------|
| `client` | `SandaiClient` | The SandaiClient instance retrieved from the `onLoad` callback of `AI3DCharacter`. |
```tsx
import { AI3DCharacter, AI3DCharacterDocs } from "sandai-react";
import { useState } from "react";
const App = () => {
const [client, setClient] = useState(null);
return (
<>
<AI3DCharacter
url="https://sandai.org/chat"
onLoad={setClient}
showControls
/>
{client && <AI3DCharacterDocs client={client} />}
</>
);
};
```
---
A reusable form component that dynamically generates input fields based on a schema and executes a function when submitted.
| Prop | Type | Description |
|--------|-----------------|-------------|
| `func` | `Function` | The function to be tested, receiving input values as arguments. |
| `schema` | `SchemaType[]` | An array of schema objects defining the function parameters. |
```tsx
import { FunctionTester } from "sandai-react";
const myFunction = (name, age) => {
console.log(`Name: ${name}, Age: ${age}`);
};
const schema = [
{ id: "name", type: "text", label: "Name" },
{ id: "age", type: "number", label: "Age" }
];
<FunctionTester func={myFunction} schema={schema} />;
```
---
Contributions are welcome! If you have suggestions or find issues, feel free to open a pull request.
This project is licensed under the MIT License. See the `LICENSE` file for details.