积分10 / 贡献0

提问0答案被采纳0文章9

作者动态

[开发者活动] 在OpenHarmoy中实现AI问答

俺也不知道叫啥名字好听 显示全部楼层 发表于 2024-12-29 19:42:39

在OpenHarmoy中实现AI问答


简介


AI问答系统的基本原理是将大量的语言知识和逻辑推理规则输入到计算机中,通过算法的执行和深度学习的方式,使计算机能够理解自然语言,提取问题的关键信息,并通过数据库和互联网上的信息资源进行检索和匹配,最终生成准确、全面的答案。

功能


本项目通过调用API来实现一些AI问答的功能,用户可以通过发送一些信息来得到自己想要的答案。

代码实现


import askLLM from './LLM'
@Entry
@Component
struct AIchat {
  @State message: string = '';
  @State rtmessage:string = '';
  @State userMsg:string = '';nohao
  @State AIMsg:string = '';
  private textAreController:TextAreaController = new TextAreaController();

  build() {

    Column(){
      Text('AI问答')
      Column(){
        Scroll(){
          Column(){
            Column(){
              Text(this.userMsg)
                .margin(20)
                .copyOption(CopyOptions.LocalDevice)
            }
            .backgroundColor(this.userMsg == '' ? '#00000000' : '#ffabe963')
            .alignItems(HorizontalAlign.End)
            .width('100%')
            .margin({bottom:30})
            .borderRadius(8)

            Column(){
              Text(this.AIMsg)
                .margin(20)
                .copyOption(CopyOptions.LocalDevice)
            }
            .backgroundColor(this.AIMsg == '' ? '#00000000' : '#ffdedede')
            .alignItems(HorizontalAlign.Start)
            .width('100%')
            .borderRadius(8)
          }
        }
        .height('85%')

        Row(){
          TextArea({placeholder:"在此输入文字",text:this.message,controller:this.textAreController})
            .onChange((value)=>{
              this.message = value;
            })
            .width('80%')
          Text("发送消息")
            .width('20%')
            .onClick(() => {
              this.userMsg = this.message;
              try {
                askLLM(this.message).then((result) => {
                  this.rtmessage = result;
                  this.AIMsg = result;
                })
              } catch (e) {
              }
              this.message = '';
            })
        }
        .width('100%')
        .height('15%')
      }
      .height('90%')
      .justifyContent(FlexAlign.SpaceAround)
      .padding(20)

    }
    .height('100%')
  }
}

©著作权归作者所有,转载或内容合作请联系作者

您尚未登录,无法参与评论,登录后可以:
参与开源共建问题交流
认同或收藏高质量问答
获取积分成为开源共建先驱

Copyright   ©2023  OpenHarmony开发者论坛  京ICP备2020036654号-3 |技术支持 Discuz!

返回顶部