Java实现AI机器人聊天


前言

OpenAI API 几乎可以应用于任何涉及理解或生成自然语言或实现代码等场景。提供一系列具有不同学习训练的模型,适用于处理不同的任务,并且自己能够自定义学习模型,通过大样本数据去喂养该模型,使其能实现自己的应用场景。这些模型可用于从内容生成到语义搜索和分类的所有领域。


一、账号注册申请密钥

openai获取密钥

二、参数详情

  • models:模型,其包含Davinci, Curie, Babbage 和 Ada等子模型,每个子模型的功能不尽相同
  • prompt:生成完成的提示,编码为字符串、字符串数组、标记数组或标记数组数组。
  • tokens:文本长度限制,要求输入和输出的文本总长度不能超过各模型限定的Tokens长度
  • temperature:温度,使用什么采样温度,介于 0 和 2 之间。较高的值(如 0.8)将使输出更加随机,而较低的值(如 0.2)将使输出更加集中和确定。控制结果随机性,0.0表示结果固定,随机性大可以设置为0.9
  • topP:一种替代温度采样的方法,称为核采样,其中模型考虑具有 top_p 概率质量的标记的结果。所以 0.1 意味着只考虑构成前 10% 概率质量的标记。
  • frequencyPenalty:-2.0 和 2.0 之间的数字。正值会根据新标记在文本中的现有频率对其进行惩罚,从而降低模型逐字重复同一行的可能性。
  • presencePenalty:-2.0 和 2.0 之间的数字。正值会根据到目前为止是否出现在文本中来惩罚新标记,从而增加模型谈论新主题的可能性。
  • stop:API 将停止生成更多令牌的最多 4 个序列。返回的文本将不包含停止序列。
  • n:为每个提示生成多少完成。
  • stream:是否以流方式返回输出

三、Java集成

1.调用接口

这边就以流的方式接收结果

// 调用接口 https://api.openai.com/v1/completions
// 请求头:
Authorization: Bearer + KEY
// 参数:
Map<String, Object> param = new HashMap<>();
param.put("model", "text-davinci-003");
param.put("prompt", text);
param.put("max_tokens", 2048);
param.put("temperature", 0);
param.put("frequency_penalty", 0);
param.put("presence_penalty", 0);
param.put("stream", true);
param.put("stop", CollectionUtil.newArrayList("\n"));

2.响应数据

// text/event-stream
//设置推送内容类型为事件流
response.setContentType("text/event-stream");
//消息流编码格式
response.setCharacterEncoding("utf-8");
// 将收到的流数据返回给前端显示

四、效果

问答示例效果:

在这里插入图片描述
后端运行实时接收与推送数据:

在这里插入图片描述

总结

效果还是不错的,可以接入AI聊天机器人~~~

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值