#语言模型 #Bedrock #聊天机器人 #生成式AI #AWS #命令行工具

bin+lib bedrust

使用 Amazon Bedrock 在 AWS 上调用和使用大型语言模型的命令行工具

6 个版本

0.7.5 2024 年 7 月 31 日
0.7.4 2024 年 5 月 7 日
0.7.3 2024 年 4 月 20 日
0.7.0 2024 年 3 月 31 日

#531命令行工具

Download history 3/week @ 2024-04-28 172/week @ 2024-05-05 3/week @ 2024-05-12 7/week @ 2024-05-19 2/week @ 2024-06-09 217/week @ 2024-07-28 16/week @ 2024-08-04 1/week @ 2024-08-11

每月下载量 234 次

MIT/Apache

82KB
2K SLoC

Bedrust 🦀🧠⛅🪨

screenshot of bedrust

一种在 Amazon Bedrock 上调用模型的好方法。用 Rust 编写,并在 Twitch 上实时运行。

当前支持的以下模型

  • Claude 3.5 Sonnet
  • Claude V2
  • Claude V3 Sonnet
  • Claude V3 Haiku
  • Llama2 70B
  • Cohere Command
  • Jurrasic 2 Ultra
  • Titan Text Express V1
  • Mistral AI 模型 (Mixtral, Mistral7b 和 Mistral Large)

入门指南

要开始使用此工具,您需要完成以下几步

获取本地配置的 AWS 凭证 ☁️

要能够与 Amazon Bedrock 交互,您需要在 Bedrust 将运行的机器上设置一组 AWS 凭证。最简单的方法是通过配置 AWS CLI。请确保安装 AWS CLI 并运行 aws configure 命令 以设置您的凭据。

要验证您的 AWS 凭证是否设置正确,可以运行 aws sts get-caller-identity

darko@devbox [~/workspace/projects/bedrust]: aws sts get-caller-identity
{
    "UserId": "AIDAXXXXXXXXXXXXXXXXXX5",
    "Account": "123456789999999",
    "Arn": "arn:aws:iam::123456789999999:user/alan-ford"
}

哦,对了,请确保您配置凭证的用户的权限可以调用 Amazon Bedrock 上的 InvokeModel

确保您已安装 Rust 和依赖项 🦀

这是当然的,这是一个 Rust 应用程序。最简单的方法是使用 rustup

现在,您需要一些额外的包才能编译 bedrust。具体来说,您需要 build-essential(或类似的)包组。根据您的操作系统和包管理器,名称可能会有所不同。

Ubuntu/Debian

sudo apt install build-essential

Arch Linux

sudo pacman -S base-devel

MacOS

xcode-select --install

Amazon Linux/Red Hat/CentOS

yum groupinstall "Development Tools"

本地安装

要本地安装应用程序,只需运行

cargo install bedrust

这将把编译好的二进制文件安装到您的 $CARGO_HOME/bin 目录中。如果您已正确设置 $PATH,现在应该可以运行它。但在您做之前...

让我们初始化配置。因为 bedrust 使用两个配置文件(bedrust_config.ronmodel_config.ron),它们(以及一些其他资源)需要存储在您的 $HOME/.config/bedrust 目录中。现在,您可以手动完成此操作,但我们有一个为您完成此操作的功能。只需运行

bedrust --init

您将被要求选择一个默认模型。这将为您创建所有必要的文件,以便您能够使用 bedrust。除非您想要修改这些文件,否则不需要修改。

运行应用程序 🚀

最后,要运行应用程序,只需使用以下命令

bedrust -m <MODELNAME> # replacing the model name with one of the supported ones

或者,如果您希望使用默认模型(在 --init / 在您的配置文件中定义的模型),只需运行不带任何参数的 bedrust。如果您没有通过传递 -m 参数来选择模型,并且您在配置文件中没有设置默认模型,则在运行过程中将被提示选择一个。

用法

Usage: bedrust [OPTIONS]

Options:
      --init                 
  -m, --model-id <MODEL_ID>  [possible values: llama270b, cohere-command, claude-v2, claude-v21, claude-v3-sonnet, claude-v3-haiku, claude-v35-sonnet, jurrasic2-ultra, titan-text-express-v1, mixtral8x7b-instruct, mistral7b-instruct, mistral-large]
  -c, --caption <CAPTION>    
  -s, --source <SOURCE>      
  -x                         
  -h, --help                 Print help
  -V, --version              Print version

一旦提示输入您的问题,并按 ENTER。🚀 要退出程序,只需在问题提示符中键入 /q

图像字幕

screenshot of bedrust running the captioner

🚀 新功能:感谢 Claude V3 的多模态性,您现在可以将图像传递给这个大型语言模型。这意味着我们可以做一些有趣的事情,比如为可访问性添加图像字幕。此功能从 Bedrust 的 0.5.0 版本开始提供。

⚠️ 目前支持此功能的只有两个模型:Claude V3 Sonnet 和 Claude V3 Haiku

要使用字幕,只需传递 -c 参数,以及包含您图像的目录

bedrust -m claude-v3-sonnet -c /tmp/test-images/

这将检索支持的图像,并为它们生成字幕。最终在当前工作目录中生成一个 captions.json 文件,其中包含与图像路径相关的字幕。

以下是输出示例

[
  {
    "path": "/tmp/test-images/4slika.jpeg",
    "caption": "A computer CPU fan cooling a circuit board with Ethernet and other ports."
  },
  {
    "path": "/tmp/test-images/kompjuter.jpeg",
    "caption": "An open circuit board with various electronic components and wires, placed in an office or workshop setting with shelves and equipment visible in the background."
  },
  {
    "path": "/tmp/test-images/c64.jpeg",
    "caption": "Vintage Commodore computer monitor displaying the Twitch logo on the screen."
  }
]

您还可以通过编辑此项目的根目录中的 bedrust_config.ron 文件来自定义字幕 提示支持的图像文件格式

⚠️ 测试功能 - 源代码分析

您现在可以将 Bedrust 指向包含一些源代码的目录。这将允许您在上下文中讨论您的代码库,并且它可以为您提供代码建议、改进和进一步开发。

注意:由于这是一个测试功能,它有其局限性。例如,它无法处理非常大的代码库。并且因为它将您的整个代码库发送到上下文中,这可能会花费您更多。

bedrust --source ~/workspace/repos/your_code_repo

配置文件

bedrust 附带了两个重要的配置文件

  • bedrust_config.ron - 存储与应用程序本身相关的配置参数。
  • model_config.ron - 存储与 LLM 相关的配置参数。例如,最大令牌、温度、top_p、top_k 等。

它们需要位于您的 $HOME/.config/bedrust/ 目录中。如果它们不存在,应用程序将警告您,并且无法运行。您可以通过运行 bedrust --init 自动创建它们。

待办事项

  • 获取用户输入的能力
  • 能够选择模型
  • 与模型进行对话
  • 逐字返回响应
  • 更好的错误处理
  • 代码测试
  • 生成图像的能力
  • 让它更漂亮
  • 更好地处理长粘贴
  • Bedder凭据处理

依赖项

~29–42MB
~665K SLoC