An AI command-line assistant
Project description
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 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.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file rawdog_ai-0.1.6.tar.gz
.
File metadata
- Download URL: rawdog_ai-0.1.6.tar.gz
- Upload date:
- Size: 40.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.9.18
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1fc37d0e3336e87568ae9ee5dde5e7c68c1af652efd0956ee0c62281ddf14b41 |
|
MD5 | 5c01e585dfcefc3a075102197053226b |
|
BLAKE2b-256 | 3cabeaae3e0f2fac4a717d632990795fd6a560efaf9e54a1741e842234dec1cb |
File details
Details for the file rawdog_ai-0.1.6-py3-none-any.whl
.
File metadata
- Download URL: rawdog_ai-0.1.6-py3-none-any.whl
- Upload date:
- Size: 17.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.9.18
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e8d3e11a57cae79b6a978eab30c123beddaa848b28e491d670005f1d742ee3a8 |
|
MD5 | 95df8c9ea6ecb55a561cfef50949a6e5 |
|
BLAKE2b-256 | d813845ea7f597628da4f3217bd772430cc9450ea48b872c06146ddee9d248df |