ฮูสตันเป็นเครื่องมือบรรทัดคำสั่งที่ใช้ GPT อย่างง่ายซึ่งช่วยให้คุณสร้างคำสั่งเชลล์หรือสคริปต์โดยให้คำแนะนำภาษาธรรมชาติที่เรียบง่าย
ทำงานบน Linux, Mac และ Windows คุณสามารถใช้สำหรับ Bash, PowerShell, ZSH, Python หรือเชลล์อื่น ๆ หรือภาษาสคริปต์
cargo install --git https://github.com/npgrosser/Houston.git
คำสั่งเริ่มต้นสำหรับการโต้ตอบกับฮูสตันคือ hu (สั้นสำหรับฮุสตัน) คุณสามารถให้คำแนะนำในภาษาธรรมชาติของฮูสตัน
ตัวอย่างเช่น:
hu run ubuntu container with interactive bashhu find all pdf files in my home directoryhu delete unused docker images and networkshu tell me a dad jokeในการใช้ฮุสตันตัวแปร OpenAI_API_KEY จะต้องตั้งค่าเป็นคีย์ OpenAI API ของคุณ คุณสามารถรับได้ที่ https://platform.openai.com หากคุณต้องการคุณสามารถระบุคีย์ในไฟล์กำหนดค่าของคุณดูส่วนการกำหนดค่าสำหรับข้อมูลเพิ่มเติม
ฮูสตันไม่รู้อะไรเกี่ยวกับระบบของคุณ ดังนั้นเพื่อให้ฮูสตันมีโอกาสที่ดีที่สุดในการทำงานให้เสร็จคุณสามารถให้ข้อมูลบริบท ซึ่งอาจรวมถึงรายละเอียดเกี่ยวกับแผนผังไฟล์เนื้อหาของไฟล์เฉพาะแพ็คเกจที่ติดตั้งประวัติทุบตีของคุณ ฯลฯ
เพื่อจุดประสงค์นี้มีคุณสมบัติบางอย่างที่ช่วยให้คุณทำสิ่งนี้
ไฟล์บริบทเป็นไฟล์ที่มีส่วนขยาย '.ctxt' ที่มีรายการข้อมูลในภาษาธรรมชาติ
คุณยังสามารถเพิ่มข้อมูลที่สร้างขึ้นแบบไดนามิกโดยใช้ ตัวแปรคำสั่ง
ข้อมูลที่คุณกำหนดไว้ในไฟล์ ~/houston/default.ctxt จะถูกจัดเตรียมให้กับฮูสตันเสมอ นี่คือไฟล์บริบทที่คุณจะใช้เพื่อแจ้งให้ฮุสตันทราบเกี่ยวกับการตั้งค่าและข้อกำหนดของคุณ ตัวอย่างเช่นตัวจัดการแพ็คเกจใดที่คุณชอบภาษาโปรดของคุณคืออะไรคุณชอบให้เขาโทรหาคุณ ฯลฯ
เนื้อหาของไฟล์บริบทควรเขียนเป็นรายการกระสุน
ตัวอย่าง:
- If I want you to install something, use brew if the package is avaiable there
- If the script gets more complex, use comments to explain what you are doing
- When printing to the console, use capital letters. I like it when you shout at me
ไฟล์บริบทที่มีชื่อเป็นไฟล์บริบทที่คุณสามารถเปิดใช้งานได้แบบต่อเนื่อง พวกเขามีประโยชน์สำหรับการให้ข้อมูลบริบทที่เฉพาะเจาะจงสำหรับงานบางอย่าง เช่นเดียวกับไฟล์บริบทเริ่มต้นพวกเขาอยู่ในไดเรกทอรี ~/Houston คุณเปิดใช้งานพวกเขาโดยใช้ธง -c
hu <instruction> -c <context-file-name>
ตัวอย่าง:
~/houston/pretty-output.ctxt
- when printing to the terminal, use colored output and fancy ASCII art
การใช้งาน:
hu print hello world -c pretty-output
ตามคำสั่งคุณสามารถเปิดใช้งานหลายไฟล์บริบท
hu <instruction> -c <context-file-name-1> -c <context-file-name-2>
ตัวอย่าง:
hu tell me a joke -c pretty-output -c dark-humor
ไฟล์บริบทอาจเป็นไฟล์ข้อความธรรมดา แต่ยังสามารถมี ตัวแปรคำสั่ง คุณสามารถใช้ประโยชน์ได้โดยใช้ไวยากรณ์ ${cmd} ตัวแปรคำสั่งเหล่านี้ได้รับการประเมินในแต่ละคำสั่งและแทนที่ด้วยเอาต์พุตของคำสั่ง
นี่คือตัวอย่างของไฟล์บริบทโดยใช้ตัวแปรคำสั่ง:
- The current working directory is ${pwd}.
- The current user is ${whoami}.
- The current time is ${date}.
เมื่อเทมเพลตนี้ถูกประมวลผลเอาต์พุตผลลัพธ์จะมีลักษณะคล้ายกับนี้:
- The current working directory is /home/user/my-name/houston.
- The current user is my-name.
- The current time is 2020-10-10 12:00:00.
เมื่อเขียนไฟล์บริบทของคุณเองโปรดทราบว่าข้อมูลทั้งหมดจะถูกส่งไปยัง OpenAI ดังนั้นคุณควรใช้คำสั่งที่ไม่เปิดเผยข้อมูลที่ละเอียดอ่อนเท่านั้น
เมื่อใช้บริบทที่มีชื่อผ่านธง -C คุณสามารถผ่านข้อโต้แย้งได้ ตัวอย่างเช่น:
hu tell me a joke -c lang:german
อาร์กิวเมนต์จะถูกส่งผ่านไปยังเทมเพลตซึ่งคุณสามารถเข้าถึงได้เช่นเดียวกับที่คุณทำกับเชลล์สคริปต์ปกติ ตัวอย่าง:
~/houston/lang.ctxt:
- When printing to the terminal, always use the ${echo $1} language.
โปรดทราบว่าเราจำเป็นต้องใช้คำสั่ง echo ที่นี่เนื่องจากตัวแปรคำสั่งจะถูกแทนที่ด้วยผลลัพธ์ของคำสั่ง
หากคุณต้องการผ่านอาร์กิวเมนต์หลายข้อคุณเพียงแค่ต้องตรวจสอบให้แน่ใจว่าได้เพิ่มเครื่องหมายคำพูดรอบ ๆ ข้อกำหนดบริบท
hu tell me a joke -c "langs:german english french"
โปรดทราบว่าตัวอย่างข้างต้นสันนิษฐานว่า BASH ใช้เป็นเชลล์เพื่อประเมินตัวแปรคำสั่ง
เมื่อใช้เชลล์อื่นคุณอาจต้องใช้ไวยากรณ์อื่นเพื่อเข้าถึงอาร์กิวเมนต์
ตัวอย่างเช่นใน PowerShell คุณจะใช้ตัวแปร $ args นอกจากนี้คุณไม่จำเป็นต้องใช้คำสั่ง Echo
- When printing to the terminal, always use the ${$args[0]} language.
นี่คือตัวอย่างเพิ่มเติมของไฟล์บริบทที่มีชื่อเพื่อให้คุณทราบว่าพวกเขาสามารถใช้งานได้อย่างไร
ไฟล์บริบทที่เพิ่มสถานะ GIT ปัจจุบันเป็นข้อมูลบริบท
- The current git status is:
```
${git status}
```
ไฟล์บริบทที่เพิ่มสถานะ Docker ปัจจุบันเป็นข้อมูลบริบท
- The current docker status is:
```
${docker ps -a}
```
- The current docker images are:
```
${docker images}
```
ไฟล์บริบทที่เพิ่มคำสั่ง n (ค่าเริ่มต้น 10) ล่าสุดจากประวัติทุบตีของคุณเป็นข้อมูลบริบท
- The last ${1:-10} commands I ran were:
```
${tail -n ${1:-10} ~/.bash_history | cut -d ';' -f 2-}
```
ไฟล์บริบทที่เพิ่มตัวแปรสภาพแวดล้อมปัจจุบันเป็นข้อมูลบริบท
- The current environment variables are:
```
${env}
```
ไฟล์บริบทที่เพิ่มแผนผังไฟล์ปัจจุบันเป็นข้อมูลบริบท
- The current file tree is:
```
${tree -L ${1:-3}}
```
หากคุณต้องการดูสิ่งที่ส่งผ่านไปยัง API จริง ๆ คุณสามารถใช้ธง -v (verbose)
hu <instruction> -v
สิ่งนี้มีประโยชน์อย่างยิ่งหากคุณต้องการดูว่าไฟล์บริบทของคุณได้รับการประเมินอย่างไร
ดู ตัวอย่าง-config.yml สำหรับตัวเลือกการกำหนดค่าที่มีอยู่ การกำหนดค่าจะถูกสร้างขึ้นโดยอัตโนมัติเมื่อคุณเรียกใช้ hu เป็นครั้งแรก มันจะอยู่ใน $XDG_CONFIG_HOME/houston/config.yml หรือ ~/.config/houston/config.yml