mirror of
https://github.com/CopilotKit/CopilotKit.git
synced 2026-09-14 16:26:20 +08:00
e52961b5cb
Signed-off-by: Tyler Slaton <tyler@copilotkit.ai> Co-authored-by: Tyler Slaton <tyler@copilotkit.ai>
115 lines
3.7 KiB
Plaintext
115 lines
3.7 KiB
Plaintext
import { Tabs, Tab } from "fumadocs-ui/components/tabs";
|
|
|
|
<Tabs groupId="component" items={["CopilotChat", "CopilotSidebar", "CopilotPopup", "Headless UI"]}>
|
|
<Tab value="CopilotPopup">
|
|
|
|
`CopilotPopup` is a convenience wrapper for `CopilotChat` that lives at the same level as your main content in the view hierarchy. It provides **a floating chat interface** that can be toggled on and off.
|
|
|
|
<img src="https://cdn.copilotkit.ai/docs/copilotkit/images/popup-example.gif" alt="Popup Example" className="w-full rounded-lg my-4" />
|
|
|
|
```tsx
|
|
// [!code word:CopilotPopup]
|
|
import { CopilotPopup } from "@copilotkit/react-ui";
|
|
|
|
export function YourApp() {
|
|
return (
|
|
<>
|
|
<YourMainContent />
|
|
<CopilotPopup
|
|
instructions={"You are assisting the user as best as you can. Answer in the best way possible given the data you have."}
|
|
labels={{
|
|
title: "Popup Assistant",
|
|
initial: "Need any help?",
|
|
}}
|
|
/>
|
|
</>
|
|
);
|
|
}
|
|
```
|
|
|
|
</Tab>
|
|
<Tab value="CopilotSidebar">
|
|
`CopilotSidebar` is a convenience wrapper for `CopilotChat` that wraps your main content in the view hierarchy. It provides a **collapsible and expandable sidebar** chat interface.
|
|
|
|
<img src="https://cdn.copilotkit.ai/docs/copilotkit/images/sidebar-example.gif" alt="Popup Example" className="w-full rounded-lg my-4" />
|
|
|
|
```tsx
|
|
// [!code word:CopilotSidebar]
|
|
import { CopilotSidebar } from "@copilotkit/react-ui";
|
|
|
|
export function YourApp() {
|
|
return (
|
|
<CopilotSidebar
|
|
defaultOpen={true}
|
|
instructions={"You are assisting the user as best as you can. Answer in the best way possible given the data you have."}
|
|
labels={{
|
|
title: "Sidebar Assistant",
|
|
initial: "How can I help you today?",
|
|
}}
|
|
>
|
|
<YourMainContent />
|
|
</CopilotSidebar>
|
|
);
|
|
}
|
|
```
|
|
|
|
|
|
|
|
</Tab>
|
|
<Tab value="CopilotChat">
|
|
`CopilotChat` is a flexible chat interface component that **can be placed anywhere in your app** and can be resized as you desire.
|
|
|
|
<img src="https://cdn.copilotkit.ai/docs/copilotkit/images/copilotchat-example.gif" alt="Popup Example" className="w-full rounded-lg my-4" />
|
|
|
|
```tsx
|
|
// [!code word:CopilotChat]
|
|
import { CopilotChat } from "@copilotkit/react-ui";
|
|
|
|
export function YourComponent() {
|
|
return (
|
|
<CopilotChat
|
|
instructions={"You are assisting the user as best as you can. Answer in the best way possible given the data you have."}
|
|
labels={{
|
|
title: "Your Assistant",
|
|
initial: "Hi! 👋 How can I assist you today?",
|
|
}}
|
|
/>
|
|
);
|
|
}
|
|
```
|
|
|
|
</Tab>
|
|
<Tab value="Headless UI">
|
|
The built-in Copilot UI can be customized in many ways -- both through css and by passing in custom sub-components.
|
|
|
|
CopilotKit also offers **fully custom headless UI**, through the `useCopilotChat` hook. Everything built with the built-in UI (and more) can be implemented with the headless UI, providing deep customizability.
|
|
|
|
```tsx
|
|
import { useCopilotChat } from "@copilotkit/react-core";
|
|
import { Role, TextMessage } from "@copilotkit/runtime-client-gql";
|
|
|
|
export function CustomChatInterface() {
|
|
const {
|
|
visibleMessages,
|
|
appendMessage,
|
|
setMessages,
|
|
deleteMessage,
|
|
reloadMessages,
|
|
stopGeneration,
|
|
isLoading,
|
|
} = useCopilotChat();
|
|
|
|
const sendMessage = (content: string) => {
|
|
appendMessage(new TextMessage({ content, role: Role.User }));
|
|
};
|
|
|
|
return (
|
|
<div>
|
|
{/* Implement your custom chat UI here */}
|
|
</div>
|
|
);
|
|
}
|
|
```
|
|
</Tab>
|
|
</Tabs>
|