Rawdog
An CLI assistant that responds by generating and auto-executing a Python script.
https://github.com/AbanteAI/rawdog/assets/50287275/1417a927-58c1-424f-90a8-e8e63875dcda
You'll be surprised how useful this can be:
- "How many folders in my home directory are git repos?" ... "Plot them by disk size."
- "Give me the pd.describe() for all the csv's in this directory"
- "What ports are currently active?" ... "What are the Google ones?" ... "Cancel those please."
Rawdog (Recursive Augmentation With Deterministic Output Generations) is a novel alternative to RAG (Retrieval Augmented Generation). Rawdog can self-select context by running scripts to print things, adding the output to the conversation, and then calling itself again.
This works for tasks like:
- "Setup the repo per the instructions in the README"
- "Look at all these csv's and tell me if they can be merged or not, and why."
- "Try that again."
Please proceed with caution. This obviously has the potential to cause harm if so instructed.
Quickstart
-
Install rawdog with pip:
pip install rawdog-ai -
Export your api key. See Model selection for how to use other providers
export OPENAI_API_KEY=your-api-key -
Choose a mode of interaction.
Direct: Execute a single prompt and close
rawdog Plot the size of all the files and directories in cwdConversation: Initiate back-and-forth until you close. Rawdog can see its scripts and output.
rawdog >>> What can I do for you? (Ctrl-C to exit) >>> > |
Optional Arguments
--leash: (default False) Print and manually approve each script before executing.--retries: (default 2) If rawdog's script throws an error, review the error and try again.
Model selection
Rawdog uses litellm for completions with 'gpt-4-turbo-preview' as the default. You can adjust the model or
point it to other providers by modifying ~/.rawdog/config.yaml. Some examples:
To use gpt-3.5 turbo a minimal config is:
llm_model: gpt-3.5-turbo
To run mixtral locally with ollama a minimal config is (assuming you have ollama installed and a sufficient gpu):
llm_custom_provider: ollama
llm_model: mixtral
To run claude-2.1 set your API key:
export ANTHROPIC_API_KEY=your-api-key
and then set your config:
llm_model: claude-2.1
If you have a model running at a local endpoint (or want to change the baseurl for some other reason)
you can set the llm_base_url. For instance if you have an openai compatible endpoint running at
http://localhost:8000 you can set your config to:
llm_base_url: http://localhost:8000
llm_model: openai/model # So litellm knows it's an openai compatible endpoint
Litellm supports a huge number of providers including Azure, VertexAi and Huggingface. See their docs for details on what environment variables, model names and llm_custom_providers you need to use for other providers.
Release files for rawdog-ai 0.1.6
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| rawdog_ai-0.1.6.tar.gz | 40.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| rawdog_ai-0.1.6-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 57.9 kB
Release files / rawdog_ai-0.1.6.tar.gz
| Download URL | rawdog_ai-0.1.6.tar.gz |
|---|---|
| Size | 40.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
1fc37d0e3336e87568ae9ee5dde5e7c68c1af652efd0956ee0c62281ddf14b41
|
|
BLAKE2b-256 checksum How to use checksums |
3cabeaae3e0f2fac4a717d632990795fd6a560efaf9e54a1741e842234dec1cb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.0.0 CPython/3.9.18
|
Release files / rawdog_ai-0.1.6-py3-none-any.whl
| Download URL | rawdog_ai-0.1.6-py3-none-any.whl |
|---|---|
| Size | 17.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
e8d3e11a57cae79b6a978eab30c123beddaa848b28e491d670005f1d742ee3a8
|
|
BLAKE2b-256 checksum How to use checksums |
d813845ea7f597628da4f3217bd772430cc9450ea48b872c06146ddee9d248df
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.0.0 CPython/3.9.18
|