- 博客(82)
- 收藏
- 关注
原创 持久化聊天记忆 Persistence
适用场景:如果聊天记忆数据结构较为规整,例如包含固定的字段如对话 ID、用户 ID、时间戳、消息内容等,且需要进行复杂的查询和统计分析,如按用户统计对话次数、按时间范围查询特定对话等,MySQL 是不错的选择。MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成,文档类似于 JSON 对象,字段值可以包含其他文档,数组及文档数组。适用场景:对于实时性要求极高的聊天应用,如在线客服系统或即时通讯工具,Redis 可以快速存储和获取最新的聊天记录,以提供流畅的聊天体验。
2025-12-10 20:30:38
634
原创 聊天记忆
String answer2 = separateChatAssistant.chat(1, "我是谁");String answer3 = separateChatAssistant.chat(2, "我是谁");String answer2 = chatMemoryAssistant.chat("我是谁");String answer2 = assistant.chat("我是谁");String answer2 = assistant.chat("我是谁");创建Chat memory。
2025-12-10 20:28:46
742
原创 人工智能服务AIService
这个代理对象会处理输入和输出的所有转换工作。chat方法的输出类型也是字符串,但是大模型返回的是 AiMessage 对象,代理对象会将其转换为字符串。链存在的主要问题是不灵活,我们不进行深入的研究。AiServices会组装Assistant接口以及其他组件,并使用反射机制创建一个实现Assistant接口的代理对象。但,上述方法比较麻烦,可以采用@AiService注解,但需注意,如果引入多个大模型,则需要指定大模型。AIService使用面向接口和动态代理的方式完成程序的编写,更灵活的实现高级功能。
2025-12-09 21:38:26
460
原创 接入其他大模型
在properties文件中不需要再配置baseUrl的值,因为在依赖中已经导入。接入阿里云百炼平台 -->引入百炼依赖管理清单-->
2025-12-09 21:36:36
638
原创 LangChain4j
官方链接:https://docs.langchain4j.dev/tutorials/spring-boot-integration。基于open-ai的langchain4j接口:ChatGPT、deepseek都是open-ai标准下的大模型 -->参考文档链接:https://docs.langchain4j.dev/get-started/--引入SpringBoot依赖管理清单-->-- 前后端分离中的后端接口测试工具 -->-- 编写和运行测试用例 -->应用程序核心依赖 -->
2025-12-07 20:13:01
649
原创 Day 7 BTK差异分析+GSEA富集分析
我们前面已经做过GO和KEGG富集分析,它们相似的点在于就是将我们的数据去和已有记录的数据去对比,看我们的数据哪些包含其中,不同点在于,GO和KEGG富集分析需要我们将基因名改为ENTREZID形式并且还需要我们进行手动的去筛除掉部分基因,这会导致结果的片面性,另一个不同点是GSEA富集分析的数据是位于本地的。原理是我们从geneList的第一个基因开始,看这个基因在GSEA基因集中是否存在,若存在,则加,同时在这个基因上插一条黑色竖条纹;左边表示的是上调基因,右边表示的是下调基因(相对于low组)。
2025-10-31 18:35:52
349
原创 Day 6 PPI与Cox
col=fpColors(box="#00A896", lines="#02C39A", zero = "black"),# box颜色。"2" = gpar(lwd=1.5, col="black"), # 在第一行标题行下画黑色实线。"53" = gpar(lwd=2, col="black")), # 在最后一行上画黑色实线。hrzl_lines=list("1" = gpar(lwd=2, col="black"), # 在第一行上面画黑色实线。
2025-10-28 19:04:45
901
原创 Day 5 TCGA差异分析,富集分析
做差异分析,我们使用的是counts,这里我们首先使用ImmuneScore进行分组,观察在ImmuneScore 的high组和low组,癌症样本(counts_01A )中哪些基因的表达量差异足够大。画图需要我们将我们差异分析得到的数据进行处理,筛选出差异大且稳定的基因,同时,为了图的美观,我们还需将high和low组进行合并(原本的数据表时混乱的)如上所述,我们此时表达谱high组和low组混合,这样不美观,所以我们将high集中,low组集中。
2025-10-27 11:59:32
908
原创 Day 3 临床信息整理基质组分
(包含 os(是否die),os.time(活的时间))与 ESTIMATE_result (记录免疫评分表格)合并,但是我们通过table发现,survial 不只是 01A ,所以通过与tpms表取交集就可以保证都是 癌症样本,同时合并要求行名一致,我们ESTIMATE_result 表与tpms表的行名是一样的,所以进行一个顺序处理。legend.labs = c("Low", "High"), # 图例。legend.labs = c("Low", "High"), # 图例。
2025-10-27 10:08:32
581
原创 Day 2 TCGA数据下载
在count表中,我们当时为添加symbol ,type等列,将原本的行名改为列名,现在已经不需要ENSEMBL,type 等列,它们恰好在第一列和最后一列,我们删除这两列。此时,我们的行名如下图,我们要将行名改为基因名,前面我们已经对 symbol 列进行去重(这是因为R语言要求行名不可以重复),现在我们就是将列转为行。counts1 <- as.data.frame(counts1) #此时的counts1还不是数据表的形式,这句把其变为数据表。
2025-10-27 10:03:44
611
原创 Day 1 R基础
duplicated 返回集合中的元素是否重复,第一个 a 是不重复的,所以为false,第二个 a 与第一个 a 重复,所以为true。但是反转过后,此时的c就不再是数据框了,可以通过下面操作变为数据框的格式。class(x$'列名') 如果有多行数据,返回第一行的数据类型。setwd 只能向下一级跳转,不可以同级跳转,不可以向上级跳转。class还可用于判断数据框的每列的数据类型。是将我们要合并的表相同的地方进行合并。$ 符可以提取x 数据框的列名。setwd 是用来跳转文件的。输出从第一位到第四位。
2025-10-16 18:56:11
357
原创 L2-001 紧急救援
作为一个城市的应急救援队伍的负责人,你有一张特殊的全国地图。在地图上显示有多个分散的城市和一些连接城市的快速道路。每个城市的救援队数量和每一条连接两个城市的快速道路长度都标在地图上。当其他城市有紧急求助电话给你的时候,你的任务是带领你的救援队尽快赶往事发地,同时,一路上召集尽可能多的救援队。
2025-04-17 22:16:37
324
原创 ARK no NIGHTS
昨夜圆车》(ARK no NIGHTS) 于 2025 年 4 月 1 日 16:00 开服。在这款游戏中,玩家将扮演博士,带领整合运动击败罗德岛。FloorWinter 非常期待第一时间体验这款船新的游戏,于是他决定昏睡过去,直到游戏开服再醒来。游戏开服的时间因不同游戏而异,有的安排在凌晨,迫使玩家熬夜等待;有的则选择中午或傍晚,以吸引更多玩家参与。对于普通玩家来说,等待开服的时间可能会很漫长,但对 FloorWinter 来说,这并不是问题。
2025-04-07 22:32:43
571
原创 L1-059 敲笨钟
微博上有个自称“大笨钟V”的家伙,每天敲钟催促码农们爱惜身体早点睡觉。为了增加敲钟的趣味性,还会糟改几句古诗词。其糟改的方法为:去网上搜寻压“ong”韵的古诗词,把句尾的三个字换成“敲笨钟”。例如唐代诗人李贺有名句曰:“寻章摘句老雕虫,晓月当帘挂玉弓”,其中“虫”(chong)和“弓”(gong)都压了“ong”韵。于是这句诗就被糟改为“寻章摘句老雕虫,晓月当帘敲笨钟”。现在给你一大堆古诗词句,要求你写个程序自动将压“ong”韵的句子糟改成“敲笨钟”。
2025-03-03 20:39:56
205
原创 L1-049 天梯赛座位分配
天梯赛每年有大量参赛队员,要保证同一所学校的所有队员都不能相邻,分配座位就成为一件比较麻烦的事情。为此我们制定如下策略:假设某赛场有 N 所学校参赛,第 i 所学校有 M[i] 支队伍,每队 10 位参赛选手。令每校选手排成一列纵队,第 i+1 队的选手排在第 i 队选手之后。从第 1 所学校开始,各校的第 1 位队员顺次入座,然后是各校的第 2 位队员…… 以此类推。如果最后只剩下 1 所学校的队伍还没有分配座位,则需要安排他们的队员隔位就坐。
2025-02-27 10:28:22
405
原创 L1-043 阅览室
天梯图书阅览室请你编写一个简单的图书借阅统计程序。当读者借书时,管理员输入书号并按下S键,程序开始计时;当读者还书时,管理员输入书号并按下E键,程序结束计时。书号为不超过1000的正整数。当管理员将0作为书号输入时,表示一天工作结束,你的程序应输出当天的读者借书次数和平均阅读时间。注意:由于线路偶尔会有故障,可能出现不完整的纪录,即只有S没有E,或者只有E没有S的纪录,系统应能自动忽略这种无效纪录。另外,题目保证书号是书的唯一标识,同一本书在任何时间区间内只可能被一位读者借阅。
2025-02-18 21:19:33
230
原创 美国血统
你的任务是在被给予奶牛家谱的“树中序遍历”和“树前序遍历”的符号后,创建奶牛家谱的“树的 后序遍历”的符号。每一头奶牛的姓名被译为一个唯一的字母。(你可能已经知道你可以在知道树的两 种遍历以后可以经常地重建这棵树。)显然,这里的树不会有多于 2626 个的顶点。农夫约翰非常认真地对待他的奶牛们的血统。他把他的奶牛 们的家谱作成二叉树,并且把二叉树以更线性的“树的中序遍历”和“树的前序遍历”的符号加以记录而 不是用图形的方法。第二行一个字符串,表示该树的前序遍历。单独的一行表示该树的后序遍历。
2024-11-29 20:49:25
389
原创 二叉树的深度
有一个 n(n≤106)n(n≤106) 个结点的二叉树。给出每个结点的两个子结点编号(均不超过 nn),建立一棵二叉树(根节点的编号为 11),如果是叶子结点,则输入。之后 nn 行,第 ii 行两个整数 ll、rr,分别表示结点 ii 的左右子结点编号。若 l=0l=0 则表示无左子结点,r=0r=0 同理。建好这棵二叉树之后,请求出它的深度。是指从根节点到叶子结点时,最多经过了几层。第一行一个整数 nn,表示结点数。一个整数,表示最大结点深度。
2024-11-29 20:03:48
280
原创 淘汰赛
有 2n2n(n≤7n≤7)个国家参加世界杯决赛圈且进入淘汰赛环节。已经知道各个国家的能力值,且都不相等。能力值高的国家和能力值低的国家踢比赛时高者获胜。1 号国家和 2 号国家踢一场比赛,胜者晋级。3 号国家和 4 号国家也踢一场,胜者晋级……晋级后的国家用相同的方法继续完成赛程,直到决出冠军。给出各个国家的能力值,请问亚军是哪个国家?
2024-11-21 20:39:49
379
原创 寄包柜
超市里有 n(1≤n≤105)n(1≤n≤105) 个寄包柜。每个寄包柜格子数量不一,第 ii 个寄包柜有 ai(1≤ai≤105)ai(1≤ai≤105) 个格子,不过我们并不知道各个 aiai 的值。对于每个寄包柜,格子编号从 1 开始,一直到 aiai。已知超市里共计不会超过 107107 个寄包格子,aiai 是确定然而未知的,但是保证一定不小于该柜子存物品请求的格子编号的最大值。接下来 qq 个行,每行有若干个整数,表示一次操作。对于查询操作时,输出答案,以换行隔开。
2024-11-10 21:29:03
257
原创 玩具猜谜
现在第 11 个玩具小人告诉小南一个包含 mm 条指令的谜題,其中第 zz 条指令形如“向左数/右数第 ss 个玩具小人”。小南发现,这个谜题中玩具小人的朝向非常关键,因为朝内和朝外的玩具小人的左右方向是相反的:面朝圈内的玩具小人,它的左边是顺时针方向,右边是逆时针方向;这时 singer 告诉小南一个谜题:“眼镜藏在我左数第 33 个玩具小人的右数第 11 个玩具小人的左数第 22 个玩具小人那里。输出一个字符串,表示从第一个读入的小人开始,依次数完 mm 条指令后到达的小人的职业。
2024-11-10 20:51:39
437
原创 乒乓球
在 1111 分制下,此时比赛的结果是华华第一局 1111 比 00 获胜,第二局 1111 比 00 获胜,正在进行第三局,当前比分 11 比 11。输出由两部分组成,每部分有若干行,每一行对应一局比赛的比分(按比赛信息输入顺序)。其中第一部分是 1111 分制下的结果,第二部分是 2121 分制下的结果,两部分之间由一个空行分隔。华华通过以下方式进行分析,首先将比赛每个球的胜负列成一张表,然后分别计算在 1111 分制和 2121 分制下,双方的比赛结果(截至记录末尾)。
2024-11-08 21:43:38
293
原创 扫雷
在 nn 行 mm 列的雷区中有一些格子含有地雷(称之为地雷格),其他格子不含地雷(称之为非地雷格)。游戏的目标是在不翻出任何地雷格的条件下,找出所有的非地雷格。相邻字符之间无分隔符。用 ** 表示地雷格,用周围的地雷个数表示非地雷格。注:一个格子的周围格子包括其上、下、左、右、左上、右上、左下、右下八个方向上与之直接相邻的格子。对于 100%100%的数据,1≤n≤100,1≤m≤1001≤n≤100,1≤m≤100。现在给出 nn 行 mm 列的雷区中的地雷分布,要求计算出每个非地雷格周围的地雷格数。
2024-11-08 21:14:19
331
原创 数据结构
是描述客观事物的符号,是计算机中可以操作的对象,是能被计算机识别并输入给计算机处理的符号集合。数据包括数值类型,字符类型和声音和图片。是组成数据的、有一定意义的基本单位,在计算机中通常作为整体处理。在人类中,数据元素就是人。一个数据元素是由若干数据项组成。例如,人这个数据元素是由姓名,年龄等数据项组成。是性质相同的数据元素的集合,是数据的子集。在不产生混淆的情况下,将数据对象简称数据。性质相同:是指数据元素具有相同数量和类型的数据项。是相互之间存在一种或多种特种关系的数据元素的集合。
2024-07-12 10:22:10
1014
原创 排队接水
有 𝑛n 个人在一个水龙头前排队接水,假如每个人接水的时间为 𝑇𝑖Ti,请编程找出这 𝑛n 个人排队的一种顺序,使得 𝑛n 个人的平均等待时间最小。输出文件有两行,第一行为一种平均时间最短的排队顺序;第二行为这种排列方案下的平均等待时间(输出结果精确到小数点后两位)。1≤𝑛≤10001≤n≤1000,1≤𝑡𝑖≤1061≤ti≤106,不保证 𝑡𝑖ti 不重复。第二行 𝑛n 个整数,第 𝑖i 个整数 𝑇𝑖Ti 表示第 𝑖i 个人的接水时间 𝑇𝑖Ti。第一行为一个整数 𝑛n。
2024-05-17 21:47:07
657
原创 凌乱的yyy / 线段覆盖
第一行是一个整数 𝑛n,接下来 𝑛n 行每行是 22 个整数 𝑎𝑖,𝑏𝑖 (𝑎𝑖<𝑏𝑖)ai,bi (ai<bi),表示比赛开始、结束的时间。由于 yyy 是蒟蒻,如果要参加一个比赛必须善始善终,而且不能同时参加 22 个及以上的比赛。现在各大 oj 上有 𝑛n 个比赛,每个比赛的开始、结束的时间点是知道的。yyy 认为,参加越多的比赛,noip 就能考的越好(假的)。所以,他想知道他最多能参加几个比赛。快 noip 了,yyy 很紧张!一个整数最多参加的比赛数目。
2024-05-17 21:46:16
477
原创 合并果子
接着,将新堆与原先的第三堆合并,又得到新的堆,数目为 1212 ,耗费体力为 1212。假定每个果子重量都为 11 ,并且已知果子的种类 数和每种果子的数目,你的任务是设计出合并的次序方案,使多多耗费的体力最少,并输出这个最小的体力耗费值。第二行包含 𝑛n 个整数,用空格分隔,第 𝑖i 个整数 𝑎𝑖(1≤𝑎𝑖≤20000)ai(1≤ai≤20000) 是第 𝑖i 种果子的数目。第一行是一个整数 𝑛(1≤𝑛≤10000)n(1≤n≤10000) ,表示果子的种类数。一个整数,也就是最小的体力耗费值。
2024-05-17 21:45:14
460
原创 连续因子
一个正整数 N 的因子中可能存在若干连续的数字。例如 630 可以分解为 3×5×6×7,其中 5、6、7 就是 3 个连续的数字。给定任一正整数 N,要求编写程序求出最长连续因子的个数,并输出最小的连续因子序列。
2024-04-27 22:05:19
331
原创 一帮一
一帮一学习小组”是中小学中常见的学习组织方式,老师把学习成绩靠前的学生跟学习成绩靠后的学生排在一组。本题就请你编写程序帮助老师自动完成这个分配工作,即在得到全班学生的排名后,在当前尚未分组的学生中,将名次最靠前的学生与名次最靠后的学生分为一组。
2024-04-27 20:37:26
202
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅
1