从零到一开发,项目训练并调用chatgpt,实现矿业相关法律的咨询,合同审查,和合同草拟功能三大功能,项目采用响应式设计和媒体查询适配移动端,首页介绍项目主要功能,注册并登录后可以进入到咨询页,此处可向ai提问与聊天,与chatgpt体验一致。左侧导航栏可以切换到合同审查页,此处可以上传pdf或doc,随后ai会给出相关审查结果,合同草拟页是一个动态表单,根据选择的合同类型,显示不同的表单,填写信息后ai给出草拟结果,跟ai交互时都是通过 stream 接口,可以实现逐字渲染,与chatgpt体验一致
在草拟结果中,可以对段落再次进行优化,选中文字后会在文字下方显示优化方案按钮,拿到选中的文字再次向ai请求优化方案列表,然后选中某条方案后可以替换调选中的文字,这里实现比较复杂,通过监听mouseup使用getSelection、range获取到选中的文字和范围,再通过getBoundingRect 获取到选中文字下方的top和left,显示优化方案按钮并设置top和left,选中,点击按钮后,传递选中的文字给gpt进行优化,获取到优化方案列表,点击某条优化方案后通过 replace