No project description provided
Project description
Bedrock Bot
This project is a basic CLI-based chat bot that uses Bedrock to resolve questions. It can take input from stdin, CLI arguments or interactively when no parameters have been passed.
Installation
pip install bedrock-bot
- You will also need some AWS credentials available in your shell (any usual way works - CLI configured IAM user access key/secret keys, environment variables, etc)
- Bedrock requires you to opt in to models in order to use them
Usage
Usage: bedrock [OPTIONS] [ARGS]...
Options:
-r, --region TEXT The AWS region to use for requests. If no
default region is specified, defaults to us-
east-1
--raw-output TEXT Don't interpret markdown in the AI response
-m, --model [Claude-3-Haiku|Claude-3-Sonnet|Mistral-Large]
The model to use for requests
-v, --verbose Enable verbose logging messages
-i, --input-file FILENAME Read in file(s) to be used in your queries
--help Show this message and exit.
Directly as a chat bot:
$ bedrock
Hello! I am an AI assistant powered by Amazon Bedrock and using the model Claude-3-Haiku. Enter 'quit' or 'exit' at any time to exit. How may I help you today?
(You can clear existing context by starting a query with 'new>' or 'reset>')
> Hi, what is your name?
My name is Claude.
Using CLI arguments:
$ bedrock "Hi, what is your name?"
Hello! I am an AI assistant powered by Amazon Bedrock and using the model Claude-3-Haiku. Enter 'quit' or 'exit' at any time to exit. How may I help you today?
(You can clear existing context by starting a query with 'new>' or 'reset>')
> Hi, what is your name?
My name is Claude. It's nice to meet you!
Using stdin (Note that you can only use this for one-shot questions as input is reserved by your pipe to stdin and is not an interactive TTY any more):
$ echo "Hi, what is your name?" > input-file
$ cat input-file | bedrock
Hello! I am an AI assistant powered by Amazon Bedrock and using the model Claude-3-Haiku. Enter 'quit' or 'exit' at any time to exit. How may I help you today?
(You can clear existing context by starting a query with 'new>' or 'reset>')
> Hi, what is your name?
My name is Claude. I'm an AI created by Anthropic. It's nice to meet you!
Note that you can only do one-shot requests when providing input via stdin
Asking about a file:
$ bedrock --input-file bedrock_bot/models/base_model.py write unit tests using pytest for this file
Hello! I am an AI assistant powered by Amazon Bedrock and using the model Claude-3-Haiku. Enter 'quit' or 'exit' at any time to exit. How may I help you today?
(You can clear existing context by starting a query with 'new>' or 'reset>')
> write unit tests using pytest for this file
To write unit tests for the bedrock_bot/models/base_model.py file using pytest, you can create a test_base_model.py file in the tests directory. Here's an example of how you can structure the tests:
import json
from unittest.mock import patch, MagicMock
import pytest
from bedrock_bot.models.base_model import _BedrockModel, ConversationRole
class TestBedrockModel:
def setup_method(self):
self.model = _BedrockModel("test-model-id")
def test_reset(self):
self.model.append_message(ConversationRole.USER, "Hello")
assert len(self.model.messages) == 1
self.model.reset()
assert len(self.model.messages) == 0
...
Shell auto-complete
Shell auto-complete is also supported.
ZSH
_BEDROCK_COMPLETE=zsh_source bedrock > ~/.bedrock-completion.zsh
- Add the following to your
~/.zshrc
:source ~/.bedrock-completion.zsh
Bash
_BEDROCK_COMPLETE=bash_source bedrock > ~/.bedrock-completion.bash
- Add the following to your
~/.bashrc
:source ~/.bedrock-completion.bash
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
bedrock_bot-1.2.15.tar.gz
(7.9 kB
view details)
Built Distribution
File details
Details for the file bedrock_bot-1.2.15.tar.gz
.
File metadata
- Download URL: bedrock_bot-1.2.15.tar.gz
- Upload date:
- Size: 7.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.3 CPython/3.10.15 Linux/6.8.0-1014-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 20d44f461fe3d6023a0c8b4ecfb8300aa421d1a7b5602d748c74a73022b6bc27 |
|
MD5 | edfeb672c4ebfa41a17c7a3e8f4b07fc |
|
BLAKE2b-256 | 6851a5003b96fa8b275cc3a3fe6332ea2e839f56258f68716dd5f45011595aeb |
File details
Details for the file bedrock_bot-1.2.15-py3-none-any.whl
.
File metadata
- Download URL: bedrock_bot-1.2.15-py3-none-any.whl
- Upload date:
- Size: 9.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.3 CPython/3.10.15 Linux/6.8.0-1014-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d7df530d9a593c30cbe55dcd1e820e6ca887ff4592e0c9dbf11fb4c07e0372d3 |
|
MD5 | cdc10a9bff732664ba2800b2f617a9c2 |
|
BLAKE2b-256 | 97a6be15f73122dae26610df09eace808a4f961dc659f1626be5f6885d3ddada |