首页 > 其他分享 >实现人工智能简单交互

实现人工智能简单交互

时间:2023-12-06 18:11:51浏览次数:26  
标签:CompletionRequest String 人工智能 choice openai 简单 message 文本 交互

1.首先引入依赖:

<dependency>
<groupId>com.theokanning.openai-gpt3-java</groupId>
<artifactId>client</artifactId>
<version>0.9.0</version>
</dependency>

2.尽量在yml里配置好相关secret等参数:

openai.secretKey=
openai.model=text-davinci-003
openai.prompt=
openai.temperature=0
openai.max_tokens=1024
openai.stream=true

3.方法实现:

public String createCompletion(String message) {
if (StrUtil.isEmptyIfStr(this.key1)|| ObjectUtil.isNull(this.openAiService)){
return "请先设置key!";
}
log.info("me--->"+message);
// 将用户的文本信息发送之后,openai会将回答们封装在 CompletionRequest 里面,里面包含了很多 choice
CompletionRequest completionRequest = this.buildCompletionRequest(message);
return this.createCompletion(completionRequest);
}

建立请求方法实现:

private CompletionRequest buildCompletionRequest(String message) {
return CompletionRequest.builder().prompt(message) // 本层封装用户文本
.model(this.openAi.getModel()) // 模型:给予并返回生成的文本一个模型
.maxTokens(this.openAi.getMax_tokens()) // 请求中生成文本的最大标记数,对文本的准确性有的要求
.build();
}

发送请求并接受信息返回给前台方法实现:

protected String createCompletion(CompletionRequest completionRequest) {
// 响应封装在字符串里面
StringBuilder response = new StringBuilder();
// 发送请求并接收响应
CompletionResult completion = this.openAiService.createCompletion(completionRequest);
// openai会生成多个选项,一般来说第一个选项就是最优解
List<CompletionChoice> choices = completion.getChoices();
// 在每次迭代中,Lambda 表达式会获取当前迭代的 choice 对象,并调用其 getText() 方法来获取该选项的文本内容。然后,将该文本内容附加到 response 对象的末尾,使用 append 方法
choices.forEach(choice -> response.append(choice.getText()));
//去掉响应文本开头的\n\n,这时候的 response 包含了全部的choice
String res = StrUtil.replaceFirst(response.toString(), "\n\n", "");
log.info("chatGPT--->"+"正在效应");
return res;
}

 

标签:CompletionRequest,String,人工智能,choice,openai,简单,message,文本,交互
From: https://www.cnblogs.com/baoguiying/p/17880213.html

相关文章

  • 如何利用人工智能+物联网技术实现自动化设备生产
    随着科技的发展与行业竞争的日益激烈,制造业也逐渐走向智能化发展。制造业的改革是利用物联网技术和自动化设备,实现生产线的智能化和自适应生产,优化生产流程,提高生产效率和质量,为企业创造更大的价值。方案概述智能化生产主要是利用物联网技术,将生产线上的生产设备、生产环境、......
  • 软件测试/人工智能|Python逻辑运算符如何灵活使用
    前言当初学者探索Python编程时,理解逻辑运算符是掌握编程逻辑和决策流程的重要一环。逻辑运算符允许我们对多个条件进行组合,以便进行更复杂的逻辑判断。让我们深入了解Python中常用的逻辑运算符及其使用方法。逻辑运算符逻辑运算符一般用来解决当有多个关系条件需要判断时使用,......
  • 软件测试/人工智能|Python赋值运算符如何灵活使用
    前言赋值运算符是使用=为运算符号,将运算符左侧的数据或表达式的结果,保存到运算符左侧的标识符中。在使用赋值运算符时,运算符右侧可以是任意类型的数据,但左侧必须是一个变量,否则会报错。除普通的赋值运算符外,赋值运算符还可以和算术运算符组合成为复合赋值运算符。赋值运算符不仅仅......
  • 软件测试/人工智能|一篇文章教你把Python关系运算符玩出花样
    简介关系运算符也称为比较运算符,用来对参与运算的两个操作数进行比较,确认两个操作数之间的关系,运算结果会返回一个布尔值。让我们深入了解Python中常用的关系运算符及其使用方法。Python中提供的关系运算符如下表所示:等于和不等于==检查两个值是否相等。!=检查两个值是否不相等......
  • 软件测试/人工智能|Python逻辑运算符如何灵活使用
    前言当初学者探索Python编程时,理解逻辑运算符是掌握编程逻辑和决策流程的重要一环。逻辑运算符允许我们对多个条件进行组合,以便进行更复杂的逻辑判断。让我们深入了解Python中常用的逻辑运算符及其使用方法。逻辑运算符逻辑运算符一般用来解决当有多个关系条件需要判断时使用,用来确......
  • 在科技行业的热门趋势中,你必定无法忽视日益增长的人工智能大模型的影响力。无论是你热
    在科技行业的热门趋势中,你必定无法忽视日益增长的人工智能大模型的影响力。无论是你热衷浏览的短视频还是见不得的“AI绘画”,或者是你的朋友圈中充斥的“虚拟试衣”和智能聊天软件ChatGPT,这些都在告诉你,AI大模型正在为日常生活带来革命性的改变。今天,我们就来探讨如何使用AI大模型......
  • xss专题1-原理解析和简单利用
    XSS原理解析跨站脚本攻击(XSS)是一种常见的网络安全漏洞,其原理涉及恶意用户向网页注入客户端脚本代码,使其在用户的浏览器中执行。攻击者利用输入栏或其他用户可输入内容的地方,注入包含恶意脚本的数据。当其他用户访问包含恶意注入内容的页面时,这些脚本将在其浏览器中执行,导致攻击者......
  • cerbos golang 内部policy check 处理简单说明
    主要是想尝试实现一个rust的check方法,所以先研究下golang的内部实现CheckResourcesfunc(cs*CerbosService)CheckResources(ctxcontext.Context,req*requestv1.CheckResourcesRequest)(*responsev1.CheckResourcesResponse,error){log:=logging.......
  • 鸿蒙开发丨设备内UIAbility的几种交互方式
    本文分享自华为云社区《设备内UIAbility交互:无缝体验与高级技巧》,作者:柠檬味拥抱。UIAbility组件间交互(设备内)在设备内,UIAbility(用户界面能力)是系统调度的最小单元,它们负责展示用户界面和执行相关的业务逻辑。设备内的不同功能模块之间的交互是应用程序开发中的重要部分。本文......
  • 【专题】2023年中国人工智能医学影像产品生态路线研究报告PDF合集分享(附原数据表)
    原文链接:https://tecdat.cn/?p=34466原文出处:拓端数据部落公众号未来,生成式人工智能将推动AI医学影像企业的指数级增长,而综合性医学人工智能模型与医学影像领域的结合将释放巨大潜力。为加速自身商业化落地能力,AI医学影像企业将依托生态路线。阅读原文,获取专题报告合集全文,解锁......