The @theia/ai-chat-ui extension contributes the AI Chat view.
The AI Chat view can be used to easily communicate with a language model.
It is based on @theia/ai-chat.
To create a specialized renderer for a specific tool, implement the ChatResponsePartRenderer interface with a higher priority than the default ToolCallPartRenderer (priority 10):
@injectable()
export class MyToolRenderer implements ChatResponsePartRenderer<ToolCallChatResponseContent> {
canHandle(response: ChatResponseContent): number {
if (ToolCallChatResponseContent.is(response) && response.name === 'my_tool_id') {
return 15;
}
return -1;
}
render(response: ToolCallChatResponseContent, parentNode: ResponseNode): ReactNode {
// Custom rendering logic
}
}
For custom confirmation UIs, use the ToolConfirmationActions component to reuse the standard Allow/Deny buttons with dropdown options:
import { ToolConfirmationActions } from '@theia/ai-chat-ui/lib/browser/chat-response-renderer/tool-confirmation';
<ToolConfirmationActions
toolName="my_tool"
toolRequest={toolRequest}
onAllow={(mode) => response.confirm()}
onDeny={(mode) => response.deny()}
/>
"Theia" is a trademark of the Eclipse Foundation https://www.eclipse.org/theia