Laragenie เป็น AI chatbot ที่ทำงานบนบรรทัดคำสั่งจากแอพ Laravel ของคุณ มันจะสามารถอ่านและเข้าใจรหัสฐานของคุณได้ตามขั้นตอนง่ายๆสองสามขั้นตอน:
มันง่ายอย่างนั้น! เร่งเวิร์กโฟลว์ของคุณทันทีและทำงานร่วมกันอย่างราบรื่นกับ 'เพื่อนร่วมงาน' ที่เร็วที่สุดและมีความรู้มากที่สุดที่คุณเคยมี
นี่คือบอท CLI ที่มีประโยชน์อย่างยิ่งที่สามารถใช้:
คุณไม่ได้ จำกัด อยู่ที่การจัดทำดัชนีไฟล์ที่อยู่ในโครงการ Laravel ของคุณ คุณสามารถใช้สิ่งนี้สำหรับ Monorepo หรือ repo ใด ๆ ในภาษาใด ๆ คุณสามารถใช้เครื่องมือนี้เพื่อจัดทำดัชนีไฟล์ที่ไม่เกี่ยวข้องกับรหัสได้เช่นกัน
สิ่งที่คุณต้องทำคือเรียกใช้เครื่องมือ CLI นี้จากไดเรกทอรี Laravel เรียบง่ายใช่มั้ย! -

บันทึก
หากคุณกำลังอัพเกรดจากรุ่น Laragenie ^1.0.63 > 1.1 มีการเปลี่ยนแปลงตัวแปรสภาพแวดล้อม pinecone โปรดดู Openai และ Pinecone
สำหรับรุ่นเฉพาะที่ตรงกับ PHP รุ่น Laravel และ Laragenie ของคุณโปรดดูตารางด้านล่าง:
| PHP | รุ่น laravel | Laragenie เวอร์ชัน |
|---|---|---|
| ^8.1 | ^10.0 | > = 1.0 <1.2 |
| ^8.2 | ^10.0, ^11.0 | ^1.2.0 |
แพ็คเกจนี้ใช้พรอมต์ Laravel ซึ่งรองรับ MacOS, Linux และ Windows ด้วย WSL เนื่องจากข้อ จำกัด ในเวอร์ชัน Windows ของ PHP จึงไม่สามารถใช้การแจ้งเตือน Laravel บน Windows นอก WSL ได้
ด้วยเหตุนี้ Laravel จึงขอให้การสนับสนุนการถอยกลับไปสู่การใช้งานทางเลือกเช่นตัวช่วยคำถาม Symfony Console
คุณสามารถติดตั้งแพ็คเกจผ่านนักแต่งเพลง:
composer require joshembling/laragenieคุณสามารถเผยแพร่และเรียกใช้การอพยพด้วย:
php artisan vendor:publish --tag= " laragenie-migrations "
php artisan migrateหากคุณไม่ต้องการเผยแพร่การอพยพคุณต้องสลับข้อมูลรับรองฐานข้อมูลในการกำหนดค่า Laragenie ของคุณเป็น FALSE (ดูรายละเอียดไฟล์กำหนดค่าด้านล่าง)
คุณสามารถเผยแพร่ไฟล์ config ด้วย:
php artisan vendor:publish --tag= " laragenie-config "นี่คือเนื้อหาของไฟล์กำหนดค่าที่เผยแพร่:
return [
' bot ' => [
' name ' => ' Laragenie ' , // The name of your chatbot
' welcome ' => ' Hello, I am Laragenie, how may I assist you today? ' , // Your welcome message
' instructions ' => ' Write in markdown format. Try to only use factual data that can be pulled from indexed chunks. ' , // The chatbot instructions
],
' chunks ' => [
' size ' => 1000 , // Maximum number of characters to separate chunks
],
' database ' => [
' fetch ' => true , // Fetch saved answers from previous questions
' save ' => true , // Save answers to the database
],
' extensions ' => [ // The file types you want to index
' php ' ,
' blade.php ' ,
' js ' ,
],
' indexes ' => [
' directories ' => [], // The directores you want to index e.g. ['app/Models', 'app/Http/Controllers', '../frontend/src']
' files ' => [], // The files you want to index e.g. ['tests/Feature/MyTest.php']
' removal ' => [
' strict ' => true , // User prompt on deletion requests of indexes
],
],
' openai ' => [
' embedding ' => [
' model ' => ' text-embedding-3-small ' , // Text embedding model
' max_tokens ' => 5 , // Maximum tokens to use when embedding
],
' chat ' => [
' model ' => ' gpt-4-turbo-preview ' , // Your OpenAI GPT model
' temperature ' => 0.1 , // Set temperature between 0 and 1 (lower values will have less irrelevance)
],
],
' pinecone ' => [
' topK ' => 2 , // Pinecone indexes to fetch
],
];แพ็คเกจนี้ใช้ OpenAI เพื่อประมวลผลและสร้างการตอบสนองและ PineCone เพื่อจัดทำดัชนีข้อมูลของคุณ
คุณจะต้องสร้างบัญชี OpenAI ด้วยเครดิตสร้างคีย์ API และเพิ่มลงในไฟล์ .env ของคุณ:
OPENAI_API_KEY=your-open-ai-key
สำคัญ
หากคุณใช้รุ่น Laragenie ก่อน 1.1 และไม่ต้องการอัพเกรดให้ตรงไปที่ Pinecone ดั้งเดิม
คุณจะต้องสร้างบัญชี Pinecone มีบัญชีสองประเภทที่แตกต่างกันที่คุณสามารถตั้งค่าได้:
ตั้งแต่ต้นปี 2567 Pinecone แนะนำให้คุณเริ่มต้นด้วยบัญชีที่ไม่มีเซิร์ฟเวอร์ คุณสามารถเลือกตั้งค่าบัญชีด้วยวิธีการชำระเงินที่แนบมาเพื่อรับเครดิตฟรี $ 100 อย่างไรก็ตามบัญชีฟรีอนุญาตให้มีดัชนีมากถึง 100,000 ดัชนี - น่าจะเกินพอสำหรับแอปพลิเคชันขนาดเล็กขนาดกลางใด ๆ
สร้างดัชนีที่มีขนาด 1536 และตัวชี้วัดเป็น 'โคไซน์' จากนั้นสร้างคีย์ API และเพิ่มรายละเอียดเหล่านี้ลงในไฟล์ .env ของคุณ:
PINECONE_API_KEY=an-example-pinecone-api-key
PINECONE_INDEX_HOST='https://an-example-url.aaa.gcp-starter.pinecone.io'
โฮสต์ของคุณสามารถเห็นได้ในกล่องข้อมูลในหน้าดัชนีของคุณควบคู่ไปกับตัวชี้วัด, มิติ, ประเภทพ็อด, คลาวด์ภูมิภาคและสิ่งแวดล้อม
เคล็ดลับ
หากคุณกำลังอัพเกรดเป็น Laragenie ^1.1 คุณสามารถลบตัวแปรสภาพแวดล้อมดั้งเดิมได้อย่างปลอดภัย: PINECONE_ENVIRONMENT และ PINECONE_INDEX
สำคัญ: หากคุณใช้ Laragenie 1.0.63 หรือก่อนหน้านี้คุณต้องใช้บัญชี Pinecone ปกติและไม่ใช่บัญชีที่ไม่มีเซิร์ฟเวอร์ เมื่อคุณได้รับคำแนะนำให้เลือกตัวเลือกในการสร้างบัญชีให้แน่ใจว่าคุณเลือก 'ดำเนินการต่อด้วยดัชนีที่ใช้ POD'
สร้างสภาพแวดล้อมที่มีขนาด 1536 และตั้งชื่อสร้างคีย์ API และเพิ่มรายละเอียดเหล่านี้ลงในไฟล์ .env ของคุณ:
PINECONE_API_KEY=your-pinecone-api-key
PINECONE_ENVIRONMENT=gcp-starter
PINECONE_INDEX=your-index
เมื่อการตั้งค่าเหล่านี้คุณจะสามารถเรียกใช้คำสั่งต่อไปนี้จากไดเรกทอรีรูทของคุณ:
php artisan laragenieคุณจะได้รับ 4 ตัวเลือก:
ใช้ ปุ่มลูกศร เพื่อสลับผ่านตัวเลือกและ ป้อน เพื่อเลือกคำสั่ง

หมายเหตุ: คุณสามารถเรียกใช้การดำเนินการนี้ได้เมื่อคุณมีการจัดทำดัชนีไฟล์ในฐานข้อมูลเวกเตอร์ Pinecone ของคุณ (ข้ามไปยังส่วน 'ดัชนีไฟล์' หากคุณต้องการค้นหาวิธีเริ่มการทำดัชนี)
เมื่อฐานข้อมูลเวกเตอร์ของคุณมีดัชนีคุณจะสามารถถามคำถามใด ๆ ที่เกี่ยวข้องกับ codebase ของคุณ
สามารถสร้างคำตอบในรูปแบบ markdown พร้อมตัวอย่างรหัสหรือรูปแบบใด ๆ ที่คุณเลือก ใช้ bot.instructions config เพื่อเขียนคำแนะนำ AI ตามรายละเอียดตามที่คุณต้องการ
ภายใต้การตอบสนองแต่ละครั้งคุณจะเห็นค่าใช้จ่ายที่สร้างขึ้น (เป็นดอลลาร์สหรัฐ) ซึ่งจะช่วยติดตามค่าใช้จ่ายอย่างใกล้ชิด ค่าใช้จ่ายในการตอบกลับจะถูกเพิ่มลงในฐานข้อมูลของคุณหากเปิดใช้งานการย้ายข้อมูล
ค่าใช้จ่ายอาจแตกต่างกันไป แต่การตอบสนองเล็กน้อยจะน้อยกว่า $ 0.01 การตอบสนองที่ใหญ่กว่ามากสามารถอยู่ระหว่าง $ 0.02–0.05
ดังที่ได้กล่าวไว้ก่อนหน้านี้เมื่อคุณเปิดใช้งานการอพยพคำถามของคุณจะบันทึกลงในฐานข้อมูลของคุณ
อย่างไรก็ตามคุณอาจต้องการบังคับใช้การใช้ AI (ป้องกันการดึงข้อมูลจากฐานข้อมูล) หากคุณไม่พอใจกับคำตอบเริ่มต้น สิ่งนี้จะเขียนทับคำตอบที่บันทึกไว้ในฐานข้อมูลแล้ว
เพื่อบังคับให้ตอบสนอง AI คุณจะต้องจบคำถามทั้งหมดด้วยธง --ai เช่น
Tell me how users are saved to the database --ai
สิ่งนี้จะทำให้มั่นใจได้ว่าโมเดล AI จะประเมินคำขอของคุณอีกครั้งและส่งออกคำตอบอื่น (อาจเป็นคำตอบเดียวกันขึ้นอยู่กับรุ่น GPT ที่คุณใช้)

วิธีที่เร็วที่สุดในการจัดทำดัชนีไฟล์คือการส่งผ่านค่าเอกพจน์ไปยัง directories หรืออาร์เรย์ files ในการกำหนดค่า Laragenie เมื่อคุณเรียกใช้คำสั่ง 'ดัชนีไฟล์' คุณจะมีตัวเลือกในการทำดัชนีไฟล์เหล่านี้อีกครั้ง สิ่งนี้จะช่วยในการรักษา Laragenie Bot ให้ทันสมัย
เลือก 'ใช่' เมื่อได้รับแจ้งว่า Do you want to index your directories and files saved in your config?
' indexes ' => [
' directories ' => [ ' app/Models ' , ' app/Http/Controllers ' ],
' files ' => [ ' tests/Feature/MyTest.php ' ],
' removal ' => [
' strict ' => true ,
],
],หากคุณเลือก 'ไม่' คุณสามารถจัดทำดัชนีไฟล์ในวิธีต่อไปนี้:
app/Models/User.phpAppapp/Models อย่างชัดเจนเพื่อจัดทำดัชนีโมเดลทั้งหมดของคุณapp/Models, tests/Feature, app/Http/Controllers/Controller.phpapp/Models/*.phplaragenie ของคุณ คุณอาจใช้ Laragenie ในทุกทางที่คุณต้องการ คุณไม่ได้ จำกัด เพียงแค่การจัดทำดัชนีไฟล์ที่ใช้ Laravel
ตัวอย่างเช่นโครงการ Laravel ของคุณอาจอาศัยอยู่ในโมโนเรปที่มีสองรายการรากเช่น frontend และ backend ในอินสแตนซ์นี้คุณสามารถเลื่อนระดับหนึ่งเพื่อจัดทำดัชนีไดเรกทอรีและไฟล์ได้มากขึ้นเช่น ../frontend/src/ frontend/src/ หรือ ../frontend/components/Component.js
คุณสามารถเพิ่มสิ่งเหล่านี้ลงใน directories และ files ของคุณในการกำหนดค่า Laragenie:
' indexes ' => [
' directories ' => [ ' app/Models ' , ' app/Http/Controllers ' , ' ../frontend/src/ ' ],
' files ' => [ ' tests/Feature/MyTest.php ' , ' ../frontend/components/Component.js ' ],
' removal ' => [
' strict ' => true ,
],
],การใช้วิธีเดียวกันนี้คุณสามารถจัดทำดัชนีไฟล์หรือไดเรกทอรีใด ๆ ที่คุณสามารถเข้าถึงได้ในเซิร์ฟเวอร์หรือเครื่องในเครื่อง
ตรวจสอบให้แน่ใจว่าส่วนขยายของคุณในการกำหนดค่า Laragenie ของคุณตรงกับประเภทไฟล์ทั้งหมดที่คุณต้องการจัดทำดัชนี
' extensions ' => [
' php ' , ' blade.php ' , ' js ' , ' jsx ' , ' ts ' , ' tsx ' , // etc...
],หมายเหตุ: หากไดเรกทอรีเส้นทางหรือชื่อไฟล์ของคุณเปลี่ยนไป Laragenie จะไม่สามารถค้นหาดัชนีได้หากคุณตัดสินใจที่จะอัปเดต/ลบออกในภายหลัง (เว้นแต่คุณจะตัดทอนฐานข้อมูลเวกเตอร์ทั้งหมดของคุณหรือไปที่ Pinecone และลบด้วยตนเอง)

คุณสามารถลบไฟล์ที่จัดทำดัชนีโดยใช้วิธีการเดียวกันที่ระบุไว้ข้างต้นยกเว้นจากการใช้ directories หรืออาร์เรย์ files ของคุณในการกำหนดค่า Laragenie - นี่คือเพื่อวัตถุประสงค์ในการจัดทำดัชนีเท่านั้น
หากคุณต้องการลบไฟล์ทั้งหมดที่คุณสามารถทำได้โดยเลือก Remove all chunked data ได้รับการเตือนว่าสิ่งนี้จะตัดทอนฐานข้อมูลเวกเตอร์ทั้งหมดของคุณและไม่สามารถย้อนกลับได้

ในการลบรายการไฟล์/ไดเรกทอรีที่คั่นด้วยเครื่องหมายจุลภาคให้เลือก Remove data associated with a directory or specific file เป็นตัวเลือก
การลบอย่างเข้มงวดคือข้อความเตือนก่อนที่ไฟล์จะถูกลบสามารถเปิด/ปิดได้โดยการเปลี่ยนแอตทริบิวต์ 'เข้มงวด' เป็นเท็จในการกำหนดค่าของคุณ
' indexes ' => [
' removal ' => [
' strict ' => true ,
],
],คุณสามารถหยุด Laragenie โดยใช้วิธีการต่อไปนี้:
ctrl + c (Linux/Mac)No thanks, goodbye ในเมนูผู้ใช้หลังจากที่แจ้งอย่างน้อย 1 ครั้งได้ทำงานแล้วขอให้สนุกกับการใช้ Laragenie! -
.env ที่ต้องการอย่างถูกต้อง แต่รับข้อผิดพลาดเช่น "คุณไม่ได้ให้คีย์ API" คุณอาจต้องล้างแคชและการกำหนดค่าของคุณ: php artisan config:clear
php artisan cache:clearโปรดดู Changelog สำหรับข้อมูลเพิ่มเติมเกี่ยวกับสิ่งที่เปลี่ยนแปลงไปเมื่อเร็ว ๆ นี้
โปรดดูรายละเอียดที่มีส่วนร่วม
โปรดตรวจสอบนโยบายความปลอดภัยของเราเกี่ยวกับวิธีการรายงานช่องโหว่ด้านความปลอดภัย
ใบอนุญาต MIT (MIT) โปรดดูไฟล์ใบอนุญาตสำหรับข้อมูลเพิ่มเติม