dt-react-component icon indicating copy to clipboard operation
dt-react-component copied to clipboard

feat: support AI quick command feat

Open Cythia828 opened this issue 3 months ago • 6 comments

变更类型

请选择以下选项以描述 PR 的类型:

  • [ ] Bug 修复(修复现有问题)
  • [x] 新功能(添加了一个功能)
  • [ ] 代码优化(性能改进、代码重构)
  • [ ] 文档更新
  • [ ] 单测新增或修改
  • [ ] 其他(请说明):

相关问题

变更内容

CodeBlock组件接口修改
  • 新增泛型参数M,继承自MessageEntity,默认MessageEntity
  • 新增message字段,用于接受泛型类型的消息实体
  • toolbars字段修改,原来只接受无参函数,现在接收code 字符串和可选的 message 参数,从而能根据上下文内容动态渲染工具栏。
CodeBlock组件修改目的
  • 用以支持某些自定义的toolbars需要拿到当前CodeBlock所在的那条message的信息去做一些校验或操作
Content组件接口修改
  • 接口修改:新增泛型参数MPM继承自IMessageProps ,默认IMessageProps P继承自IPromptProps ,默认IPromptProps
  • 接口修改:新增replacePrompt字段,是用来替换渲染Prompt的函数组件
  • 接口修改:新增replaceMessage字段,是用来替换渲染Message的函数组件
  • 渲染:原本渲染Prompt的逻辑改成有replacePrompt就渲染replacePrompt,没有才渲染默认组件Prompt;原本渲染Message的逻辑改成有replaceMessage就渲染replaceMessage,没有才渲染默认组件Message
Content组件修改目的
  • 用以支持某些用户需要渲染自定义的PromptMessage的逻辑
Markdown组件
  • 接口修改:新增isHtmlContent字段,是用来区分是否要支持html内容显示
  • 接口修改:新增message 字段,是传给CodeBlock组件使用的
  • 组件:引入rehype-raw,支持在Markdown → HTML 的转换过程中安全地解析并渲染「原始 HTML」标签
Markdown组件修改目的
  • 支持渲染内容里带自定义html结构的情况
  • 支持修改后的CodeBlock组件的message 字段的数据来源
Message组件
  • 接口修改:新增泛型参数T,继承自MessageEntity,默认MessageEntity
  • 接口修改:新增extraRender 字段
  • 接口修改:onRegenerate方法参数改为使用泛型T
  • 接口修改:onStop 方法参数改为使用泛型T
  • 组件:在Markdown 前面增加一个卡槽,渲染extraRender ,用来支持新增的自定义结构
Message组件修改目的
  • 支持消息里带文件列表的情况
Prompt组件
  • 接口修改:新增泛型参数T,继承自PromptEntity ,默认PromptEntity
  • 接口修改:新增extraRender 字段
  • 组件:在Markdown 后面增加一个卡槽,渲染extraRender ,用来支持新增的自定义结构
Prompt组件修改目的
  • 支持问题里带文件列表的情况
其他
  • 更新demo
  • 更新单测

详细描述

  • 目标效果 image

对应 Previewer

Cythia828 avatar Sep 01 '25 06:09 Cythia828

CI 挂了。 补一下demo和 previewer

LuckyFBB avatar Sep 02 '25 01:09 LuckyFBB

CI 挂了。 补一下demo和 previewer

哎呀,我补了咋拉依赖还挂了😭

Cythia828 avatar Sep 05 '25 03:09 Cythia828

CI 挂了。 补一下demo和 previewer

哎呀,我补了咋拉依赖还挂了😭

CI 是因为使用了淘宝源没安装成功挂掉的, pnpm-lock.yml 文件别更新太多东西 image

liuxy0551 avatar Sep 05 '25 03:09 liuxy0551

CI 挂了。 补一下demo和 previewer

哎呀,我补了咋拉依赖还挂了😭

CI 是因为使用了淘宝源没安装成功挂掉的, pnpm-lock.yml 文件别更新太多东西 image

我只新增了一个依赖,lock file自动生成的😓我再看下

Cythia828 avatar Sep 05 '25 03:09 Cythia828

设计层面需要考虑,我下周才有时间跟任务owner讨论,先draft

mumiao avatar Sep 19 '25 07:09 mumiao

1、关于input下新增的type.ts考虑将从组件内部移除,由于当初的实现方式是直接修改原组件,所以会有这个枚举的维护文件,但后期修改了设计之后,这个文件应该考虑放到应用层自己维护 2、关于chat下面entity.ts里新增的commandList fileList 考虑移除,因为这两个属性是业务属性,考虑将实体在应用层继承后去扩展新增需要的业务属性,而不是直接在rc里增加 3、关于messageprompt组件的demo,需要体现的是带样式的dom结构插入后能正常显示样式,后续会更新为插入带样式的dom结构

Cythia828 avatar Oct 13 '25 08:10 Cythia828