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

站长联盟性价比高的做网站公司

站长联盟,性价比高的做网站公司,现在怎么做网络推广,国外直播做游戏视频网站langchain4j实现聊天记忆默认是基于进程内存的方式,InMemoryChatMemoryStore是具体的实现了,是将聊天记录到一个map中,如果用户大的话,会造成内存溢出以及数据安全问题。位了解决这个问题 langchain4提供了ChatMemoryStore接口&am…

        langchain4j实现聊天记忆默认是基于进程内存的方式,InMemoryChatMemoryStore是具体的实现了,是将聊天记录到一个map中,如果用户大的话,会造成内存溢出以及数据安全问题。位了解决这个问题 langchain4提供了ChatMemoryStore接口,让开发者可以灵活的选择存储策略,常用的可以使用mysql、redis、mongodb等,本文以redis为例,集成百炼平台通义千问实现大模型聊天记忆持久化。

 一、引入依赖

       具体详情可参考官网

https://docs.langchain4j.dev/integrations/language-models/dashscope
    implementation group: 'org.springframework.boot', name: 'spring-boot-starter-data-redis', version: '3.4.0'// langchain4j AiService整合spring bootimplementation group: 'dev.langchain4j', name: 'langchain4j-spring-boot-starter', version: '1.0.0-beta4'// langchain4j整合千问dashscopeimplementation group: 'dev.langchain4j', name: 'langchain4j-community-dashscope-spring-boot-starter', version: '1.0.0-beta4'

          yaml配置

langchain4j:## https://docs.langchain4j.dev/integrations/language-models/dashscopecommunity:dashscope:chat-model:api-key: 百炼平台申请model-name: qwen-plusspring:data:redis:host: server200port: 6379database: 3

二、持久化配置

        官网参考地址https://docs.langchain4j.dev/tutorials/chat-memory/

@Configuration
public class ChatMemoryConf {/*** 聊天记录持久化存储到redis中* @param redisTemplate* @return*/public ChatMemoryStore chatMemoryStore(RedisTemplate<String,String>  redisTemplate){return  new ChatMemoryStore(){@Overridepublic List<ChatMessage> getMessages(Object memoryId) {String value = redisTemplate.opsForValue().get("chat:" + memoryId.toString());if(value == null || value.isEmpty()){return List.of();}return ChatMessageDeserializer.messagesFromJson(value);}@Overridepublic void updateMessages(Object memoryId, List<ChatMessage> list) {String messages = ChatMessageSerializer.messagesToJson(list);redisTemplate.opsForValue().set("chat:" + memoryId.toString(), messages);}@Overridepublic void deleteMessages(Object memoryId) {redisTemplate.delete("chat:" + memoryId.toString());}};}@Beanpublic ChatMemoryProvider chatMemoryProvider(RedisTemplate<String,String>  redisTemplate){return memoryId -> MessageWindowChatMemory.builder().maxMessages(10).id(memoryId).chatMemoryStore(chatMemoryStore(redisTemplate)).build();}}

三、创建AiService代理

       AiService的具体功能,可以看官网(https://docs.langchain4j.dev/tutorials/ai-services),上面有很详细的解释和示例

@AiService
public interface DashScopeAssistant {@SystemMessage("Answer using slang")String chat(@MemoryId String  chatId, @UserMessage  String userMessage);}

@Service
public class DashScopeChatMemoryService {private final static Logger LOGGER = LoggerFactory.getLogger(DashScopeChatMemoryService.class);private final DashScopeAssistant dashScopeAssistant;@Autowiredpublic DashScopeChatMemoryService(QwenChatModel qwenChatModel,ChatMemoryProvider chatMemoryProvider) {dashScopeAssistant =  AiServices.builder(DashScopeAssistant.class).chatMemoryProvider(chatMemoryProvider).chatModel(qwenChatModel).build();}public String persistentChat(String chatId, String userMessage){String chat = dashScopeAssistant.chat(chatId, userMessage);LOGGER.info("persistent chat output : {}" ,chat);return chat;}
}

 四、测试持久化

chatMemoryService.persistentChat("101", "我是赵光义");
chatMemoryService.persistentChat("101", "我是北宋的第二位皇帝,在高粱河被辽国打败了");
chatMemoryService.persistentChat("101", "你知道为为什么叫车神吗?");

    通过断点观察,数据已经成功存入redis


 

http://www.dtcms.com/a/444866.html

相关文章:

  • 舟山公司网站建设支付网站建设费
  • 海珠网站建设汽车租赁网站怎么做
  • 饶阳营销型网站建设费用商务网站建设组成包括网站优化
  • 营销型企业网站建设 广义的空间做百度推广送的网站
  • 做网站注册什么公司好济南网站建设(选 聚搜网络)
  • 公司注册网站多少钱网站建设课本
  • 安宁网站建设 熊掌号自助建站免费搭建个人网站
  • 移动端网站制作的有哪些要求哪个网站可以学做蛋糕
  • 海丰网站建设广告设计海报
  • 如何做网站卖画wordpress 手动采集
  • 如何做网站搭桥链接网站建设管理理论
  • 首钢建设二建设公司网站天津网站制作首页在线咨询
  • 做网站的公司怎样收费wordpress 代码 工具
  • 做外贸实用网站网站建设需求文件
  • 海外直购网站建设方案书范文建网站商城有哪些公司
  • html网站优化网站 手机案例
  • 专业定制房地产网站建设全国做网站最好的公司有哪些
  • 自己做网站开发如何找客户手工制作钟表
  • 沈阳网站搜索排名html网页设计规则代码
  • 免费建设小学校网站HTML发布网站
  • 描述网站的整体建设一般步骤python做网站感觉好费劲
  • 有口碑的江苏网站建设策划书怎么写 格式范文
  • 企业手机网站建设提升用户体验的三个点孝义网站开发公司
  • 网站开发下单功能微信公众号平台小程序登录入口
  • 电子商务网站建设与运营自适应网站建设都找全网天下
  • 网站后台管理的超级链接怎么做网站建设网站管理
  • 网站上线 文案怎么看一个网站是由哪个公司做的
  • 泉州wap网站制作wordpress已发布不显示
  • 企业网站设计思路网站制定
  • jsp做的网站站 图标是tomcat的 怎么换建设网站需要哪些条件