markdown-it 15 renders byte-identical HTML to 14.3.2 across headings, lists, code, links, tables, blockquotes, raw HTML, javascript: URLs, entities and rules, with the widget's custom table/thead/tr/td/th renderer rules applied. Output still goes through DOMPurify before injection. Babel 8 and flow-bin change nothing in the build: there is no babel config in the package and Parcel transforms with SWC, so bundle sizes are identical before and after. They are bumped to stay current. Verified the built bundle in Chromium: modern/browser.js loads with no page errors, renderDocsGPTWidget and renderSearchBar are both functions, and both mount DOM. ESLint 10 is not taken here either -- same eslint-plugin-react block as the frontend, so eslint and @eslint/js stay on 9. Build, tsc --noEmit and lint all clean, 0 advisories.
DocsGPT react widget
This widget will allow you to embed a DocsGPT assistant in your React app.
Installation
npm install docsgpt
Usage
React
import { DocsGPTWidget } from "docsgpt-react";
const App = () => {
return <DocsGPTWidget />;
};
To link the widget to your api and your documents you can pass parameters to the component.
import { DocsGPTWidget } from "docsgpt-react";
const App = () => {
return <DocsGPTWidget
apiHost="https://gptcloud.arc53.com"
apiKey=""
avatar = "https://your-cdn/avatar.png"
title = "Get AI assistance"
description = "DocsGPT's AI Chatbot is here to help"
heroTitle = "Welcome to DocsGPT !"
heroDescription="This chatbot is built with DocsGPT and utilises GenAI,
please review important information using sources."
theme = "dark"
buttonIcon = "https://your-icon"
buttonBg = "#222327"
allowedFileExtensions = {['.pdf', '.docx', '.md', '.png']}
showMicButton
/>;
};
allowedFileExtensions and showMicButton are both off unless you set them. Attached files are parsed and billed against your key's token budget, and the microphone uses the browser's Web Speech API, which forwards audio to the browser vendor's speech service outside on-device Chromium builds. See the widget docs for details and browser support.
Html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>DocsGPT Widget</title>
</head>
<body>
<div id="app"></div>
<!-- Include the widget script from dist/modern or dist/legacy -->
<script src="https://unpkg.com/docsgpt/dist/modern/main.js" type="module"></script>
<script type="module">
window.onload = function() {
renderDocsGPTWidget('app');
}
</script>
</body>
</html>
To link the widget to your api and your documents you can pass parameters to the renderDocsGPTWidget('div id', { parameters }).
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>DocsGPT Widget</title>
</head>
<body>
<div id="app"></div>
<!-- Include the widget script from dist/modern or dist/legacy -->
<script src="https://unpkg.com/docsgpt/dist/modern/main.js" type="module"></script>
<script type="module">
window.onload = function() {
renderDocsGPTWidget('app', {
apiHost: 'http://localhost:7001',
apiKey:"",
avatar: 'https://your-cdn/avatar.png',
title: 'Get AI assistance',
description: "DocsGPT's AI Chatbot is here to help",
heroTitle: 'Welcome to DocsGPT!',
heroDescription: 'This chatbot is built with DocsGPT and utilises GenAI, please review important information using sources.',
theme:"dark",
buttonIcon:"https://your-icon.svg",
buttonBg:"#222327",
allowedFileExtensions: ['.pdf', '.docx', '.md', '.png'],
showMicButton: true
});
}
</script>
</body>
</html>
SearchBar
The SearchBar component is an interactive search bar designed to provide search results based on vector similarity search. It also includes the capability to open the AI Chatbot, enabling users to query.
Importing the Component
import { SearchBar } from "docsgpt-react";
Usage Example
<SearchBar
apiKey="your-api-key"
apiHost="https://gptcloud.arc53.com"
theme="light"
placeholder="Search or Ask AI..."
width="300px"
/>
HTML embedding for Search bar
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>SearchBar Embedding</title>
<script src="https://unpkg.com/docsgpt/dist/modern/main.js"></script> <!-- The bundled JavaScript file -->
</head>
<body>
<!-- Element where the SearchBar will render -->
<div id="search-bar-container"></div>
<script>
// Render the SearchBar into the specified element
renderSearchBar('search-bar-container', {
apiKey: 'your-api-key-here',
apiHost: 'https://your-api-host.com',
theme: 'light',
placeholder: 'Search here...',
width: '300px'
});
</script>
</body>
</html>
Props
| Prop | Type | Default Value | Description |
|---|---|---|---|
apiKey |
string |
"74039c6d-bff7-44ce-ae55-2973cbf13837" |
Your API key generated from the app. Used for authenticating requests. |
apiHost |
string |
"https://gptcloud.arc53.com" |
The base URL of the server hosting the vector similarity search and chatbot services. |
theme |
"dark" | "light" |
"dark" |
The theme of the search bar. Accepts "dark" or "light". |
placeholder |
string |
"Search or Ask AI..." |
Placeholder text displayed in the search input field. |
width |
string |
"256px" |
Width of the search bar. Accepts any valid CSS width value (e.g., "300px", "100%", "20rem"). |
Feel free to reach out if you need help customizing or extending the SearchBar!
Our github
You can find the source code in the extensions/react-widget folder.