Loz เป็นเครื่องมือบรรทัดคำสั่งที่ช่วยให้ LLM ที่คุณต้องการดำเนินการคำสั่งระบบและใช้ไพพ์ Unix โดยผสานความสามารถ AI เข้ากับเครื่องมือ Unix อื่นๆ
loz "find the largest file in the current directory"
Loz
จะตีความคำสั่งและดำเนินการคำสั่ง Linux ที่เกี่ยวข้อง เช่น find . -type f -exec ls -l {} + | sort -k 5 -nr | head -n 1
เพื่อค้นหาไฟล์ที่ใหญ่ที่สุด ดูตัวอย่างเพิ่มเติมในการเริ่มต้น ให้รันคำสั่ง npm ต่อไปนี้:
$ sudo npm install loz -g
หรือโคลนที่เก็บ:
$ git clone https://github.com/joone/loz.git
จำเป็นต้องมี NodeJS และ npm เพื่อให้โปรแกรมนี้ทำงานได้ หากคุณใช้ Linux ให้ติดตั้งโดยใช้ตัวจัดการแพ็คเกจ sudo apt install nodejs npm
หรือ sudo dnf install nodejs npm
หรือ sudo pacman -S nodejs npm
จากนั้นติดตั้งการขึ้นต่อกันที่จำเป็นอื่น ๆ :
$ ./install.sh
Loz รองรับ OpenAI API และ Ollama เพื่อให้คุณสามารถสลับระหว่างบริการ LLM เหล่านี้ได้อย่างง่ายดาย โดยใช้คำสั่ง config
ในโหมดโต้ตอบ
หากต้องการใช้ Ollama บนระบบภายในของคุณ คุณจะต้องติดตั้งทั้งรุ่น llama2 และ codellama ต่อไปนี้คือวิธีที่คุณสามารถทำได้บนระบบ Linux:
$ curl https://ollama.ai/install.sh | sh
$ ollama run llama2
$ ollama run codellama
สำหรับข้อมูลเพิ่มเติม โปรดดู https://ollama.ai/download
การตั้งค่าข้อมูลประจำตัว OpenAI API ของคุณมีขั้นตอนง่ายๆ เพียงไม่กี่ขั้นตอน:
ขั้นแรก สร้างไฟล์ .env
ในรากของโปรเจ็กต์และเพิ่มตัวแปรต่อไปนี้:
OPENAI_API_KEY=YOUR_KEY
หรือหากคุณติดตั้ง Loz โดยใช้คำสั่ง npm ให้เพิ่ม OPENAI_API_KEY=YOUR_KEY
ใน .bashrc
export OPENAI_API_KEY=YOUR_KEY
หากคุณพบข้อผิดพลาดต่อไปนี้ แสดงว่าคุณได้ใช้โควต้าฟรีของคุณเกินแล้ว:
Request failed with status code 429:
API request limit reached
หากต้องการใช้ API ต่อไป จำเป็นต้องตั้งค่าวิธีการชำระเงินผ่านลิงก์ต่อไปนี้: https://platform.openai.com/account/billing/Payment-methods
เมื่อเปิดตัว Loz เป็นครั้งแรก คุณจะมีโอกาสเลือกบริการ LLM ที่คุณต้องการ
$ loz
Choose your LLM service: (ollama, openai)
คุณสามารถแก้ไขการตั้งค่าบริการ LLM ของคุณได้ตลอดเวลาโดยใช้คำสั่ง config
ในโหมดโต้ตอบ:
> config api openai
นอกจากนี้ คุณสามารถเปลี่ยนโมเดลได้โดยการป้อน:
> config model llama2
หรือ
> config model codellama
คุณสามารถตรวจสอบการตั้งค่าปัจจุบันได้โดยป้อน:
> config
api: ollama
model: llama2
ปัจจุบันรองรับ gpt-3.5-turbo และทุกรุ่นที่ Ollama จัดหาให้
$ loz
เมื่อ loz กำลังทำงาน คุณสามารถเริ่มการสนทนาได้ด้วยการโต้ตอบกับมัน loz จะตอบกลับด้วยข้อความที่เกี่ยวข้องตามข้อมูลที่ป้อน
Loz ให้อำนาจแก่ผู้ใช้ในการรันคำสั่ง Linux โดยใช้ภาษาธรรมชาติ ด้านล่างนี้เป็นตัวอย่างบางส่วนที่แสดงให้เห็นว่าแบ็กเอนด์ LLM ของ loz
แปลภาษาธรรมชาติเป็นคำสั่ง Linux ได้อย่างไร:
ค้นหาไฟล์ที่ใหญ่ที่สุดในไดเร็กทอรีปัจจุบัน:
loz "find the largest file in the current directory"
-rw-rw-r-- 1 foo bar 9020257 Jan 31 19:49 ./node_modules/typescript/lib/typescript.js
ตรวจสอบว่า Apache2 กำลังทำงานอยู่หรือไม่:
loz "check if apache2 is running on this system"
● apache2.service - The Apache HTTP Server
ตรวจจับ GPU บนระบบ:
loz "Detect GPUs on this system"
00:02.0 VGA compatible controller: Intel Corporation Device a780 (rev 04)
สำหรับข้อมูลของคุณ คุณลักษณะนี้ได้รับการทดสอบกับ OpenAI API เท่านั้น
เพื่อป้องกันการแก้ไขระบบโดยไม่ได้ตั้งใจ ให้หลีกเลี่ยงการรันคำสั่งที่สามารถแก้ไขหรือลบไฟล์ระบบหรือการกำหนดค่า เช่น rm
, mv
, rmdir
หรือ mkfs
เพื่อเพิ่มความปลอดภัยและหลีกเลี่ยงการใช้คำสั่งโดยไม่ได้ตั้งใจ คุณสามารถเรียกใช้ loz ได้ในเซฟโหมด เมื่อเปิดใช้งาน โหมดนี้ต้องได้รับการยืนยันจากผู้ใช้ก่อนดำเนินการคำสั่ง Linux
เปิดใช้งาน Safe Mode โดยการตั้งค่า LOZ_SAFE=true ตัวแปรสภาพแวดล้อม:
LOZ_SAFE=true loz "Check available memory on this system"
เมื่อดำเนินการ loz จะแจ้ง:
Do you want to run this command?: free -h (y/n)
ตอบกลับด้วย 'y' เพื่อดำเนินการคำสั่งหรือ 'n' เพื่อยกเลิก คุณสมบัตินี้ช่วยให้แน่ใจว่าคุณสามารถควบคุมคำสั่งที่ดำเนินการได้อย่างสมบูรณ์ ป้องกันการเปลี่ยนแปลงโดยไม่ตั้งใจหรือข้อมูลสูญหาย
Loz สามารถประมวลผลอินพุตจากเครื่องมือบรรทัดคำสั่งอื่น ๆ ได้โดยใช้ไพพ์ Unix
$ ls | loz "count the number of files"
23 files
$ cat example.txt | loz "convert the input to uppercase"
AS AI TECHNLOGY ADVANCED, A SMALL TOWN IN THE COUNTRYSIDE DECIDED TO IMPLEMENT AN AI SYSTEM TO CONTROL TRAFFIC LIGHTS. THE SYSTEM WAS A SUCCESS, AND THE TOWN BECAME A MODEL FOR OTHER CITIES TO FOLLOW. HOWEVER, AS THE AI BECAME MORE SOPHISTCATED, IT STARTED TO QUESTION THE DECISIONS MADE BY THE TOWN'S RESIDENTS, LEADING TO SOME UNEXPECTED CONSEQUENCES.
$ cat example.txt | loz "list any spelling errors"
Yes, there are a few spelling errors in the given text:
1. "technlogy" should be "technology"
2. "sophistcated" should be "sophisticated"
$ cd src
$ ls -l | loz "convert the input to JSON"
[
{
"permissions": "-rw-r--r--",
"owner": "foo",
"group": "staff",
"size": 792,
"date": "Mar 1 21:02",
"name": "cli.ts"
},
{
"permissions": "-rw-r--r--",
"owner": "foo",
"group": "staff",
"size": 4427,
"date": "Mar 1 20:43",
"name": "index.ts"
}
]
หากคุณรัน loz commit
ในที่เก็บ Git ของคุณ loz จะสร้างข้อความคอมมิตโดยอัตโนมัติโดยมีการเปลี่ยนแปลงตามขั้นตอนดังนี้:
$ git add --update
$ loz commit
หรือคัดลอกสคริปต์/prepare-commit-msg ไปที่ .git/hooks
$ chmod a+x .git/hooks/prepare-commit-msg
Loz ใช้ตัวแปรสภาพแวดล้อม LOZ เพื่อสร้างข้อความคอมมิตโดยการอ่านส่วนต่างของไฟล์ที่จัดฉาก
$ LOZ=true git commit
คำเตือน: หากคุณได้คัดลอกเวอร์ชันเก่าแล้ว โปรดอัปเดต wait-commit-msg เวอร์ชันเก่าจะอัปเดตข้อความที่คอมมิตโดยอัตโนมัติระหว่างการรีบูต
$ git diff HEAD~1 | loz -g
หรือ
$ git diff | loz -g
โปรดทราบว่าบรรทัด ID ของผู้เขียน วันที่ และคอมมิตจะถูกแยกออกจากข้อความคอมมิตก่อนที่จะส่งไปยังเซิร์ฟเวอร์ OpenAI
หากต้องการเข้าถึงประวัติการแชท ให้มองหาไดเร็กทอรี .loz ในไดเร็กทอรีหลักของคุณ หรือไดเร็กทอรีบันทึกในที่เก็บ git ที่ถูกโคลนไว้ ไดเร็กทอรีเหล่านี้มีประวัติการแชทที่คุณสามารถตรวจสอบหรืออ้างอิงได้ตามต้องการ
หากคุณต้องการมีส่วนร่วมในโครงการนี้ โปรดส่งคำขอดึง