关于
德纳米克助理 允许您通过自定义的聊天部件将 AI 代理无缝整合到您的应用程序中。 特地为代理AI体验而建造,它提供React和香草JavaScript组件,直接连接到你的Dynamiq动力AI代理.
大调 是代理AI和LLM应用的管弦框架,使企业能够大规模地构建,部署和管理智能AI代理.
* 特性
- 🤖 AI 代理整合 - 为连接Dynamiq AI特工而设计的目的
- 📱 跨平台支持 - 与React和香草JavaScript合作
- 🎨 自定义 UI - 配有主题支持的完全定制外观
- 📡 流程支持 - AI代理的实时反馈
- 📁 文件上传 - 允许AI代理处理图像、PDF和文件
- 🎯 灵活定位 - 将代理部件放置在页面的任何地方
- 🔧 事件处理器 - 处理代理人的反馈、行动和反应
- 📊 Vega 图表支持 - AI代理可以无缝地使数据可视化
* 安装
npm install @dynamiq/assistant
或用纱线:
yarn add @dynamiq/assistant
QQ 设置
用于 @dynamiq/assistant,首先导航您的 Dynamiq 部署:
- 转到 部署 并确保 端点授权 已禁用(参见 警卫 这是什么意思)
- 点击 一体化 选项卡
- 切换到 聊天部件 菜单项
- 复制您唯一的 API URL
使用量
反应
import { DynamiqAssistant } from '@dynamiq/assistant/react';
const App = () => {
return (
<DynamiqAssistant
title="Dynamiq Assistant"
placeholder="Type your message..."
position="bottom-right"
api={{
url: '<YOUR_API_URL>',
streaming: true,
}}
allowFileUpload={true}
maxFileSize={10 * 1024 * 1024} // 10MB
acceptedFileTypes="image/*,.pdf,.doc,.docx,.txt"
params={{
userId: '123',
sessionId: '234',
userName: 'John Doe',
language: 'en',
}}
prompts={[
{ icon: '💬', text: 'What documents are needed for the loan?' },
{
icon: <FontAwesomeIcon icon={faUser} />,
text: 'What is the maximum loan amount?',
},
]}
footerText={
'Powered by <a href="https://getdynamiq.ai" target="_blank">Dynamiq</a>'
}
/>
);
};
香草 Java 脚本
无害环境管理模块
import { DynamiqAssistant } from '@dynamiq/assistant/vanilla';
const assistant = new DynamiqAssistant('#dynamiq-assistant-container', {
title: 'Dynamiq Assistant',
placeholder: 'Type your message...',
position: 'bottom-left',
api: {
url: '<YOUR_API_URL>',
streaming: true,
},
allowFileUpload: false,
maxFileSize: 5 * 1024 * 1024, // 5MB
acceptedFileTypes: 'image/*,.pdf',
});
脚本标记
<script src="https://cdn.jsdelivr.net/npm/@dynamiq/assistant@latest/dist/index.browser.js"></script>
<script>
const assistant = new dynamiq.DynamiqAssistant(
'#dynamiq-assistant-container',
{
title: 'Dynamiq Assistant',
placeholder: 'Type your message...',
position: 'bottom-left',
api: {
url: '<YOUR_API_URL>',
streaming: true,
},
}
);
</script>
QQ 部件预览
您的助手将作为一个优雅的聊天部件出现在您的页面上 :
API 参考
道具
| 名称 | 类型 | 说明 |
|---|---|---|
title | string | ReactNode | 助手的头衔. 可以是字符串或ReactNode. |
placeholder | string | 聊天输入的占位符文本 . |
welcomeTitle | string | 欢迎屏幕的标题. |
welcomeSubtitle | string | 欢迎屏的字幕. |
position | string | 助手的职位 可能会 bottom-right, (中文(简体) ), bottom-left, (中文(简体) ), top-right,或 top-left。 。 。 . |
api.url | string | 助理端点的 URL . |
api.streaming | boolean | 是否启用响应流 . |
allowFileUpload | boolean | 是否允许文件上传 . |
maxFileSize | number | 文件在字节中上传的最大文件大小 . |
acceptedFileTypes | string | 用于文件上传的已接受的文件类型 . |
params | object | 传递到助理输入的参数 . |
params.userId | string | 用户名. 默认保存在其中的随机ID localStorage,所以历史幸存 重载. |
params.sessionId | string | 会话代号 默认 crypto.randomUUID()。 。 。 . |
toggleButton | string | 切换助手的按钮标识 . |
prompts | array | 提示显示在助理. |
prompts.icon | string | ReactNode | 提示中要显示的图标 . |
prompts.text | string | 提示中要显示的文本 . |
theme.primaryColor | string | 助手的主要颜色. |
theme.secondaryColor | string | 助手的次要颜色. |
theme.fontFamily | string | 助手的字体家族. |
allowFullScreen | boolean | 是否显示全屏幕按钮 . |
footerText | string | 脚下要显示的文字. |
poweredBy | string | 以节为动力所显示的文字. |
humanSupport | string | 人相助一节所要显示之文字. |
intermediateStreaming | boolean | 是否显示可用的中间步骤 。 默认 true。 。 。 . |
hideCloseButton | boolean | 是否隐藏关闭按钮 。 默认 false。 。 。 . |
fullScreen | boolean | 是否打开全屏聊天 。 默认 false。 。 。 . |
open | boolean | 是否打开页面负荷聊天 。 默认 false。 。 。 . |
allowedResourceOrigins | string[] | 机器人消息可能从中加载图像和图表数据的来源 。 同源和 data: URL总是允许的; ['*'] 允许任何来源。 默认 ['*']建议: [] 或信任来源列表(参见 警卫) (中文(简体) ). |
活动
| 名称 | 说明 |
|---|---|
onFeedback | 处理反馈的回调功能. |
onImageBlock | 处理图像块的回调功能 . |
onLink | 处理链接的回调功能 . |
onNewChat | 处理新聊天的回调功能 . |
onPromptSend | 处理即时发送的回调功能 . |
onChatDelete | 处理聊天删除的回调功能 . |
onChatOpen | 处理开放式聊天的回调功能 |
onChatClose | 处理近距离聊天的回调功能 |
聊天历史
聊天存储在浏览器中 localStorage 并显示在历史面板。 当用户登录, 特别是在共享设备上登录时清除 :
import { clearChatHistory } from '@dynamiq/assistant/react'; // or '@dynamiq/assistant/vanilla'
clearChatHistory();
用香草部件,你也可以打电话 widget.clearHistory(),它又重排了开放式聊天.
• 警卫
- 端口为公. 由于 Endpoint 授权被禁,在您的页面中找到 API URL 的任何人都可以直接拨打代理 。 别把秘密放进去
api.headers因为他们被运往每个访客。 对于制作,考虑通过您自己的后端代理请求,后者可以认证用户并应用速率限制. - 瓶装信息被消毒. 通过 DOMPurify 实现代理设备的标记下, 链接只允许
http(s)编号 :mailto并打开新标签,图表运行时不用eval(与无'unsafe-eval') (中文(简体) ). - 限制远程资源. 默认情况下,bot消息中的图像和图表数据可以从任何来源加载. 被迅速注入的响应可以使用它通过图像URL(例如.
) (中文(简体) ). 设定allowedResourceOrigins改为[]或者你的毒剂真正使用的原生地.url()内置样式和 SVG 属性中的引用,以及srcset,总是删除. - 您自己的 HTML 选项未被消毒 .
title, (中文(简体) ),footerText, (中文(简体) ),poweredBy, (中文(简体) ),humanSupport财务报告和审定财务报表prompts[].icon作为 HTML 插入。 只能通过信任的内容 .
捐款
我们欢迎捐款! 请看我们的 贡献指南 关于如何开始的细节.
发展
# Install dependencies
npm install
# Run development server
npm run dev
# Build the library
npm run build
# Run tests
npm run test
# Lint code
npm run lint
许可证
这个项目根据Apache许可证2.0获得许可——见 自由主义 详细文件.