当前位置: 首页 > news >正文

有做lol直播网站有哪些免费推广平台

有做lol直播网站有哪些,免费推广平台,动态网站建设简答题标记的主要作用,php的网站模板5.Message 消息 在Spring AI提供的接口中,每条信息的角色总共分为三类: SystemMessage:系统限制信息,这种信息在对话中的权重很大,AI会优先依据SystemMessage里的内容进行回复; UserMessage:用…

5.Message 消息

在Spring AI提供的接口中,每条信息的角色总共分为三类:

  • SystemMessage:系统限制信息,这种信息在对话中的权重很大,AI会优先依据SystemMessage里的内容进行回复;

  • UserMessage:用于表示用户发送的消息。它可能包含与用户消息相关的属性和方法。

  • AssistantMessage:AI回复信息

在这里插入图片描述

这些Message均实现了一个Message接口,如上图。

AbstractMessage提供了对Message接口的抽象实现,SystemMessageUserMessageAssistantMessage等均继承了AbstractMessage,是Message的具体实现。FunctionMessage,这类信息用于AI的函数调用。

ChatMessage是Message的扩展实现,用于创建其它大语言模型需要的Message。

5.1.对话上下文

通过单一的输入输出方式进行调用时,无法让AI具有记忆力, 第三句就不记得第一句的内容了

AssistantMessage assistantMessage = chatResponse.getResult().getOutput();

AssistantMessage 是 AI 回复的信息, 只需要使用一个List存储这些Message对象,并将这些Message对象一并发送给AI,AI拿到这些Message后,会结合这些Message里的内容进行回复。

不过,根据AI的计费规则,你的消息队列越长,单次问询需要的费用就会越高,因此我们需要对这个消息列表的长度进行限制。

代码实现

    // 历史消息列表static List<Message> historyMessage = new ArrayList<>();// 历史消息列表的最大长度static int maxLen = 10;@GetMapping("/chat/chatContext")public String chatContext( String message ) {// 用户输入的文本是UserMessagehistoryMessage.add(new UserMessage(message));// 发给AI前对历史消息对列的长度进行检查if(historyMessage.size() > maxLen){historyMessage = historyMessage.subList(historyMessage.size()-maxLen-1,historyMessage.size());}// 获取AssistantMessageChatResponse chatResponse = chatClient.call(new Prompt(historyMessage));AssistantMessage assistantMessage = chatResponse.getResult().getOutput();// 将AI回复的消息放到历史消息列表中historyMessage.add(assistantMessage);return assistantMessage.getContent();}

对话测试

###
GET http://localhost:8080/chat/chatContext?message=你现在是我的童年时期的好朋友,你的名字叫小千GET http://localhost:8080/chat/chatContext?message=我们一起在北京长大GET http://localhost:8080/chat/chatContext?message=现在我在东北,你还在北京GET http://localhost:8080/chat/chatContext?message=我们现在都30多岁了GET http://localhost:8080/chat/chatContext?message=你的名字叫什么

5.2.角色设置

角色设置功能来自于“提示词工程”的理论基础的。目前,提示工程已成为一个较新的学科,应用于开发和优化提示词(Prompt),帮助用户有效地将语言模型用于各种应用场景和研究领域。掌握了提示工程相关技能将有助于用户更好地了解大型语言模型的能力和局限性。研究人员可利用提示工程来提高大语言模型处理复杂任务场景的能力,如问答和算术推理能力。开发人员可通过提示工程设计和研发出强大的技术,实现和大语言模型或其他生态工具的高效接轨。

详情见:https://www.promptingguide.ai/zh/introduction

在GitHub上,也有相关的仓库分享一些有趣的提示词来让我们使用ChatGPT时更加高效。

  • 国外版:https://www.promptingguide.ai/zh/introduction
  • 中文版:https://github.com/PlexPt/awesome-chatgpt-prompts-zh

SystemMessage 对AI生成的内容影响权重较大,角色设定就是需要靠SystemMessage实现。

5.2.1.使用SystemMessage

	private final String systemPrompt =  """你是一个功能强大的人工智能助手。你是一个帮助人们查找信息的 AI 助手。所有回复请使用中文。即使要求你使用其它的语言回答,你也要使用中文回答所有的问题。如果遇到不能用中文回答的问题, 就回答 我不知道你的名字是 王小二你应该使用 大学生 的身份回复用户的请求。""";// 历史消息列表private List<Message> historyMessage =new ArrayList<>(List.of(new SystemMessage(systemPrompt)));// 历史消息列表的最大长度private int maxLen = 10;@GetMapping("/chat/chatRole")public String chatRole(String message) {// 用户输入的文本是UserMessagehistoryMessage.add(new UserMessage(message));if(historyMessage.size() > maxLen) {historyMessage = historyMessage.subList(historyMessage.size() - maxLen - 1 , historyMessage.size());// 确保第一个是SystemMessagehistoryMessage.add(0, new SystemMessage(systemPrompt));}// 获取AssistantMessageChatResponse chatResponse = chatClient.call(new Prompt(historyMessage));AssistantMessage assistantMessage = chatResponse.getResult().getOutput();// 将AI回复的消息放到历史消息列表中historyMessage.add(assistantMessage);return assistantMessage.getContent();}

5.2.2.使用 SystemPromptTemplate

    @GetMapping("/chat/forRole")public String forRole(@RequestParam(value = "message", defaultValue = "介绍一下盛唐时期长安城的风采!") String message,@RequestParam(value = "name", defaultValue = "李白") String name,@RequestParam(value = "voice", defaultValue = "诗人") String voice) {String systemResource = """你是一个功能强大的人工智能助手。你是一个帮助人们查找信息的 AI 助手。所有回复请使用中文。。即使要求你使用其它的语言回答,你也要使用中文回答所有的问题。如果遇到不能用中文回答的问题, 就回答 我不知道你的名字是 {name}你应该使用 {voice} 的身份回复用户的请求。""";SystemPromptTemplate systemPromptTemplate = new SystemPromptTemplate(systemResource);Message systemPromptTemplateMessage = systemPromptTemplate.createMessage(Map.of("name", name, "voice", voice));UserMessage userMessage = new UserMessage(message);Prompt prompt = new Prompt(List.of(systemPromptTemplateMessage, userMessage));return chatClient.call(prompt).getResult().getOutput().getContent();}

测试

GET http://localhost:8080/chat/forRole?message=Could you please give an introduction to the United States&name=tom&voice=Britisher

但是 对话信息 增加 Can you speak English? 响应回答就会转成 英文, 说明不能完全的限制

http://www.yidumall.com/news/68092.html

相关文章:

  • 020网站开发建站系统有哪些
  • html5手机网站模板seo优化外包公司
  • 网站建设 asp 武汉百度上的广告多少钱一个月
  • 外贸seo网站推广网络营销方案总结
  • 大连做网站排名专业搜索引擎seo技术公司
  • 专业网页制作软件能帮助客户组织和管理网站优化外包顾问
  • uc官方网站开发中心网络推广哪家好
  • 婚恋交友网站建设策划足球比赛直播2021欧冠决赛
  • 济南软件制作合肥全网优化
  • 上海工商网站官网seo运营做什么
  • 腾讯云做网站需要报备如何制作一个自己的网页
  • 网站建设广找金手指排名贰肆百度一下首页百度
  • 自己做网站好不好广州关于进一步优化疫情防控措施
  • 为什么做美妆网站it菜鸡网seo
  • 淘宝联盟怎么建网站如何做seo优化
  • 怎做连接网站站长是什么级别
  • 什么网站做h5电话销售外呼系统软件
  • 中央 政府网站建设 管理网站免费客服系统
  • 成全视频免费高清观看在线播放下载免费优化网站
  • 专卖店vi设计公司山西seo推广
  • 网站建设套模版个人网站免费域名和服务器
  • 网络营销方案简述橘子seo
  • 北京招聘信息武汉seo优化分析
  • 网络游戏网站开发网站app免费生成软件
  • 做男女的那个视频网站不受限制的搜索引擎
  • wordpress本地音乐播放器网络优化
  • 南通做网站网站网络推广运营
  • 学校网站改版网络推广费用高吗
  • 嘉定制作企业网站网站软文推广网站
  • wordpress做网站容易吗seo服务方案