gekro
GitHub LinkedIn
Workflow

టెర్మినల్ వెలాసిటీ: AI అబ్‌స్ట్రాక్షన్ లేయర్‌గా CLI

7 నిమిషాల పఠనం

ఇది ఆంగ్ల మూల వ్యాసానికి యంత్ర అనువాదం. కొన్ని సూక్ష్మ భేదాలు కోల్పోవచ్చు, కాబట్టి ఆంగ్ల వెర్షన్‌నే ప్రమాణంగా తీసుకోండి. మూల వ్యాసాన్ని ఆంగ్లంలో చదవండి

సంక్షిప్తంగా

AI ఇంజినీరింగ్‌లో GUI లు ఎందుకు అడ్డంకి, WSL2 మరియు Zsh తో అధిక వేగం గల కమాండ్-లైన్ వర్క్‌ఫ్లోను ఎలా నిర్మించాలి.
GUI అన్వేషణ కోసం రూపొందిన ఒక అబద్ధం, వేగం కోసం కాదు. AI డెవలప్‌మెంట్‌లో ఆలోచన వేగాన్ని అందుకునే ఏకైక ఇంటర్‌ఫేస్ టెర్మినల్. మౌస్ ముట్టుకోకుండానే సిస్టమ్ అవుట్‌పుట్‌లను నేరుగా LLM లలోకి పైప్ చేయడానికి నేను వాడే నిర్దిష్ట Zsh ఫంక్షన్లను, WSL2 కాన్ఫిగరేషన్లను ఈ వ్యాసం వివరిస్తుంది.

ఆధునిక AI ల్యాబ్‌లో మీ ఉత్పాదకత కాంటెక్స్ట్-స్విచింగ్ భారంతో పరిమితమవుతుంది. ఎర్రర్ లాగ్‌లు లేదా కమిట్ సందేశాలను పేస్ట్ చేయడానికి మీరు నిరంతరం alt-tab చేసి బ్రౌజర్‌కు వెళ్తుంటే, మీ ఏకాగ్రత కారిపోతోంది. నేను అన్నిటినీ బాగా కస్టమైజ్ చేసిన WSL2 ఇన్‌స్టెన్స్ నుంచే నడుపుతాను, ఎందుకంటే “ఇంటెలిజెన్స్ లేయర్”కు టెర్మినలే సహజ ఇంటర్‌ఫేస్. OS ను నేరుగా LLM లోకి పైప్ చేయడం ద్వారా నా “తెలివితక్కువ పని”ని (ఫార్మాటింగ్, కమిట్ సందేశాలు రాయడం, లాగ్‌లు వెతకడం) దాదాపు సున్నాకు తగ్గించాను.

ఈ మార్పు సిద్ధాంతపరమైనది కాదు. నా IDE PowerShell, Bash కమాండ్‌లపై మళ్లీ మళ్లీ విఫలమవుతూ ఉంది, టెర్మినల్ కేవలం పని చేసి చూపింది. మొత్తం “మతం మార్పు” అంతే.

ఆర్కిటెక్చర్

నా వర్క్‌ఫ్లో షెల్‌ను ఒక కంపోజబుల్ డేటా పైప్‌లైన్గా చూస్తుంది. ఏ కమాండ్ అవుట్‌పుట్ అయినా, అది విఫలమైన బిల్డ్ కావచ్చు, git diff కావచ్చు, curl ప్రతిస్పందన కావచ్చు, కేవలం టెక్స్ట్. టెక్స్ట్ LLM ల ప్రధాన భాష.

భాగంటూల్ / కాన్ఫిగ్కారణం
షెల్Zsh + Oh My Zshప్లగిన్ ఎకోసిస్టమ్, మెరుగైన ట్యాబ్-కంప్లీషన్.
టెర్మినల్Windows TerminalWindows కు ఉత్తమ మల్టీ-ట్యాబ్, GPU రెండరింగ్.
మల్టీప్లెక్సర్TmuxWSL2 రీస్టార్ట్‌లను తట్టుకునే సెషన్లు.
ఫాంట్MesloLGS NFPowerlevel10k, ఐకాన్ల కోసం అవసరం.
AI CLIfabric / ollamaటెక్స్ట్‌ను “మెదళ్లకు” పైప్ చేసే తేలికపాటి ర్యాపర్లు.

నిర్మాణం

అసలు శక్తి మీ .zshrc లో ఉంటుంది. సాధారణ పనులకు నేను సంక్లిష్ట ఏజెంట్లు వాడను; నా GekroLLMClient తో మాట్లాడే షెల్ ఫంక్షన్లు వాడతాను.

1. AI-ఆధారిత Git కమిట్‌లు

కమిట్ సందేశంగా “fix” రాయడం ఆపండి. ఈ ఫంక్షన్ మీ మార్పులను స్టేజ్ చేసి, diff ను లోకల్ Llama 3 ఇన్‌స్టెన్స్‌కు పంపి, సంప్రదాయ కమిట్ సందేశాన్ని తయారు చేస్తుంది.

# Generate AI commit message from staged changes
aic() {
  local diff=$(git diff --cached)
  if [ -z "$diff" ]; then
    echo "No staged changes found."
    return 1
  fi
  
  echo "Generating commit message..."
  local msg=$(echo "$diff" | ollama run llama3 "Generate a concise, one-line conventional commit message for this diff. No preamble.")
  
  git commit -m "$msg"
}

2. Explain పైప్

ఏ కమాండ్ విఫలమైనా దాన్ని పైప్ చేస్తాను. అర్థం కాని C++ ఎర్రర్ కోడ్‌లను ఇక గూగుల్ చేయాల్సిన అవసరం లేదు.

# Pipe any output to LLM for instant explanation
alias explain="ollama run llama3 'Explain this error output and suggest a fix concisely:'"

# Usage:
# npm run build | explain

3. WSL2 కాన్ఫిగరేషన్ గమనిక

Windows లో దీన్ని నేటివ్ Linux అనుభవంలా అనిపించేలా చేయడానికి పాత్, ఫాంట్ చిక్కులను సరిచేయాలి.

Windows Terminal settings.json భాగం:

{
    "guid": "{57605e5d-1f0f-5602-9ae4-0466a014995f}",
    "name": "Ubuntu-22.04",
    "source": "Windows.Terminal.Wsl",
    "font": {
        "face": "MesloLGS NF",
        "size": 12
    },
    "startingDirectory": "//wsl$/Ubuntu-22.04/home/rohit"
}

చిట్కా: NTFS/9P పనితీరు జరిమానా నుంచి తప్పించుకోవడానికి Windows అప్లికేషన్లలో ఎల్లప్పుడూ //wsl$/ పాత్ ఫార్మాట్ వాడండి.

రాజీలు

దీన్ని సెటప్ చేయడానికి నేను బడ్జెట్ వేయని గంటలు పట్టాయి. WSL2, Zsh కాన్ఫిగరేషన్ ద్వారా నాకు మార్గదర్శనం చేయమని ఒక మోడల్‌ను అడుగుతుంటే, అది నన్ను చక్కర్లు కొట్టించింది (ఇది Gemini రెండవ తరం): పూర్తి నమ్మకంతో ఒక కమాండ్ ఇచ్చేది, నేను పేస్ట్ చేయడాన్ని చూసేది, అది విఫలమవడాన్ని చూసేది, మరొకటి ఇచ్చేది. చివరికి అసలు డాక్యుమెంటేషన్ చదివే అక్కడికి చేరాను, 2015 లో లాగా. మీరు ఈ సెటప్ చేస్తుంటే, ఒక మధ్యాహ్నం మొత్తం కేటాయించండి, షార్ట్‌కట్‌ను వదిలేయండి.

ఇంజినీర్లు చేసే అతిపెద్ద తప్పు అలియాస్ ఓవర్‌లోడ్ అని నేను చూస్తాను. నా దగ్గర ఒకప్పుడు 200+ అలియాస్‌లు ఉండేవి; కమాండ్ టైప్ చేయడానికి పట్టే సమయం కన్నా షార్ట్‌కట్ గుర్తు తెచ్చుకోవడానికే ఎక్కువ సమయం వెచ్చించేవాణ్ని. అప్పటి నుంచి వాటిని “హై-ఫ్రీక్వెన్సీ ఫైవ్”కి కత్తిరించాను: aic (AI కమిట్), gup (Docker Compose Up), ld (లాగ్ డంప్), pf (Python ఫార్మాట్), explain.

కార్యాచరణ వాస్తవం: సున్నితమైన లాగ్‌లను క్లౌడ్ LLM కు పైప్ చేయడం ఎప్పుడో ఒకప్పుడు భద్రతా ఉల్లంఘనకు దారితీసే ప్రమాదం. క్లియర్-టెక్స్ట్ క్రెడెన్షియల్స్ ఉన్న ప్రొడక్షన్ .env ఫైల్‌ను పొరపాటున క్లౌడ్ ప్రొవైడర్‌కు పంపినప్పుడు ఇది నేర్చుకున్నాను; అది “explain” అలియాస్‌కు పైప్ చేసిన grep లో చిక్కుకుంది. షెల్ పైపింగ్‌కు ఎల్లప్పుడూ లోకల్ Ollama ఇన్‌స్టెన్స్ వాడండి, అప్పుడు మీ ఎన్విరాన్‌మెంట్ వేరియబుల్స్ మీ మెషీన్‌లోనే ఉంటాయి.

ఇంకొక్కటి, ఇది శీర్షికలోని గాలిని కొంత తీసేస్తుంది. నేను ఇప్పుడు రెండూ వాడుతున్నాను. టెర్మినల్ తనకు బాగా వచ్చే పనులను గెలుచుకుంది, GUI తన పనులను నిలుపుకుంది, దారిలో ఎక్కడో నేను స్కోరు లెక్కించడం మానేశాను. శుభ్రమైన ముగింపుతో కూడిన మతం మార్పు కథ కోసం వచ్చి ఉంటే, నిజాయితీ వెర్షన్ ఇదే.

ఇది ఎటు వెళ్తుంది

ప్రస్తుతం నేను టెర్మినల్-నుంచి-యాక్షన్ బ్రిడ్జ్‌ను నిర్మిస్తున్నాను. ఎర్రర్‌ను కేవలం వివరించడానికి బదులు, షెల్ ఫంక్షన్ ఒక sed లేదా patch కమాండ్‌ను ప్రతిపాదిస్తుంది, నేను Y నొక్కి సవరణను నేరుగా అమలు చేయగలను. టెర్మినల్ వాడుకలో లేకుండా పోవడం లేదు; మనం నిర్మించే ప్రతి ఏజెంట్‌కు అది కాక్‌పిట్ అవుతోంది.

Rohit Burani

రచయిత

Rohit Burani

AI ఇంజినీర్. ల్యాబ్ నుంచి లోకల్-ఫస్ట్ సిస్టమ్‌లు, సెల్ఫ్-హోస్టెడ్ ఇన్‌ఫ్రాస్ట్రక్చర్, స్వయంచాలక టూల్స్ నిర్మిస్తారు.