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

上海建设行政主管部门网站2024北京又开始核酸了吗今天

上海建设行政主管部门网站,2024北京又开始核酸了吗今天,建设厅网站的秘钥怎么买,无锡网站科技公司文章目录 FastGPT 源码:controller.ts 主要定义1. 主要函数和参数定义2. 参数初始化3. 内部工具函数4. 多查询召回实现5. 主流程执行 FastGPT 源码:controller.ts 主要定义 controller.ts 中的核心搜索实现。 1. 主要函数和参数定义 type SearchDatas…

文章目录

    • FastGPT 源码:controller.ts 主要定义
      • 1. 主要函数和参数定义
      • 2. 参数初始化
      • 3. 内部工具函数
      • 4. 多查询召回实现
      • 5. 主流程执行

FastGPT 源码:controller.ts 主要定义

controller.ts 中的核心搜索实现。

1. 主要函数和参数定义

type SearchDatasetDataProps = {teamId: string;        // 团队IDmodel: string;         // 向量模型similarity?: number;   // 最小相似度阈值limit: number;         // 最大Token限制datasetIds: string[];  // 要搜索的数据集IDssearchMode?: `${DatasetSearchModeEnum}`; // 搜索模式(embedding/全文/混合)usingReRank?: boolean; // 是否使用重排序reRankQuery: string;   // 重排序查询queries: string[];     // 搜索查询列表
};

2. 参数初始化

export async function searchDatasetData(props: SearchDatasetDataProps) {let {teamId,reRankQuery,queries,model,similarity = 0,limit: maxTokens,searchMode = DatasetSearchModeEnum.embedding,  // 默认使用向量搜索usingReRank = false,datasetIds = []} = props;// 初始化搜索模式searchMode = DatasetSearchModeMap[searchMode] ? searchMode : DatasetSearchModeEnum.embedding;// 检查是否可以使用重排序usingReRank = usingReRank && global.reRankModels.length > 0;// token数量限制,最小50if (maxTokens < 50) {maxTokens = 1500;}
}

3. 内部工具函数

// 计算不同搜索模式下的召回限制
const countRecallLimit = () => {if (searchMode === DatasetSearchModeEnum.embedding) {return { embeddingLimit: 150, fullTextLimit: 0 };  // 纯向量搜索}if (searchMode === DatasetSearchModeEnum.fullTextRecall) {return { embeddingLimit: 0, fullTextLimit: 150 };  // 纯全文搜索}return { embeddingLimit: 100, fullTextLimit: 80 };   // 混合搜索
};// 向量检索实现
const embeddingRecall = async ({ query, limit }) => {// 1. 获取查询文本的向量const { vectors, tokens } = await getVectorsByText({...});// 2. 从向量库检索const { results } = await recallFromVectorStore({...});// 3. 获取完整的QA数据const dataList = await MongoDatasetData.find({...});// 4. 格式化结果return { embeddingRecallResults: formatResult, tokens };
};// 全文检索实现
const fullTextRecall = async ({ query, limit }) => {// 使用MongoDB的全文索引搜索let searchResults = await Promise.all(datasetIds.map(id => MongoDatasetData.find({$text: { $search: jiebaSplit({ text: query }) }})));return { fullTextRecallResults, tokenLen: 0 };
};// 重排序实现
const reRankSearchResult = async ({ data, query }) => {// 调用重排序模型const results = await reRankRecall({query,documents: data.map(item => ({id: item.id,text: `${item.q}\n${item.a}`}))});// 合并重排序分数return mergeResult;
};

4. 多查询召回实现

const multiQueryRecall = async ({ embeddingLimit, fullTextLimit }) => {// 并行执行每个query的向量和全文检索await Promise.all(queries.map(async (query) => {const [{ tokens, embeddingRecallResults }, { fullTextRecallResults }] = await Promise.all([embeddingRecall({ query, limit: embeddingLimit }),fullTextRecall({ query, limit: fullTextLimit })]);// 收集结果...}));// 使用RRF合并多个查询的结果const rrfEmbRecall = datasetSearchResultConcat(embeddingRecallResList.map(list => ({ k: 60, list })));const rrfFTRecall = datasetSearchResultConcat(fullTextRecallResList.map(list => ({ k: 60, list })));
};

5. 主流程执行

/* main step */
// 1. 获取召回限制
const { embeddingLimit, fullTextLimit } = countRecallLimit();// 2. 执行多查询召回
const { embeddingRecallResults, fullTextRecallResults } = await multiQueryRecall({...});// 3. 执行重排序
const reRankResults = await (async () => {if (!usingReRank) return [];// 合并向量和全文结果const concatRecallResults = embeddingRecallResults.concat(fullTextRecallResults.filter(item => !set.has(item.id)));// 去重并重排序return reRankSearchResult({...});
})();// 4. 最终RRF合并
const rrfConcatResults = datasetSearchResultConcat([{ k: 60, list: embeddingRecallResults },{ k: 60, list: fullTextRecallResults },{ k: 58, list: reRankResults }
]);// 5. 结果过滤
// - 去重
// - 相似度过滤
// - Token限制过滤
const filterSameDataResults = rrfConcatResults.filter(...);
const scoreFilter = filterByScore(filterSameDataResults);
const finalResults = filterResultsByMaxTokens(scoreFilter, maxTokens);

实现完整覆盖如下流程:

  1. 多种搜索模式(向量/全文/混合)
  2. 多查询并行检索
  3. 查询结果RRF合并
  4. 重排序优化
  5. 结果过滤和限制

整个过程保证了搜索的全面性(多种召回方式)和准确性(重排序和过滤)。

http://www.dtcms.com/wzjs/28456.html

相关文章:

  • 福州高端网站制作卫星电视安装视频
  • 新农村建设管理网站百度统计
  • 各种大型网站产品推广运营的公司
  • 怎样做家普网站域名查询站长之家
  • 织梦可以做微网站吗百度一下浏览器下载安装
  • wordpress后台怎么进的广州网络seo公司
  • 旅游网站开发与设计论文seozou是什么意思
  • 旅游网站建设的利益凡科建站的免费使用
  • 同城做推广哪个网站好推销一个产品的方案
  • 网站如何验证登陆状态网站开发的一般流程
  • 站长工具 怎么做网站地图seo站长工具 论坛
  • 阿里巴巴国际站入驻费用及条件我想做电商怎么加入
  • wordpress google api株洲seo推广
  • 课程中心网站建设内容国内建站平台
  • 湖南做网站价格网络销售是什么
  • 做网站目的aso搜索排名优化
  • 浏览器如何做购物网站汉中网站seo
  • 网站制作报价单模板查排名的软件有哪些
  • 阿里云官方网站nba排名最新赛程
  • 国外域名注册哪个网站好免费网站建设平台
  • 网络服务公司简介企业seo推广的绝密诀窍曝光
  • 东莞注塑切水口东莞网站建设互动营销的案例有哪些
  • 中国企业登记网官网北京度seo排名
  • 平顶山网站建设电话广东疫情最新资讯
  • 3.建设营销型网站流程电商推广平台有哪些
  • 广东住房和城乡建设厅官方网站百度seo找哪里
  • 多种网站建设网络营销图片
  • 搭建网站需要什么软件百度用户服务中心官网电话
  • 简述站点推广有哪些方式百度手机助手安卓版下载
  • 锦州网站建设案例app拉新平台有哪些