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

网站工具查询东莞网站建设seo

网站工具查询,东莞网站建设seo,佛山网站建设网络推广,杭州网站的优化文章目录 FastGPT 引申:基于 Python 版本实现 Java 版本 RRF函数定义使用示例 FastGPT 引申:基于 Python 版本实现 Java 版本 RRF 函数定义 使用 Java 实现 RRF 相关的两个函数:合并结果、过滤结果 import java.util.*;// 搜索结果类型定义…

文章目录

    • FastGPT 引申:基于 Python 版本实现 Java 版本 RRF
      • 函数定义
      • 使用示例

FastGPT 引申:基于 Python 版本实现 Java 版本 RRF

函数定义

使用 Java 实现 RRF 相关的两个函数:合并结果、过滤结果

import java.util.*;// 搜索结果类型定义
public class SearchDataResponseItem {private String id;private String q;private String a;private List<Score> score;private double rrfScore;  // 临时存储RRF分数// 其他字段...// getter和setter方法
}// 分数类型定义
public class Score {private String type;private double value;private int index;// getter和setter方法
}// 搜索结果合并工具类
public class DatasetSearchUtils {/*** RRF搜索结果合并* @param searchResults 搜索结果列表,包含k值和结果列表* @return 合并后的结果*/public static List<SearchDataResponseItem> datasetSearchResultConcat(List<SearchResultGroup> searchResults) {// 过滤空结果searchResults = searchResults.stream().filter(item -> !item.getList().isEmpty()).collect(Collectors.toList());// 处理边界情况if (searchResults.isEmpty()) {return new ArrayList<>();}if (searchResults.size() == 1) {return searchResults.get(0).getList();}// 用Map存储合并结果Map<String, SearchDataResponseItem> resultMap = new HashMap<>();// RRF算法实现for (SearchResultGroup group : searchResults) {int k = group.getK();List<SearchDataResponseItem> list = group.getList();for (int i = 0; i < list.size(); i++) {SearchDataResponseItem data = list.get(i);int rank = i + 1;double score = 1.0 / (k + rank);SearchDataResponseItem record = resultMap.get(data.getId());if (record != null) {// 合并分数List<Score> concatScore = new ArrayList<>(record.getScore());for (Score dataScore : data.getScore()) {Optional<Score> sameScore = concatScore.stream().filter(s -> s.getType().equals(dataScore.getType())).findFirst();if (sameScore.isPresent()) {sameScore.get().setValue(Math.max(sameScore.get().getValue(), dataScore.getValue()));} else {concatScore.add(dataScore);}}// 更新记录record.setScore(concatScore);record.setRrfScore(record.getRrfScore() + score);resultMap.put(data.getId(), record);} else {// 新记录data.setRrfScore(score);resultMap.put(data.getId(), data);}}}// 排序List<SearchDataResponseItem> results = new ArrayList<>(resultMap.values());results.sort((a, b) -> Double.compare(b.getRrfScore(), a.getRrfScore()));// 格式化结果for (int i = 0; i < results.size(); i++) {SearchDataResponseItem item = results.get(i);Optional<Score> rrfScore = item.getScore().stream().filter(s -> s.getType().equals("rrf")).findFirst();if (rrfScore.isPresent()) {rrfScore.get().setValue(item.getRrfScore());rrfScore.get().setIndex(i);} else {Score newScore = new Score();newScore.setType("rrf");newScore.setValue(item.getRrfScore());newScore.setIndex(i);item.getScore().add(newScore);}// 清除临时RRF分数item.setRrfScore(0);}return results;}/*** 按最大Token数过滤结果* @param list 搜索结果列表* @param maxTokens 最大token限制* @return 过滤后的结果*/public static List<SearchDataResponseItem> filterSearchResultsByMaxChars(List<SearchDataResponseItem> list, int maxTokens) {List<SearchDataResponseItem> results = new ArrayList<>();int totalTokens = 0;for (SearchDataResponseItem item : list) {// 注意:这里需要实现countPromptTokens方法int tokens = countPromptTokens(item.getQ() + item.getA());totalTokens += tokens;if (totalTokens > maxTokens + 500) {break;}results.add(item);if (totalTokens > maxTokens) {break;}}// 确保至少返回一条结果if (results.isEmpty() && !list.isEmpty()) {results.add(list.get(0));}return results;}/*** 计算文本的token数量* 注意:这是一个示例实现,实际需要根据具体的分词算法来实现*/private static int countPromptTokens(String text) {// 这里需要实现实际的token计算逻辑// 可以使用各种NLP库或自定义的分词算法return text.length(); // 示例实现}
}// 搜索结果分组类
class SearchResultGroup {private int k;private List<SearchDataResponseItem> list;// getter和setter方法
}

使用示例

// 使用示例
List<SearchResultGroup> searchResults = new ArrayList<>();
// ... 添加搜索结果// 合并结果
List<SearchDataResponseItem> mergedResults = DatasetSearchUtils.datasetSearchResultConcat(searchResults);// 过滤结果
List<SearchDataResponseItem> filteredResults = DatasetSearchUtils.filterSearchResultsByMaxChars(mergedResults, 1500);
http://www.dtcms.com/wzjs/112521.html

相关文章:

  • 快捷的网站建设软件seo具体优化流程
  • 如何建设网站论坛互联网销售是做什么的
  • wh网站建设做优化的网站
  • 芜湖市建设办网站今日新闻10条简短
  • 莱芜可靠的网站建设比百度好用的搜索引擎
  • 保定专门做网站seo外链推广
  • 沙井做网站公司疫情防控最新数据
  • 怎么找到要做网站推广的客户资源还有哪些平台能免费营销产品
  • 网上商城网站建设方案书aso安卓优化
  • 响应式布局网站开发seo关键词排名优化软件怎么选
  • 腾讯云学生机做网站如何在百度做免费推广产品
  • 河源网站建设关键词查网站
  • 网页设计html代码教程株洲seo优化哪家好
  • 遥控器外壳设计网站推荐全网营销图片
  • 重庆制作网站交换友情链接的方法
  • 十大中国网站制作全国新闻媒体发稿平台
  • 网站建设还能赚钱吗免费推广产品的网站
  • 网站建设需要会什么新闻媒体发稿平台
  • 南通微信网站开发天津关键词优化网站
  • 宁波住房建设局网站搜索引擎优化的内容包括
  • 无锡高端网站建设机构天津百度推广电话号码
  • 深圳前50强网站建设公司市场营销推广
  • 视频网站点击链接怎么做电商培训班
  • 87网站建设工作室seo关键词推广多少钱
  • 做网站话术chatgpt网站
  • 网站制作要求产品推广渠道
  • 嘉兴网站制作计划信息流优化师职业规划
  • 网页设计欣赏可爱风格西安网站seo诊断
  • 站内seo和站外seo区别百度怎么推广网站
  • 酷炫给公司网站欣赏50篇经典软文100字