{"id":13593491,"url":"https://github.com/AbanteAI/rawdog","last_synced_at":"2025-04-09T05:31:18.798Z","repository":{"id":219880932,"uuid":"750161796","full_name":"AbanteAI/rawdog","owner":"AbanteAI","description":"Generate and auto-execute Python scripts in the cli","archived":false,"fork":false,"pushed_at":"2024-05-06T11:01:10.000Z","size":252,"stargazers_count":1797,"open_issues_count":15,"forks_count":144,"subscribers_count":16,"default_branch":"main","last_synced_at":"2025-04-06T16:07:44.027Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AbanteAI.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-01-30T05:15:47.000Z","updated_at":"2025-04-01T18:38:45.000Z","dependencies_parsed_at":null,"dependency_job_id":"877eaa20-b7e3-432b-b2ca-81c9466da335","html_url":"https://github.com/AbanteAI/rawdog","commit_stats":null,"previous_names":["abanteai/rawdog"],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AbanteAI%2Frawdog","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AbanteAI%2Frawdog/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AbanteAI%2Frawdog/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AbanteAI%2Frawdog/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AbanteAI","download_url":"https://codeload.github.com/AbanteAI/rawdog/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247986634,"owners_count":21028884,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-01T16:01:20.822Z","updated_at":"2025-04-09T05:31:18.513Z","avatar_url":"https://github.com/AbanteAI.png","language":"Python","funding_links":[],"categories":["Python","A01_文本生成_文本对话"],"sub_categories":["大语言对话模型及数据"],"readme":"[![Discord Follow](https://dcbadge.vercel.app/api/server/XbPdxAMJte?style=flat)](https://discord.gg/zbvd9qx9Pb)\n\n# Rawdog\n\nAn CLI assistant that responds by generating and auto-executing a Python script. \n\nhttps://github.com/AbanteAI/rawdog/assets/50287275/1417a927-58c1-424f-90a8-e8e63875dcda\n\nYou'll be surprised how useful this can be:\n- \"How many folders in my home directory are git repos?\" ... \"Plot them by disk size.\"\n- \"Give me the pd.describe() for all the csv's in this directory\"\n- \"What ports are currently active?\" ... \"What are the Google ones?\" ... \"Cancel those please.\"\n\nRawdog (Recursive Augmentation With Deterministic Output Generations) is a novel alternative to RAG\n(Retrieval Augmented Generation). Rawdog can self-select context by running scripts to print things,\nadding the output to the conversation, and then calling itself again. \n\nThis works for tasks like:\n- \"Setup the repo per the instructions in the README\"\n- \"Look at all these csv's and tell me if they can be merged or not, and why.\"\n- \"Try that again.\"\n\nPlease proceed with caution. This obviously has the potential to cause harm if so instructed.\n\n### Quickstart\n1. Install rawdog with pip:\n    ```\n    pip install rawdog-ai\n    ```\n\n2. Export your api key. See [Model selection](#model-selection) for how to use other providers\n\n    ```\n    export OPENAI_API_KEY=your-api-key\n    ```\n\n3. Choose a mode of interaction.\n\n    Direct: Execute a single prompt and close\n    ```\n    rawdog Plot the size of all the files and directories in cwd\n    ```\n    \n    Conversation: Initiate back-and-forth until you close. Rawdog can see its scripts and output.\n    ```\n    rawdog\n    \u003e\u003e\u003e What can I do for you? (Ctrl-C to exit)\n    \u003e\u003e\u003e \u003e |\n    ```\n\n## Optional Arguments\n* `--leash`: (default False) Print and manually approve each script before executing.\n* `--retries`: (default 2) If rawdog's script throws an error, review the error and try again.\n\n## Model selection\nRawdog uses `litellm` for completions with 'gpt-4-turbo-preview' as the default. You can adjust the model or\npoint it to other providers by modifying `~/.rawdog/config.yaml`. Some examples:\n\nTo use gpt-3.5 turbo a minimal config is:\n```yaml\nllm_model: gpt-3.5-turbo\n```\n\nTo run mixtral locally with ollama a minimal config is (assuming you have [ollama](https://ollama.ai/)\ninstalled and a sufficient gpu):\n```yaml\nllm_custom_provider: ollama\nllm_model: mixtral\n```\n\nTo run claude-2.1 set your API key:\n```bash\nexport ANTHROPIC_API_KEY=your-api-key\n```\nand then set your config:\n```yaml\nllm_model: claude-2.1\n```\n\nIf you have a model running at a local endpoint (or want to change the baseurl for some other reason)\nyou can set the `llm_base_url`. For instance if you have an openai compatible endpoint running at\nhttp://localhost:8000 you can set your config to:\n```\nllm_base_url: http://localhost:8000\nllm_model: openai/model # So litellm knows it's an openai compatible endpoint\n```\n\nLitellm supports a huge number of providers including Azure, VertexAi and Huggingface. See\n[their docs](https://docs.litellm.ai/docs/) for details on what environment variables, model names\nand llm_custom_providers you need to use for other providers.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FAbanteAI%2Frawdog","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FAbanteAI%2Frawdog","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FAbanteAI%2Frawdog/lists"}