@deepinnet/ai-chat
v0.1.9
Published
Private H5 AI chat component package
Readme
@deepinnet/ai-chat
私有 H5 AI Chat 组件包(从业务项目解耦,可迁移到独立仓库发布)。
安装
pnpm add @deepinnet/ai-chat最小接入
挂载后直接渲染全屏会话层(无内置悬浮入口、无内部显隐状态)。是否展示组件由宿主通过条件渲染等方式控制。
头部关闭按钮不会自行卸载组件,需传入 onCloseClick,在回调里执行卸载、路由返回等逻辑。
import { useState } from 'react';
import { AiChatH5 } from '@deepinnet/ai-chat';
export default function Demo() {
const [visible, setVisible] = useState(false);
if (!visible) {
return (
<button type="button" onClick={() => setVisible(true)}>
打开 AI 助手
</button>
);
}
return (
<AiChatH5
title="AI 助手"
onCloseClick={() => setVisible(false)}
/>
);
}指定会话 sessionId
传入 sessionId 后,组件会请求该会话详情并默认展示其历史消息(与侧栏切换会话相同的数据源)。sessionId 变化时会重新加载对应会话。
<AiChatH5
sessionId={routeSessionId}
onCloseClick={() => setVisible(false)}
/>打包
pnpm install
pnpm type-check
pnpm build迁移到独立项目
- 拷贝
packages/h5aichat-private到新仓库根目录。 - 在新仓库执行
pnpm install。 - 执行
pnpm build产出dist。 - 配置私有源后执行
npm publish。
内置业务 API
businessApiAdapter 默认已内置(/api 前缀):
POST /flight/order/orderPlanListPOST /category/treePOST /cycle/plan/listGET /flight/area/pool/position/listPOST /flight/order/createPOST /demand/create
如宿主接口网关一致,可不传 businessApiAdapter。
内置会话 API
sessionAdapter 已内置(/aiServer 前缀),默认直接使用包内 SSE 与会话接口实现。
运行时依赖(重要)
该组件是特定业务组件,默认会直接请求后端接口,使用前请确认宿主应用具备以下运行时条件:
- 已完成登录,
localStorage中存在token(请求头会注入satoken) localStorage.tenantId可用(若无则默认使用sz_unifly)- 宿主已配置网关/代理:
- 业务接口:
/api/* - 会话与流式接口:
/aiServer/*
- 业务接口:
- 宿主允许组件读取浏览器
localStorage(用于鉴权头)
若以上条件不满足,组件可能出现:
- 会话列表/流式消息请求失败
- 表单下拉数据为空
- 创建需求/规划接口调用失败
建议在接入前先验证:
- 当前页面登录态有效(token 未过期)
/api与/aiServer代理可连通tenantId与后端环境匹配
