codecamp

TRAE 使用 # 符号添加上下文:快速构建 AI 助手对话上下文

在侧边对话的输入框中,你可以通过 # 符号添加多种类的上下文,包括代码、文件、文件夹和工作区。通常情况下,列表中将展示与编辑器中当前打开文件相关的内容作为推荐的上下文,但你仍然可以自行搜索所需的上下文并将其添加到输入框中。基于你的问题,你可以组合添加各种来源的相关上下文(例如同时添加代码和文件)。

Code

通过 #Code,你可以将函数或类的相关代码作为与 AI 助手对话的上下文。列表中默认展示当前编辑器内打开的文件中的函数或类。选择前,你可以预览列表中推荐的函数或类的相关代码。若推荐的内容非你所需,你可以通过关键词搜索所需的函数或类。

💡提示
若 TRAE 中不存在对应语言的语言服务协议(Language Server Protocol),请提前安装,否则可能导致无法识别代码符号。

  1. 在输入框中输入 #,或直接点击输入框左下角的 # 上下文 按钮。

    输入框上方显示上下文类型选择列表。

  2. 在列表中选择 Code(或在 # 符号后手动输入 Code),然后按下回车键。

    列表将展示编辑器中当前打开的文件中存在的函数和类。将鼠标悬浮在列表中的某个条目后,左侧会展示该函数或类的代码内容,供你预览。

  3. 若推荐的函数和类非你所需,在 #Code: 后输入你想要的函数或类的名称或关键词。

    AI 助手将在项目内搜索相关函数和类,并展示在列表中,你可以进行预览。

  4. 从列表中选择需指定为上下文的函数或类。

File

通过 #File,你可以将指定文件中的所有内容作为与 AI 助手对话的上下文。列表中默认展示近期在编辑器中打开过的文件。你可以预览这些文件所在的目录,以免因存在同名文件而导致错选。若展示的文件非你所需,你可以通过关键词搜索所需文件。

  1. 在输入框中输入 #,或直接点击输入框左下角的 # 上下文 按钮。

    输入框上方显示上下文类型选择列表。

  2. 在列表中选择 File(或在 # 符号后手动输入 File),然后按下回车键。

    列表展示近期在编辑器中打开过的文件。将鼠标悬浮在列表中的某个条目后,左侧会展示该文件所在的目录。

  3. 若推荐的文件非你所需,在 #File: 后输入你想要的文件的名称或关键词。

    AI 助手将在项目内搜索相关文件并展示在列表中。

  4. 从列表中选择需指定为上下文的文件。

Folder

通过 #Folder,你可以将指定文件夹中的所有内容作为与 AI 助手对话的上下文。列表中默认展示与编辑器中当前所打开文件相关的文件夹。你可以预览这些文件夹所在的目录,以免因存在同名文件夹而导致错选。若展示的文件夹非你所需,你可以通过关键词搜索所需文件夹。

提示
\#Folder 依赖项目代码索引(Project Code Index)是否构建完全。若索引暂未构建完全,可能会影响文件夹内容召回的效果,从而导致 AI 助手的回答不够完整。提问时,若索引从未构建或正在构建中,References 位置将出现 “索引构建中” 或 “索引暂未构建” 的提示,你可以根据引导在设置页管理索引。详情参考《AI 设置》。

  1. 在输入框中输入 #,或直接点击输入框左下角的 # 上下文 按钮。

    输入框上方显示上下文类型选择列表。

  2. 在列表中选择 Folder(或在 # 符号后手动输入 Folder),然后按下回车键。

    列表展示与编辑器中当前所打开文件相关的文件夹。将鼠标悬浮在列表中的某个条目后,左侧会展示该文件夹所在的目录。

  3. 若推荐的文件夹非你所需,在 #Folder: 后输入你想要的文件夹的名称或关键词。

    AI 助手将在项目内搜索相关文件夹并展示在列表中。

  4. 从列表中选择需指定为上下文的文件夹。

Workspace

你可以使用 #Workspace 来向 AI 助手提出有关整个工作空间的问题,AI 助手将自动在工作空间中查找与你的问题最相关的内容作为上下文进行回答。遇到不熟悉的项目时,该功能可以帮助你全局了解该项目所实现的功能和代码,从而使你快速上手该项目的开发。

提示
- 仅支持在 Chat 模式中使用。Builder 模式会自动将整个工作空间作为上下文。
- #Workspace 依赖项目代码索引(Project Code Index)是否构建完全。若索引暂未构建完全,可能会影响文件夹内容召回的效果,从而导致 AI 助手的回答不够完整。提问时,若索引从未构建或正在构建中,References 位置将出现 “索引构建中” 或 “索引暂未构建” 的提示,你可以根据引导在设置页管理索引。详情参考《AI 设置》。

  1. 在输入框中输入 #,或直接点击输入框左下角的 # 上下文 按钮。

    输入框上方显示上下文类型选择列表。

  2. 在列表中选择 Workspace(或在 # 符号后手动输入 Workspace)。

Doc

你可以上传个人文档集,将文档内容作为 AI 对话的上下文让 AI 更精准地处理你的需求。

提示
创建文档集时,TRAE 将针对文档集内容构建索引,在索引过程中文档数据将被传输至 TRAE 服务器进行矢量化,但 TRAE 不会读取或存储任何文档数据,矢量化完成后文档数据和矢量数据都将从 TRAE 的服务器中删除,数据将返回至用户的设备并存储在用户本地。在 TRAE 中删除文档集后,本地数据也将被同步删除。

创建文档集并将其引用为上下文的步骤如下:

  1. 在 IDE 模式界面中,点击界面右上角的 设置 图标,进入设置中心。

    在 SOLO 模式界面中,点击对话面板右上角的 设置 图标,进入设置中心。

  2. 在左侧导航栏中,选择 上下文,进入 上下文 面板。

  3. 文档集 部分,点击 + 添加文档集 按钮。

  4. 选择合适的方式添加文档集。

    通过 URL 添加 从本地文件添加
    在菜单中选择 通过 URL 添加 选项,然后在弹窗中输入文档集名称和文档站的 URL。  
      
    点击 确认 按钮后,Trae IDE 开始索引站点下的网页。以该入口 URL 为起点,Trae IDE 会自动抓取同一站点中与入口 URL 同级路径或子路径下,最多三次跳转内的页面内容。若入口 URL 为 https://www.example.com/docs/api,则:  
    ●  可抓取内容的路径示例如下:  
      ○  https://www.example.com/docs/changelog(同级路径)  
      ○  https://www.example.com/docs/api/abc(子路径)  
      ○  https://www.example.com/docs/protocol/def(同级路径的子路径)  
    ●  不可抓取内容路径示例如下:  
      ○  https://www.anotherexample.com(不同 Host)  
      ○  https://www.example.com/(高于入口路径)  
      ○  https://www.example.com/blogs(不属于同一路径)  
       
     >注意  
     >在使用本工具时,应遵循目标网址的规则,合法合规使用本工具。本工具仅支持查看公开可访问的技术文档类网站,用于学习、研究的目的,感谢你的理解与配合。  
     > TRAE IDE 在扫描页面时将会严格遵循网页的 /robots.txt 规范,若被网站拒绝则无法正常索引,索引页面列表中将展示 “网站限制无法访问”。
    在菜单中选择 从本地文件添加 选项,然后在弹窗中输入文档集名称并添加本地文件。  
    ●  文件格式.md 和 .txt  
    ●  文件大小:单个文件最大 10 MB  
    ●  文档集大小:最大 50 MB  
    ●  文件数量:不超过 1000 个  
      
    点击 确认 按钮后,TRAE IDE 开始索引文件。  

    文档添加完成后,将被展示在文档集列表中。你可以按需修改文档集名称、重新索引页面或文件、删除文档集。

  5. 在 AI 对话输入框中,通过 #Doc 将你添加的文档集作为上下文。

Problems

在对话框中使用 #Problems 符号并发送给 AI 后,AI 会全量分析 问题 页签中报告的所有问题并提供解决方案。

Web

你可以将线上网站的内容作为 AI 对话的上下文。

  • 直接在 #Web 后输入你的问题并发送。这种方式会触发联网搜索,AI 会在全网搜索与提问相关的内容并生成答复。

  • 在输入框中先输入网址,再输入问题,AI 会直接从该网站查询相关内容并生成回答。这种方式不仅能获取网站的最新信息作为问答依据,还能同时从多个网站检索与问题最相关的内容。

TRAE IDE 规则设置:个性化 AI 助手行为,提升开发体验
TRAE IDE 忽略文件设置:保护隐私,优化代码索引
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }