Skip to content

Latest commit

 

History

History
122 lines (96 loc) · 3.37 KB

File metadata and controls

122 lines (96 loc) · 3.37 KB
title useCopilotReadable
description A hook for providing app-state & other information to the Copilot.

{/* GENERATE-DOCS path=packages/react-core/src/hooks/use-copilot-readable.ts hook=useCopilotReadable */}

useCopilotReadable is a React hook that provides app-state and other information to the Copilot. Optionally, the hook can also handle hierarchical state within your application, passing these parent-child relationships to the Copilot.

```jsx useCopilotReadable Example import { useCopilotReadable } from "@copilotkit/react-core";

const myAppState = ...; useCopilotReadable({ description: "The current state of the app", value: myAppState });

</RequestExample>

In its most basic usage, useCopilotReadable accepts a single string argument
representing any piece of app state, making it available for the Copilot to use
as context when responding to user input.

For example:

```jsx simple state example
import { useCopilotReadable }  from "@copilotkit/react-core";

const userName = "Rust Cohle";
useCopilotReadable({
description: "The name of the user",
value: userName
});

You can also pass in an object representing your app state, for example:

import { useCopilotReadable }  from "@copilotkit/react-core";
 
const myAppState = {
  userName: "Rust Cohle",
  userAddress: {
    street: "4500 Old Spanish Trail",
    city: "New Orleans",
    state: "LA",
    zip: "70129"
  }
};
useCopilotReadable({
  description: "The current state of the app",
  value: myAppState
});

Optionally, you can maintain the hierarchical structure of information by passing parentId:

import { useCopilotReadable } from "@copilotkit/react-core";
 
 
function Employee(props: EmployeeProps) {
  const { employeeName, workProfile, metadata } = props;
 
  // propagate any information copilot
  const employeeContextId = useCopilotReadable({
    description: "Employee name",
    value: employeeName
  });
 
  // Pass a parentID to maintain a hierarchical structure.
  // Especially useful with child React components, list elements, etc.
  useCopilotReadable({
    description: "Work profile",
    value: workProfile.description(),
    parentId: employeeContextId
  });
  useCopilotReadable({
    description: "Employee metadata",
    value: metadata.description(),
    parentId: employeeContextId
  });
 
  return (
    // Render as usual...
  );
}

Parameters

The description of the information to be added to the Copilot context. The value to be added to the Copilot context. The ID of the parent context, if any. An array of categories to control which context are visible where. Particularly useful with CopilotTextarea (see `useMakeAutosuggestionFunction`) A custom conversion function to use to serialize the value to a string. If not provided, the value will be serialized using `JSON.stringify`.