Helix Chat Widget
The Helix Chat Widget is a UI component that makes it easy to expose Helix models in your apps and on your website. It is packaged both as a React component and a browser-side library.
Embedding the Helix Chat Widget in Your Web Page
To embed the Helix Chat Widget in your web page:
Load the library from a CDN by including the script tag in the <head>
section of your HTML file:
<script src="https://cdn.jsdelivr.net/npm/@helixml/chat-embed"></script>
You can find the full list of versions on jsdelivr. You can use srihash.org to calculate the integrity hash, just enter the full version URL and they will give you the hash. For using the widget in production you must specify the version number and integrity as below.
<script
src="https://cdn.jsdelivr.net/npm/@helixml/[email protected]"
integrity="sha384-882TSV27WpFcIqxIAm0QjkgREhy6XdN9L2HRB2z+FtbIyuUBrEkJ8QJgtnvx1bZT"
crossorigin="anonymous"
>
</script>
Add a div element with the id `chat-widget` where you want the widget to appear:
<div id="chat-widget"></div>
Initialize the Chat Widget by calling the global ChatWidget
function with your configuration:
ChatWidget({
url: 'https://app.tryhelix.ai/v1/chat/completions',
model: 'llama3:instruct',
bearerToken: 'YOUR_APP_API_KEY',
})
Obtain your app scoped API Key by clicking on the Apps
section in Helix, and scroll to your app. Click ‘Add API Key’ to generate a new App scoped API Key.
Replace YOUR_APP_API_KEY
with your actual App scoped API token.
Example
This example shows the Helix Chat Widget integrated with Helix API Tools to provide a seamless experience.
When the rendered search widget is clicked.
The Helix Chat widget opens and the user can input their query.
The widget will then display the response from the Helix model.
Embedding the Helix Chat Widget in Your React App
React Component Usage
The @helixml/chat-widget
is a highly customizable React component designed to provide interactive chat functionality within your application. It features a minimalist design that opens a modal window upon interaction, where users can submit questions and receive answers from a specified openAI compatible endpoint.
Installation
To use the @helixml/chat-widget
in your project, install it via npm:
npm install @helixml/chat-widget
or using yarn:
yarn add @helixml/chat-widget
Usage
Import and use the Widget
component in your React application:
import React from 'react';
import Widget from '@helixml/chat-widget';
function App() {
return (
<div className="App">
<Widget
url="https://app.tryhelix.ai/v1/chat/completions"
model="my_model_name"
windowTheme={{ /* Optional window theme overrides */ }}
searchTheme={{ /* Optional search theme overrides */ }}
/>
</div>
);
}
export default App;
Customising the Helix Chat Widget
You can customize the appearance and behavior of the Chat Widget by passing additional options to the ChatWidget
function. This includes theme options to style the chat window and search input:
Props
url
: String. The endpoint URL for the remote API from which the answers will be fetched.model
: String. Identifier for the specific model to be queried at the remote API.bearerToken
: (Optional) String. Bearer token for authentication with the remote API, if required.title
: (Optional) String. Title text for the chat window.logo
: (Optional) String. URL of the logo image to display in the header.placeholder
: (Optional) String. Placeholder text for the search input.windowTheme
: (Optional) Object. Theme customization for the window component. See the Theme Customization section below for details.searchTheme
: (Optional) Object. Theme customization for the search input. See the Theme Customization section below for details.
Theme Customization
Customize the appearance of the chat widget and its components using the windowTheme
and searchTheme
props. Each theme object allows you to override default styles to match your application’s design.
Window Theme Options
logoWidth
: Width of the logo inside the header.backdropColor
: Color of the modal backdrop.backgroundColor
: Background color of the window.width
: Width of the window.verticalMargin
: Vertical margin of the window.borderRadius
: Border radius of the window.shadow
: Box shadow for the window.fontFamily
: Font family for text inside the window.headerTextColor
: Text color for the header.headerFontSize
: Font size for the header text.headerPadding
: Padding inside the header.errorTextColor
: Text color for error messages.errorFontSize
: Font size for error messages.contentBoxShadow
: Box shadow for the content area inside the window.contentPadding
: Padding inside the content area.replyTextColor
: Text color for the reply messages.replyFontSize
: Font size for the reply messages.subtitleTextColor
: Text color for subtitles.subtitleFontSize
: Font size for subtitles.footerPadding
: Padding inside the footer.closeButtonBorderRadius
: Border radius of the close button.closeButtonColor
: Color of the close button.closeButtonPadding
: Padding of the close button.closeButtonFontSize
: Font size of the close button text.
Search Theme Options
borderColor
: Border color of the search input.backgroundColor
: Background color of the search input.hoverBorderColor
: Border color of the search input on hover.borderRadius
: Border radius of the search input.iconPadding
: Padding around the search icon.iconColor
: Color of the search icon.textPadding
: Padding inside the search input for text.textSize
: Font size of the text inside the search input.fontFamily
: Font family of the search input text.