Skip to main content

Discord Follow

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

  1. Install rawdog with pip:

    pip install rawdog-ai
    
  2. Export your api key. See Model selection for how to use other providers

    export OPENAI_API_KEY=your-api-key
    
  3. Choose a mode of interaction.

    Direct: Execute a single prompt and close

    rawdog Plot the size of all the files and directories in cwd
    

    Conversation: 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)

Source distribution for rawdog-ai 0.1.6
File Size Uploaded
rawdog_ai-0.1.6.tar.gz 40.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for rawdog-ai 0.1.6
File Interpreter ABI Platform
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

Release history Release notifications | RSS feed

This release

0.1.6 This release

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

1 release file

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page