Gorilla-CLI: LLMs for CLI including K8s/AWS/GCP/Azure/sed and 1500 APIs
github.com
github.com
One recent example: "what does -w do on curl" .. not a single top 10 result on Google mentions it in the context, but GPT3.5 nails it in two seconds complete with a working example. I know "-w" is interpreted by Google in a special way, but frankly given the obvious context I shouldn't need to know how Google works. (Through experience I also know https://explainshell.com/explain?cmd=curl+-w will do a good job, but ChatGPT actually provides a working example which is even better.)
That said, I do think you need a good critical eye to use LLMs in this context. It's like relying on a calculator. You still need mental math skills to know that 91 * 10 can't equal 2511. Similarly, when GPT starts hallucinating, it helps if you have a high sensitivity to smelling it out.
Well, at least my calculators don't have this error rate GPT4 still does. Especially for seemingly simple things like a command flag, I have zero trust if GPT doesn't give me something that will eventually erase all my data.
So last 2-3 months I subscribed to ChatGPT4 (and much longer to Copilot), worked through most of the HN threads on tips and reviews, posts I could find on "prompt engineering" and have hundreds of sessions with ChatGPT4. So, I still might have missed something, but I think I have a rather good idea of what's going on.
1. It's rather good with understanding what I want. I can dump pretty much anything into it and give it certain rules (things we described years ago as "Google fu" until Google SERP became useless) and it will make something out of it.
2. It's a nice rubberduck to discuss things and get a broad overview on certain topics.
3. It's amazingly stupid, even if I ask it for its confidence, on the validity of its answers. It's like talking to a 8-year-old know-it-all: You have to fact check everything. If I confront it with the error, it even reacts like a 8-year old.
4. Initial responses for intentionally broad topics (summed up with "give me ansible yaml to deploy wireguard to N servers") are often times not working at all and after an hour of query-response you're better off reading ansible docs.
5. Initial responses for intentionally special topics (summed up with "what's the fastest algorithm to sort this given x, y, z and bla will never be A") it frequently comes up with good, sometimes surprisingly creative solutions.
All in all: Why oh why would I trade in correctness with a significant error rate ("hallucination" is a word from SV marketing hell) and debugging bullshit answers. Since debugging things is already a big drag in programming, I need things I can trust to build more things on top of them. If I can't trust 100% the "command" an LLM is generating, I'll never directly let it execute its code.
It's not uncommon to have folks with reasonable math skills ending up behind a cash register and insisting they're right when such errors occur and I see a high likelihood of this happening with relying on "AI" too. Domain knowledge and good intuition will continue to be valuable.
This used to be SO, but ChatGPT works way faster.
I use the first tagged version of `aicmd` before it was given an unneeded intermediary: https://github.com/atinylittleshell/aicmd/tree/v1.0.2
(as it happens, this one hits the cloud)
If you’re not comfortable using it in your workflow, consider it a peek at what’s to come. Very exciting times. And it's open source.
SERVER_URL = "http://34.135.112.197:8000" (base) ~ g get the image ids of all pods running in all namespaces in kubernetes
kubectl get pods --all-namespaces -o jsonpath="{..imageID}"
sha256:b19406328e70dd2f6a36d6dbe4e867b0684ced2fdeb2f02ecb54ead39ec0bac0
sha256:b19406328e70dd2f6a36d6dbe4e867b0684ced2fdeb2f02ecb54ead39ec0bac0Not to make this a debug thread but this is what I get when I try out gorilla
> gorilla I want to find my ip address
/home/username/.local/lib/python3.10/site-packages/requests/__init__.py:102: RequestsDependencyWarning: urllib3 (1.26.7) or chardet (5.1.0)/charset_normalizer (2.0.7) doesn't match a supported version! warnings.warn("urllib3 ({}) or chardet ({})/charset_normalizer ({}) doesn't match a supported " Traceback (most recent call last): File "/home/username/.local/bin/gorilla", line 8, in <module> sys.exit(main()) File "/home/username/.local/lib/python3.10/site-packages/go_cli.py", line 128, in main user_id = get_user_id() File "/home/username/.local/lib/python3.10/site-packages/go_cli.py", line 76, in get_user_id assert user_id != "" AssertionError
You can then upgrade them by doing "pip install [package name here] --upgrade".
Edit: Typo
My brother lives in Japan, and he recently had to write a lot of emails to the company renovating his apartment. He said that ChatGPT was a lifesaver there since at least 75% of semi-formal (i.e. between customer and company) Japanese emails is formality and filler. He just skipped all of that and ChatGPT wrote it for him.
Do folks recommend Questionary as a good Python command line UI tool? I really like Rich but it goes not have this type of selection UI.
Also I am finding in my environment that longer results don't line wrap and so it's hard to tell what the actual full command is, but that might be just me.
Don’t pass anything sensitive into this program!
One of the reasons we open-sourced the front-end, is that if you would like to keep everything private, you can just clone the repo, comment out the logging, install it, and we will still honor and serve your queries if you hit our hosted end-point :) Let us know if there is anything more that we can do to make you comfortable in using our tool!
What could go wrong?
"gorilla dry run of brew upgrade"
And got a response that didn't work.