⚙️PearAI 核心功能
CMD+I
- 内联代码编辑:PearAI 会对您当前的文件进行修改并显示差异。CMD+L
- 新建聊天(如果您选择了代码,也会将其添加到聊天中)。CMD+SHIFT+L
- 追加到当前聊天。- 地址符号 (@) 命令
@filename/foldername
,@docs
- 添加文件、文件夹或文档。您还可以通过滚动到页面底部并点击“Add Docs”来选择添加您自己的文档链接。- 输入
@codebase
可自动检索代码库中最相关的片段。在此处阅读有关索引和检索的更多信息。您也可以按下CMD/CTRL+ENTER
直接使用代码库上下文。 - 输入
@code
引用整个项目中的特定函数或类。 - 输入
@terminal
引用 IDE 终端的内容。 - 输入
@diff
引用您当前分支中所做的所有更改。这在提交之前总结所做工作或请求一般性审查时非常有用。 - 输入
@problems
引用当前文件中的问题。
- 斜杠命令
/commit
- 为您当前的所有更改生成提交消息。/cmd
- 生成一个 CLI 命令并直接粘贴到终端中。/edit
- 使用CMD+L
或CMD+SHIFT+L
(Windows 用户为CTRL
)将代码带入聊天,然后添加/edit
来生成带有差异的代码更改。/comment
- 与/edit
功能类似,但会为代码添加注释。/test
- 与/edit
功能类似,但会为高亮显示或提供的代码生成单元测试。
快速终端调试:使用 CMD+SHIFT+R
将最后的终端文本添加到聊天中。
- 自定义斜杠命令添加自定义斜杠命令主要有两种方式:
- 自然语言提示:您可以通过向
config.json
中的 customCommands 属性添加内容来新增自定义斜杠命令。name
: 使用/name
调用的命令名称。description
: 下拉菜单中显示的简要描述。prompt
: 发送到大语言模型 (LLM) 的模板化提示。
非常适合频繁重复使用提示。例如,创建一个命令以预定义提示检查代码中的错误。
- 自定义函数:要为斜杠命令创建自定义函数,请使用
config.ts
而不是config.json
。将新的SlashCommand
对象推送到slashCommands
列表中,指定“name”(用于调用命令)、“description”(显示在下拉菜单中)和“run”(一个异步生成器函数,用于生成要显示在 UI 中的字符串)。通过编写自定义 TypeScript 代码,可以实现更高级的功能,例如基于代码更改生成提交消息。~/.pearai/config.ts
export function modifyConfig(config: Config): Config { config.slashCommands?.push({ name: "commit", description: "Write a commit message", run: async function* (sdk) { const diff = await sdk.ide.getDiff(); for await (const message of sdk.llm.streamComplete( `${diff}\n\nWrite a commit message for the above changes. Use no more than 20 tokens to give a brief description in the imperative mood (e.g. 'Add feature' not 'Added feature'):`, { maxTokens: 20, }, )) { yield message; } }, }); return config; }
这种灵活性使您能够创建强大且可重用的自定义命令,以满足特定的工作流程需求。
如果您希望在 PearAI 中也具有 Tab 自动补全功能,请参阅下个章节内容。
- 自然语言提示:您可以通过向
🗃️ "@
" 命令
如何使用
@
命令提供额外的上下文信息(例如额外的信息),可以包含在您的提示中,以便让大语言模型(LLM)更了解您的工作环境。要使用它,请在 PearAI 聊天中输入 @
,然后会出现一个下拉列表,其中包含上下文选项。每个上下文提供者都是一个插件,允许您引用一段额外的信息。
例如,您在本地运行一个应用程序时遇到了问题,终端中有大量错误。您可以使用 @terminal
包含错误日志,并进一步使用 @files
引用 package.json
,立即开始调试问题。PearAI 通过让您将完整的上下文集中在一个地方来简化调试过程。
内置上下文提供者
PearAI 附带了一些开箱即用的有用上下文提供者。如果您希望移除或添加上下文提供者,可以在 config.json
的 contextProviders
列表中进行修改。
@Files
允许您指定一个文件作为上下文。
{ "contextProviders": [ { "name": "files" } ]}
@Codebase
允许您将代码库作为上下文。请注意,根据代码库的大小,这可能会消耗大量的信用额度。
{ "contextProviders": [ { "name": "codebase" } ]}
@Code
允许您指定函数/类。
{ "contextProviders": [ { "name": "code" } ]}
@Docs
允许您指定一个文档站点作为上下文。
{ "contextProviders": [ { "name": "docs" } ]}
@Git Diff
将您当前分支相对于主分支所做的所有更改作为上下文提供。使用此功能可以获取当前工作的摘要或进行代码审查。
{ "contextProviders": [ { "name": "diff" } ]}
@Terminal
将您当前的终端内容添加为上下文。
{ "contextProviders": [ { "name": "terminal" } ]}
@Problems
将您当前文件中的问题添加为上下文。
{ "contextProviders": [ { "name": "problems" } ]}
@Folder
引用指定文件夹中的所有内容作为上下文。
{ "contextProviders": [ { "name": "folder" } ]}
@Directory Structure
将项目的目录结构作为上下文提供。您可以使用此上下文让 LLM 知道您对目录所做的任何更改。
{ "contextProviders": [ { "name": "directory" } ]}
🆕 添加新模型
除了 PearAI 内置的模型,您还可以按照以下步骤添加您自己的模型/API 密钥。
- 打开 PearAI 中的添加模型部分。
- 选择“其他”。
- 然后选择您希望添加的任意模型。
- 按照屏幕上的指示完成设置。
注意:
- 添加的模型配置可以在 PearAI 的
config.json
文件中找到(CMD/CTRL+SHIFT+P
>Open config.json
)。 - 对于 Azure OpenAI,“engine”字段是您的部署名称。
⏩ 重要快捷键
操作 | Mac | Windows |
---|---|---|
新聊天(带选定代码) | CMD+L |
CTRL+L |
追加选定代码 | CMD+SHIFT+L |
CTRL+SHIFT+L |
打开/关闭聊天面板 | CMD+; |
CTRL+; |
切换模型 | CMD+' |
CTRL+' |
放大/缩小聊天窗口 | CMD+\ |
CTRL+\ |
上次打开的聊天 | CMD+0 |
CTRL+0 |
历史记录 | CMD+H |
CTRL+H |
将最后的终端文本带入聊天 | CMD+SHIFT+R |
CTRL+SHIFT+R |
这些快捷键可以再次按下以切换到之前的状态。
所有快捷键都可以在 PearAI 内部查看,方法是打开命令面板 CMD/CTRL+SHIFT+P
→ Keyboard shortcuts
。
✅ Tab 自动补全
PearAI 支持 Tab 键自动补全功能,可以在您编写代码时预测并建议接下来的输入内容。以下是设置方法:
设置指南
Supermaven 目前是市场上最快、最优的代码自动补全 AI 之一,并且提供慷慨的免费使用额度。只需将 Supermaven 安装为 PearAI 的扩展程序即可。
我们目前正在开发自己的代码自动补全模型,敬请期待!
替代方案
- 设置 Codestral我们推荐使用 Codestral,这是目前领先的代码补全(或 FIM — Fill In Middle)模型,且是开源的!您需要从 Mistral API 获取一个 Codestral API 密钥。
- 添加到 PearAI 的 config.json 文件将以下内容添加到您的 config.json 文件中(将 "YOUR_API_KEY" 替换为您的实际 API 密钥):
"tabAutocompleteModel": { "title": "Codestral", "provider": "mistral", "model": "codestral-latest", "apiKey": "YOUR_API_KEY"}
- 享受自动补全带来的开发提速!
🚀 使用成本与可用模型
使用成本是多少?(仅限 PearAI 服务器)
PearAI 的使用成本以积分为单位计算。积分消耗量取决于输入提示的大小、输出回复的大小、使用的模型以及 AI 工具(如 PearAI Chat、PearAI Search、PearAI Creator 等)。
作为早期用户福利,当前订阅者将享受早鸟价——这意味着您将永久保留这些优惠价格。每月仅需 $15 的订阅费用,即可比直接从大语言模型提供商购买等值 API 积分享受更多使用量,性价比更高。
请注意,较长的消息和较大的文件会消耗更多积分。同样,长时间的对话会更快地用尽额度,因为每条先前的消息都会作为上下文发送。建议经常开始新的对话。通过更加具体的提示,您不仅可以节省更多积分,还可以获得更精准的结果,因为 AI 处理的无关数据会减少。
如果您是订阅者且达到每月额度上限,您可以在仪表盘中轻松充值积分,且积分不会过期。
如何最大化使用 PearAI?
以下是一些提示,帮助您更高效地使用 PearAI:
- 开始新的对话:当您切换到新话题或有无关问题时,请开启新的对话。这有助于保持对话管理有序,并优化使用效率。
- 避免重复上传:在同一对话中上传过的文件无需再次上传,PearAI 会记住您先前上传的信息。
- 提供相关上下文:尽管 PearAI 可以访问您的整个代码库,但通过仅提供与请求直接相关的文件,您可以获得最佳结果。这有助于 PearAI 专注于最相关的信息,并提供更准确和有用的回复。
我们理解使用限制有时会让人感到困惑。我们始终致力于改进 PearAI,提供最佳的 AI 使用体验。如果您有任何疑问或问题,请随时通过 email 联系我们,或加入我们的 Discord。
可用模型
PearAI 服务器
- Claude 3.5 Sonnet latest
- Claude 3.5 Haiku(无限制,当用户达到月度额度上限时自动切换)
- GPT-4o latest
- OpenAI o1-mini
- OpenAI o1-preview
- Gemini 1.5 Pro
自带 API 密钥或本地
- Claude
- OpenAI
- Google Gemini
- Azure OpenAI
- Mistral
- Ollama
- Cohere
- Groq
- DeepSeek
- TogetherAI
- LM Studio
- llamafile
- Replicate
- llama.cpp
- WatsonX
- 其他 OpenAI 兼容 API
💻 代码库上下文
PearAI 会索引您的代码库,以便稍后可以自动从整个工作空间中提取最相关的上下文。这是通过嵌入检索和关键词搜索的结合完成的。默认情况下,所有嵌入使用 all-MiniLM-L6-v2
在本地计算,并存储在 ~/.pearai/index
。
目前,代码库检索功能可通过 "codebase" 和 "folder" 上下文提供程序使用。您可以在输入框中键入 @codebase
或 @folder
,然后提出问题。输入框的内容将与代码库(或文件夹)中其余部分的嵌入进行比较,以确定相关文件。
以下是一些常见的使用场景:
- 提问有关代码库的高级问题
- "如何为服务器添加一个新的端点?"
- "我们是否在任何地方使用了 VS Code 的 CodeLens 功能?"
- "是否已经有代码可以将 HTML 转换为 markdown?"
- 使用现有示例作为参考生成代码
- "生成一个带日期选择器的新的 React 组件,使用现有组件的相同模式"
- "为该项目使用 Python 的 argparse 编写一个 CLI 应用程序草稿"
- "在
bar
类中实现foo
方法,遵循其他baz
子类中的模式"
- 使用
@folder
对特定文件夹提问,提高相关结果的可能性- "这个文件夹的主要用途是什么?"
- "我们是如何使用 VS Code 的 CodeLens API 的?"
- 或者以上任何示例,但将
@codebase
替换为@folder
以下是一些不适合的场景:
- 需要让大语言模型查看代码库中的每一个文件
- "找出所有调用了
foo
函数的地方" - "检查我们的代码库并找出所有拼写错误"
- "找出所有调用了
- 重构
- "为
bar
函数添加一个新的参数并更新用法"
- "为
索引时忽略文件
PearAI 遵循 .gitignore
文件来确定哪些文件不应被索引。
如果您想查看 PearAI 已索引的文件,元数据存储在 ~/.pearai/index/index.sqlite
。您可以使用类似 DB Browser for SQLite 的工具查看此文件中的 tag_catalog
表。
如果需要强制刷新索引,可以使用 cmd/ctrl + shift + p
+ "Reload Window" 重新加载 VS Code 窗口,或者按聊天面板左下角的索引按钮。
📋 常见使用场景
轻松理解代码段
cmd+L
(MacOS) /ctrl+L
(Windows)
使用 Tab 键自动完成代码建议
tab
(MacOS) /tab
(Windows)
在编写代码时重构函数
cmd+I
(MacOS) /ctrl+I
(Windows)
提问有关代码库的问题
@codebase
(MacOS) /@codebase
(Windows)
快速将文档用作上下文
@docs
(MacOS) /@docs
(Windows)
使用斜杠命令启动操作
/edit
(MacOS) //edit
(Windows)
将类、文件等添加到上下文中
@files
(MacOS) /@files
(Windows)
立即理解终端错误
cmd+shift+R
(MacOS) /ctrl+shift+R
(Windows)
Mac 用户:下载 PearAI 的开发版本
要以开发模式运行 PearAI,您需要下载未签名的应用版本,因为签名版本无法在调试模式下运行。