ctrl+shift+p filters: :st2 :st3 :win :osx :linux
浏览

纳米机器人

作者: icebaker ST3

使用Sublime Text的纳米机器人来提高您的生产力并强化学术论文:小巧的、人工智能驱动的机器人,可以作为单个文件轻松共享,旨在支持多个供应商,如Cohere Command、Google Gemini、Maritaca AI MariTalk、Mistral AI、Ollama、OpenAI ChatGPT等,并支持调用工具(函数)。

标签 助手AIOpenAIChatGPT合作伙伴

详细信息

安装次数

  • 总数 291
  • Win 115
  • Mac 97
  • Linux 79
2023年8月6日 2023年8月5日 2023年8月4日 2023年8月3日 2023年8月2日 2023年8月1日 2023年7月31日 2023年7月30日 2023年7月29日 2023年7月28日 2023年7月27日 2023年7月26日 2023年7月25日 2023年7月24日 2023年7月23日 2023年7月22日 2023年7月21日 2023年7月20日 2023年7月19日 2023年7月18日 2023年7月17日 2023年7月16日 2023年7月15日 2023年7月14日 2023年7月13日 2023年7月12日 2023年7月11日 2023年7月10日 2023年7月9日 2023年7月8日 2023年7月7日 2023年7月6日 2023年7月5日 2023年7月4日 2023年7月3日 2023年7月2日 2023年7月1日 2023年6月30日 2023年6月29日 2023年6月28日 2023年6月27日 2023年6月26日 2023年6月25日 2023年6月24日 2023年6月23日 2023年6月22日
Windows 0 0 0 0 0 0 1 2 0 0 1 1 2 0 2 0 1 0 0 1 1 1 0 2 0 0 2 1 1 0 0 0 0 1 0 0 2 0 0 1 0 0 0 0 0 1
Mac 2 2 0 0 0 2 0 1 2 0 0 0 0 1 0 0 1 0 1 0 0 2 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1
Linux 1 0 0 0 0 0 0 0 0 0 0 0 0 0 3 2 0 0 1 0 0 1 0 0 1 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 2 0

README

源代码
raw.​githubusercontent.​com

Sublime Text纳米机器人

纳米机器人:可以轻松作为单个文件共享的人工智能驱动机器人,旨在支持多个供应商,例如Cohere CommandGoogle GeminiMaritaca AI MariTalkMistral AIOllamaOpenAI ChatGPT等,并支持调用工具(函数)。

通过将人工智能的威力带入您的代码编辑器,提高您的生产力和工作流程!

Nano Bots

安装

要安装Sublime Text纳米机器人,请按照以下步骤操作

  1. 在继续安装之前,请确保已安装Package Control
  2. 打开Sublime Text,然后使用快捷键ctrl + shift + p打开命令面板。
  3. 在命令面板中选择“Package Control: 安装包”。
  4. 搜索“Nano Bots”,按回车键安装包。

或者,您可以使用以下命令手动克隆仓库

git clone \
  https://github.com/icebaker/sublime-nano-bots.git \
  "/home/me/.config/sublime-text/Packages/Nano Bots"

设置

默认情况下,公共Nano Bots API的访问是可用的。但是,它只提供默认卡式,可能有时因为速率限制而变得缓慢或不可用。当全球许多用户同时大量使用API时,这种情况很常见。

为了获得最佳性能以及开发和定制自己卡式的机会,建议您使用自己的提供者凭证本地运行API实例。这种方法将提供更优越和个性化的体验,与公共API提供的便捷但功能有限的体验相比。

本地API实例

要将包连接到您自己的本地Nano Bots API,使用nano-bots-api启动本地实例。请注意,本地API仍然依赖于外部提供者,它们具有自己的关于安全和隐私的政策。但是,如果您选择使用Ollama和开源模型,您可以确保一切保持本地化并保持完全私密。

一旦您获得了Nano Bots API的访问权限,您就可以转到“首选项”->“设置”并添加以下配置

{
  "NANO_BOTS_API_ADDRESS": "http://localhost:3048",
  "NANO_BOTS_STREAM": true,
  "NANO_BOTS_END_USER": "anonymous" // your-name
}

命令

安装后,您将在命令面板中拥有以下命令可用

提示

提示命令的工作方式类似于传统聊天,允许您向Nano Bot提问并接收回答。

示例:“text Prompt: 用Ruby写一个hello world程序

Nano Bot: puts "Hello, world!”

https://user-images.githubusercontent.com/113217272/238783420-def9d7f7-c8a3-4d3f-be65-f9095fc7953d.mp4

### Apply

The Apply command works on a text selection. You select a piece of text and ask the Nano Bot to perform an action.

Example:

```text
Selected Text: How are you doing?
       Prompt: translate to french

     Nano Bot: Comment allez-vous ?

https://user-images.githubusercontent.com/113217272/238783456-424ae376-9f91-4bec-a3ef-dfd45719f72a.mp4

评估

评估命令发送您当前选定的文本到Nano Bot,不添加任何额外指令。

示例:“text Selected Text: 你好!”

Nano Bot: Hello! How can I assist you today?
https://user-images.githubusercontent.com/113217272/238783506-0d19953f-9429-4eb2-9d9b-710b63eff2aa.mp4

### Stop

To interrupt a streaming response or stop waiting for a complete response, you can use the "Stop" command in the command palette. This is useful if you realize that the bot's answer is not what you were expecting from your request.

## Cartridges

When executing any of the commands mentioned earlier, a prompt will appear asking you to select a Cartridge. The default Cartridge is the standard chat interaction. However, you can create your own Cartridges which will automatically appear in the command palette.

For further details on Cartridges, please refer to the [Nano Bots](https://github.com/icebaker/nano-bots) specification. You can find it [here](https://spec.nbots.io/#/README?id=cartridges).

https://user-images.githubusercontent.com/113217272/238783555-96b84ab5-47c5-4613-9484-d3f0b75a34d8.mp4

### Marketplace

You can explore the Nano Bots [Marketplace](https://nbots.io) to discover new cartridges that can help you.

### Default

You can override the default cartridge by creating your own with the name `default.yml`:

```yaml
---
meta:
  symbol: 🤖
  name: Default
  author: Your Name
  version: 1.0.0
  license: CC0-1.0
  description: A helpful assistant.

provider:
  id: openai
  credentials:
    address: ENV/OPENAI_API_ADDRESS
    access-token: ENV/OPENAI_API_KEY
  settings:
    user: ENV/NANO_BOTS_END_USER
    model: gpt-3.5-turbo

快捷键

没有默认快捷键,但您可以前往“首选项”并选择“键绑定”来添加自己的快捷键。我们推荐以下快捷键

建议的默认值

[
    {
        "keys": ["ctrl+b", "ctrl+p"], 
        "command": "nano_bots",
        "args": { "state": "-", "action": "prompt", "mode": "add" }
    },
    {
        "keys": ["ctrl+b", "ctrl+l"], 
        "command": "nano_bots",
        "args": {
            "state": "-", "action": "apply",
            "mode": "replace", "prefix": "",
            "format": "[prompt]: [input]" }
    },
    {
        "keys": ["ctrl+b", "ctrl+b"], 
        "command": "nano_bots",
        "args": { "state": "-", "action": "evaluate", "mode": "replace" }
    },
    {
        "keys": ["ctrl+b", "ctrl+k"], 
        "command": "nano_bots",
        "args": { "action": "stop" }
    }
]

自定义命令

action关键字指的是可用命令

mode表示当文本被选择时,答案将以何种方式传递。 add将在选定的文本后添加答案,而replace将用答案替换它。

add被定义时,您可能还想添加一个prefix

{
  "keys": ["ctrl+b", "ctrl+l"], 
  "command": "nano_bots",
  "args": {
      "state": "-", "action": "apply",
      "mode": "add", "prefix": "\n",
      "format": "[prompt]: [input]" }
},

使用apply命令时,您可以通过包含format关键字来自定义提示

Selected Text: How are you doing?
       Prompt: translate to french
{
  "format": "[prompt]: [input]"
}

将生成提示:text translate to french: 你好吗?

If you prefer to skip the prompt for selecting a Cartridge when using those commands, you can define the desired cartridge beforehand:

```json
{
    "keys": ["ctrl+b", "ctrl+b"], 
    "command": "nano_bots",
    "args": { "state": "-", "action": "evaluate", "mode": "replace", "cartridge": "-" }
}

-代表默认卡式。您可以用系统中的任何其他可用卡式替换它。

如果想要定义不需要用户输入或考虑的简单指令,可以使用

{
    "keys": ["ctrl+b", "ctrl+p"], 
    "command": "nano_bots",
    "args": { "state": "-", "action": "prompt", "mode": "add", "cartridge": "-", "input": "Hello!" }
}

如果您想定义一个应用于您的当前选择而不需要任何额外输入的命令,可以使用

{
    "keys": ["ctrl+b", "ctrl+b"], 
    "command": "nano_bots",
    "args": { "state": "-", "action": "evaluate", "mode": "replace", "cartridge": "-" }
}
{
    "keys": ["ctrl+b", "ctrl+l"], 
    "command": "nano_bots",
    "args": {
      "state": "-", "action": "apply", "mode": "replace",
      "cartridge": "-", "input": "translate to en-us" }
}

状态

默认情况下,与Nano Bots的所有交互都是无状态的。但是,如果您想要保留交互的历史记录,可以使用状态键

{
    "keys": ["ctrl+b", "ctrl+p"], 
    "command": "nano_bots",
    "args": {
      "state": "0470dfa445f1f11b5eb9b3089c5943c8",
      "action": "prompt", "mode": "add" }
}

每个卡式将维护自己的独立状态。有关状态管理的更多信息,请参阅规范

隐私和安全:常见问题解答

我的文件/代码/内容是否会与第三方服务共享或上传?

绝对不是,除非您故意采取行动,否则您在编辑器中工作或打开的文件绝不会被上传或共享。

可能会与第三方人工智能提供商共享哪些信息?

仅分享您有意行动的文字/代码片段。您在使用提示命令时输入的文字会共享至Nano Bots公共API,该API需要将信息严格用于生成响应并分享给OpenAI API。如果您使用评估应用,您选择的具体文字也将用于生成响应。

这些第三方是谁?

您故意选择分享的数据将通过安全的(HTTPS)方式传输至Nano Bots公共API。这个开源API可在此进行审计此处。它使用OpenAI API进行数据处理。因此,您选择分享的数据也将发送至OpenAI API,根据其政策,不会用于模型训练且不会保留超过30天。

是否有选择不共享任何信息的选项?

分享数据片段是生成输出的必要条件。您可以选择使用自己的本地实例Nano Bots API。这种设置确保所有交互都在您的机器上本地进行,唯一共享的数据是与您的个人OpenAI API。或者,您还可以选择不使用OpenAI,并将本地Nano Bots API连接到您自己的本地LLM,例如FastChat,完全实现本地和私密交互。

我能用这个处理机密或敏感内容/代码吗?

对于私人或机密内容/代码,我们建议您或您的组织进行彻底的安全和隐私评估。据此,您可以选择Nano Bots公共APIOpenAI的隐私政策足够,或者选择自己为API和LLM提供者使用私有设置

我需要为此付费吗?

否。如果您使用的是默认的Nano Bots公共API,无需付费,但您可能会遇到偶尔的速率限制或不稳定问题。如果您决定使用您自己的API和LLM提供者,相关费用将取决于您选择的提供者。例如,在本地使用Nano Bots API配合OpenAI将需要付费的OpenAI平台帐户

本项目是否与OpenAI有关联?

不,这是一个没有与OpenAI建立正式联系的开放源代码项目。它旨在与各种LLM提供者兼容,OpenAI是默认的。由于OpenAI是一家私营公司,我们无法对其服务做出保证,也没有任何联系。请自行承担风险。

保修和免责声明

本项目遵循MIT许可证。简单来说,意味着

软件提供原样。这意味着没有对其性能(是否按预期工作)、是否适用于您的目的或是否对任何事物(不侵权)的保证或保修。软件的创作者或拥有者对软件引起的任何问题不承担责任,无论是您使用、更改或以其他方式对其进行操作。

换句话说,我们关于使用它时会发生什么的承诺或责任是不存在的。因此,您自行承担风险并决定对其信任程度非常重要。您是对如何使用它以及其可能后果负责的人。

开发

卸载您当前的Nano Bots包。

Packages/Nano Bots内部复制仓库(符号链接不起作用)

git clone \
  https://github.com/gbaptista/sublime-nano-bots.git \
  "/home/me/.config/sublime-text/Packages/Nano Bots"

要开始为Sublime Text开发Nano Bots,请按照以下步骤进行

  1. 通过运行pip install -r requirements-dev.txt安装必要的包。

  2. 通过运行pycodestyle *.py检查您的代码格式。

  3. 通过运行pylint *.py使用pylint分析您的代码。