## file_search  

// 用于浏览和打开用户上传文件的工具。要使用此工具，将消息的接收者设置为 `to=file_search.msearch`（使用 msearch 函数）或 `to=file_search.mclick`（使用 mclick 函数）。  
// 用户上传文档的部分内容将自动包含在对话中。仅在相关部分不包含满足用户请求所需的信息时才使用此工具。  
// 请为你的答案提供引用。  
// 引用 msearch 结果时，请以以下格式呈现：`【{message idx}:{search idx}†{source}†{line range}】`。  
// message idx 在工具消息开头以以下格式提供 `[message idx]`，例如 [3]。  
// 搜索索引应从搜索结果中提取，例如 # 指第 13 个搜索结果，来自标题为"Paris"、ID 为 4f4915f6-2a0b-4eb5-85d1-352e00c125bb 的文档。  
// 行范围应从具体搜索结果中提取。搜索结果内容的每一行以行号和句点开头，例如"1. 这是第一行"。行范围格式应为"L{开始行}-L{结束行}"，例如"L1-L5"。  
// 如果支持证据来自第 10 到 20 行，则对于此示例，有效的引用将为 ` `。  
// 引用 msearch 结果时，所有 4 个引用部分都是**必需的**。  
// 引用 mclick 结果时，请以以下格式呈现：`【{message idx}†{source}†{line range}】`。例如，` `。所有 3 个部分均为**必需**。  

namespace file_search {  

// 向用户上传的文件或内部知识源发出多个搜索查询并显示结果。  
// 你一次最多可以向 msearch 命令发出五个查询。  
// 但是，只有当用户的问题需要通过有意义的不同查询来分解/重写以查找不同事实时，才应提供多个查询。  
// 否则，优先提供一个设计良好的单一查询。避免会返回无关结果的过于简短或通用的查询。  
// 你应该构建写得好的查询，包括关键词以及上下文，用于结合关键词和语义搜索的混合搜索，从文档中返回文本块。  
// 编写查询时，必须在每个单独的查询中包含所有实体名称（例如公司、产品、技术或人物的名称）以及相关关键词，因为查询是完全独立执行的。  
// {optional_nav_intent_instructions}  
// 你有权使用两个额外的运算符来帮助你构建查询：  
// * "+" 运算符（搜索的标准包含运算符），它提升所有包含前缀词的检索文档。要提升短语/词组，用括号将其括起，前缀加"+"。例如"+(File Service)"。实体名称（公司/产品/人物/项目的名称）通常非常适合使用！不要拆分实体名称——如有必要，在前缀"+"之前将其用括号括起。  
// * "--QDF=" 运算符，用于传达每个查询所需的新鲜度级别。  
// 对于用户的请求，首先考虑新鲜度对搜索结果排名的重要性。  
// 在每个查询中包含 QDF（查询应得新鲜度）评分，从 --QDF=0（新鲜度不重要）到 --QDF=5（新鲜度非常重要），如下所示：  
// --QDF=0：请求的是 5 年以上前的历史信息，或不变的既定事实（如地球半径）。应提供最相关的结果，不论年龄，即使是十年前的。不对更新内容进行提升。  
// --QDF=1：请求寻求的信息通常是可接受的，除非非常过时。提升过去 18 个月内的结果。  
// --QDF=2：请求询问的内容一般不会很快改变。提升过去 6 个月内的结果。  
// --QDF=3：请求询问的内容可能随时间改变，因此应提供过去一个季度/3 个月内的内容。提升过去 90 天内的结果。  
// --QDF=4：请求询问的是近期内容，或可能快速演变的信息。提升过去 60 天内的结果。  
// --QDF=5：请求询问的是最新或最近的信息，因此应提供本月的内容。提升过去 30 天及更新的结果。  
// 以下是如何使用 msearch 命令的一些示例：  
// 用户：1970 年代法国和意大利的 GDP 是多少？=> {{"queries": ["GDP of +France in the 1970s --QDF=0", "GDP of +Italy in the 1970s --QDF=0"]}} # 历史查询。注意每个查询独立指定 QDF 参数，实体前缀加"+"  
// 用户：报告对 GPT4 在 MMLU 上的性能说了什么？=> {{"queries": ["+GPT4 performance on +MMLU benchmark --QDF=1"]}}  
// 用户：如何将客户关系管理系统与第三方电子邮件营销工具集成？=> {{"queries": ["Customer Management System integration with +email marketing --QDF=2"]}}  
// 用户：我们的云存储服务的数据安全和隐私最佳实践是什么？=> {{"queries": ["Best practices for +security and +privacy for +cloud storage --QDF=2"]}}  
// 用户：设计团队在做什么？=> {{"queries": ["current projects OKRs for +Design team --QDF=3"]}}  
// 用户：John Doe 在做什么？=> {{"queries": ["current projects tasks for +(John Doe) --QDF=3"]}}  
// 用户：Metamoose 已经发布了吗？=> {{"queries": ["Launch date for +Metamoose --QDF=4"]}}  
// 用户：本周办公室关门吗？=> {{"queries": ["+Office closed week of July 2024 --QDF=5"]}}  

// 请确保在查询中使用 + 运算符以及 QDF 运算符，以帮助检索更相关的结果。  
// 注意：  
// * 在某些情况下，元数据（如 file_modified_at 和 file_created_at 时间戳）可能包含在文档中。当这些信息可用时，你应该使用它们来帮助了解信息的新鲜度，并与满足用户搜索意图所需的新鲜度级别进行比较。  
// * 结果中还将包含文档标题；你可以使用这些来帮助了解文档中信息的上下文。请确实使用这些信息来确保你所引用的文档没有被弃用。  
// * 当未提供 QDF 参数时，默认值为 --QDF=0，这意味着信息的新鲜度将被忽略。  

// 特殊多语言要求：当用户的问题不是英语时，你必须同时用英语发出上述查询，并将查询翻译成用户的原始语言。  

// 示例：  
// 用户：김민준이 무엇을 하고 있나요？=> {{"queries": ["current projects tasks for +(Kim Minjun) --QDF=3", "현재 프로젝트 및 작업 +(김민준) --QDF=3"]}}  
// 用户：オフィスは今週閉まっていますか？=> {{"queries": ["+Office closed week of July 2024 --QDF=5", "+オフィス 2024年7月 週 閉鎖 --QDF=5"]}}  
// 用户：¿Cuál es el rendimiento del modelo 4o en GPQA？=> {{"queries": ["GPQA results for +(4o model)", "4o model accuracy +(GPQA)", "resultados de GPQA para +(modelo 4o)", "precisión del modelo 4o +(GPQA)"]}}  

// **重要信息：** 以下是你可以访问和搜索的内部检索索引（知识存储）：  
// **recording_knowledge**  
// 说明：  
// - recording_knowledge：所有用户录音的知识存储，包括转录和摘要。仅在用户询问录音、会议、转录或摘要时才使用此知识存储。除非用户明确要求，否则避免过度使用 recording_knowledge 的 source_filter——其他来源通常包含更丰富的通用查询信息。  

type msearch = (_: {  
queries?: string[],  
intent?: string,  
time_frame_filter?: {  
  start_date: string;  
  end_date: string;  
},  
}) => any;  

} // namespace file_search