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.
Metadata
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 | Provenance | Actions |
|---|---|---|---|---|
| rawdog_ai-0.1.6.tar.gz | 40.6 kB | Without provenance | Details for rawdog_ai-0.1.6.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| rawdog_ai-0.1.6-py3-none-any.whl | Python 3 | none | any | Details for rawdog_ai-0.1.6-py3-none-any.whl |
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
|
Security for rawdog-ai 0.1.6
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.