RepoChat เป็นโครงการ chatbot แบบโต้ตอบที่ออกแบบมาเพื่อมีส่วนร่วมในการสนทนาเกี่ยวกับที่เก็บ GitHub โดยใช้รูปแบบภาษาขนาดใหญ่ (LLM) ช่วยให้ผู้ใช้มีการอภิปรายที่มีความหมายถามคำถามและดึงข้อมูลที่เกี่ยวข้องจากที่เก็บ GitHub readme นี้ให้คำแนะนำทีละขั้นตอนสำหรับการตั้งค่าและการใช้ repochat บนเครื่องในพื้นที่ของคุณ
Repochat เสนอ 2 สาขาที่มีฟังก์ชันที่แตกต่างกัน:
สาขาหลักของ Repochat ได้รับการออกแบบมาเพื่อทำงานอย่างสมบูรณ์บนเครื่องในพื้นที่ของคุณ repochat เวอร์ชันนี้ไม่ได้พึ่งพาการโทรภายนอก API และให้การควบคุมข้อมูลของคุณมากขึ้น หากคุณกำลังมองหาวิธีแก้ปัญหาที่อยู่ในตัวเองสาขา main คือวิธีที่จะไป
สาขาคลาวด์ของ Repochat ส่วนใหญ่อาศัยการเรียก API ไปยังบริการภายนอกสำหรับการอนุมานแบบจำลองและการจัดเก็บ เหมาะสำหรับผู้ที่ชอบโซลูชันบนคลาวด์และไม่ต้องการตั้งค่าสภาพแวดล้อมในท้องถิ่น
ในการเริ่มต้นใช้งาน Repochat คุณจะต้องทำตามขั้นตอนการติดตั้งเหล่านี้:
สร้างสภาพแวดล้อมเสมือนจริงและเปิดใช้งานบนเครื่องในพื้นที่ของคุณเพื่อแยกการพึ่งพาของโครงการ
python -m venv repochat-env
source repochat-env/bin/activateโคลนที่เก็บ RepoChat และนำทางไปยังไดเรกทอรีโครงการ
git clone https://github.com/pnkvalavala/repochat.git
cd repochat ติดตั้งแพ็คเกจ Python ที่ต้องการโดยใช้ pip
pip install -r requirements.txtติดตั้งไลบรารี "LLAMA-CPP-PYTHON"
pip install llama-cpp-python llama.cpp รองรับแบ็กเอนด์ BLAs หลายรายการสำหรับการประมวลผลที่เร็วขึ้น
หากต้องการติดตั้งด้วย OpenBlas ให้ตั้งค่าตัวแปรสภาพแวดล้อม LLAMA_BLAS and LLAMA_BLAS_VENDOR ก่อนติดตั้ง:
CMAKE_ARGS= " -DLLAMA_BLAS=ON -DLLAMA_BLAS_VENDOR=OpenBLAS " pip install llama-cpp-python หากต้องการติดตั้งด้วย cublas ให้ตั้งค่าตัวแปรสภาพแวดล้อม LLAMA_CUBLAS=1 ก่อนติดตั้ง:
CMAKE_ARGS= " -DLLAMA_CUBLAS=on " pip install llama-cpp-python หากต้องการติดตั้งด้วย clblast ให้ตั้งค่าตัวแปรสภาพแวดล้อม LLAMA_CLBLAST=1 ก่อนติดตั้ง:
CMAKE_ARGS= " -DLLAMA_CLBLAST=on " pip install llama-cpp-python ในการติดตั้งด้วยโลหะ (MPS) ตั้งค่า LLAMA_METAL=on ตัวแปรสภาพแวดล้อมก่อนติดตั้ง:
CMAKE_ARGS= " -DLLAMA_METAL=on " pip install llama-cpp-python ในการติดตั้งด้วยการสนับสนุน HIPBLAS / ROCM สำหรับการ์ด AMD ให้ตั้งค่า LLAMA_HIPBLAS=on ตัวแปรสภาพแวดล้อมก่อนติดตั้ง:
CMAKE_ARGS= " -DLLAMA_HIPBLAS=on " pip install llama-cpp-pythonหากต้องการทราบข้อมูลเพิ่มเติมเกี่ยวกับการเร่งความเร็วของฮาร์ดแวร์โปรดดู readme อย่างเป็นทางการจาก llama-cpp-python
สร้างโฟลเดอร์ชื่อ models ในไดเรกทอรีโครงการ
ดาวน์โหลดโมเดลภาษาจาก Hugging Face Model Hub ตามความสามารถของคอมพิวเตอร์ของคุณ ขอแนะนำให้ใช้โมเดลต่อไปนี้เป็นจุดเริ่มต้น: Thebloke/Codellama-7b-Gguf หากคุณต้องการสร้างปริมาณแบบจำลองที่มีอยู่บนหน้ากอดให้ทำตามคำแนะนำจาก llama.cpp
คัดลอกไฟล์รุ่นที่ดาวน์โหลดไปยังโฟลเดอร์ "รุ่น"
เปิดไฟล์ models.py ที่อยู่ในโฟลเดอร์ "repochat" และตั้งค่าตำแหน่งไฟล์โมเดลในฟังก์ชัน code_llama() ดังนี้:
def code_llama ():
callbackmanager = CallbackManager ([ StreamingStdOutCallbackHandler ()])
llm = LlamaCpp (
model_path = "./models/codellama-7b.Q4_K_M.gguf" ,
n_ctx = 2048 ,
max_tokens = 200 ,
n_gpu_layers = 1 ,
f16_kv = True ,
callback_manager = callbackmanager ,
verbose = True ,
use_mlock = True
)
return llm เปิดเทอร์มินัลของคุณและเรียกใช้คำสั่งต่อไปนี้เพื่อเริ่มแอปพลิเคชัน RepoChat:
streamlit run app.pyตอนนี้คุณสามารถป้อนลิงค์ที่เก็บ GitHub
RepoChat จะดึงไฟล์ทั้งหมดจากที่เก็บและเก็บไว้ในโฟลเดอร์ชื่อ "cloned_repo" จากนั้นจะแยกไฟล์ออกเป็นชิ้นเล็ก ๆ และคำนวณการฝังตัวของพวกเขาโดยใช้โมเดล Transformers ประโยคโดยเฉพาะการแปลงประโยค/All-MPNet-Base-V2
Embeddings จะถูกเก็บไว้ในพื้นที่ในฐานข้อมูลเวกเตอร์ที่เรียกว่า Chromadb
RepoChat ช่วยให้คุณมีส่วนร่วมในการสนทนากับ Chatbot คุณสามารถถามคำถามหรือให้อินพุตและ chatbot จะดึงเอกสารที่เกี่ยวข้องจากฐานข้อมูล Vector จากนั้นจะส่งอินพุตของคุณพร้อมกับเอกสารที่ดึงมาไปยังรูปแบบภาษาสำหรับการสร้างคำตอบ โดยค่าเริ่มต้นฉันได้ตั้งค่าโมเดลเป็น "Codellama-7b-Instruct" แต่คุณสามารถเปลี่ยนได้ตามความเร็วของคอมพิวเตอร์และคุณสามารถลองใช้โมเดลขนาด 13B สำหรับการตอบกลับได้
chatbot ยังคงความทรงจำในระหว่างการสนทนาเพื่อให้คำตอบที่เกี่ยวข้องกับบริบท
หากคุณพบปัญหาใด ๆ มีข้อเสนอแนะหรือต้องการรายงานข้อผิดพลาดโปรดไปที่ส่วนปัญหาของที่เก็บ RepoChat และสร้างปัญหาใหม่ ให้ข้อมูลโดยละเอียดเกี่ยวกับปัญหาที่คุณเผชิญและฉันจะพยายามอย่างเต็มที่เพื่อช่วยเหลือคุณ
โครงการนี้ได้รับอนุญาตภายใต้ใบอนุญาต Apache 2.0 สำหรับรายละเอียดโปรดดูไฟล์ใบอนุญาต โปรดทราบว่านี่เป็นการเปลี่ยนแปลงจากใบอนุญาตก่อนหน้านี้และเป็นสิ่งสำคัญที่จะต้องตรวจสอบข้อกำหนดและเงื่อนไขของใบอนุญาตใหม่