RECOCHAT adalah proyek chatbot interaktif yang dirancang untuk terlibat dalam percakapan tentang repositori gitub menggunakan model bahasa besar (LLM). Ini memungkinkan pengguna untuk melakukan diskusi yang bermakna, mengajukan pertanyaan, dan mengambil informasi yang relevan dari repositori GitHub. README ini memberikan instruksi langkah demi langkah untuk mengatur dan menggunakan RECOCRAT pada mesin lokal Anda.
RECOCHOT menawarkan 2 cabang dengan fungsionalitas yang berbeda:
Cabang utama RECOCHT dirancang untuk berjalan sepenuhnya pada mesin lokal Anda. Versi RECOCRAT ini tidak bergantung pada panggilan API eksternal dan menawarkan kontrol yang lebih besar atas data Anda. Jika Anda mencari solusi mandiri, cabang main adalah cara untuk pergi.
Cabang cloud RECOChat terutama bergantung pada panggilan API ke layanan eksternal untuk inferensi dan penyimpanan model. Ini sangat cocok untuk mereka yang lebih suka solusi berbasis cloud dan tidak ingin mendirikan lingkungan lokal.
Untuk memulai dengan RECOCHT, Anda harus mengikuti langkah -langkah instalasi ini:
Buat lingkungan virtual dan aktifkan pada mesin lokal Anda untuk mengisolasi dependensi proyek.
python -m venv repochat-env
source repochat-env/bin/activateKloning repositori RECOCRAT dan navigasikan ke direktori proyek.
git clone https://github.com/pnkvalavala/repochat.git
cd repochat Pasang paket Python yang diperlukan menggunakan pip .
pip install -r requirements.txtInstal Perpustakaan "Llama-CPP-Python".
pip install llama-cpp-python llama.cpp mendukung beberapa backend BLA untuk pemrosesan yang lebih cepat.
Untuk menginstal dengan OpenBlas, atur variabel lingkungan LLAMA_BLAS and LLAMA_BLAS_VENDOR sebelum menginstal:
CMAKE_ARGS= " -DLLAMA_BLAS=ON -DLLAMA_BLAS_VENDOR=OpenBLAS " pip install llama-cpp-python Untuk menginstal dengan cublas, atur LLAMA_CUBLAS=1 variabel lingkungan sebelum menginstal:
CMAKE_ARGS= " -DLLAMA_CUBLAS=on " pip install llama-cpp-python Untuk menginstal dengan clblast, atur LLAMA_CLBLAST=1 variabel lingkungan sebelum menginstal:
CMAKE_ARGS= " -DLLAMA_CLBLAST=on " pip install llama-cpp-python Untuk menginstal dengan logam (MPS), atur LLAMA_METAL=on variabel lingkungan sebelum menginstal:
CMAKE_ARGS= " -DLLAMA_METAL=on " pip install llama-cpp-python Untuk menginstal dengan dukungan HIPBLAS / ROCM untuk kartu AMD, atur LLAMA_HIPBLAS=on variabel lingkungan sebelum menginstal:
CMAKE_ARGS= " -DLLAMA_HIPBLAS=on " pip install llama-cpp-pythonUntuk mengetahui lebih banyak tentang akselerasi perangkat keras, lihat readme resmi dari llama-cpp-python
Buat folder bernama models di direktori proyek.
Unduh model bahasa dari hub Model Face Hugging berdasarkan kemampuan komputer Anda. Direkomendasikan menggunakan model berikut sebagai titik awal: TheBloke/Codellama-7b-gguf. Jika Anda ingin mengukur model yang tersedia pada wajah pelukan, ikuti instruksi dari llama.cpp
Salin file model yang diunduh ke folder "Model".
Buka file models.py yang terletak di folder "RECOCHAT" dan atur lokasi file model di fungsi code_llama() sebagai berikut:
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 Buka terminal Anda dan jalankan perintah berikut untuk memulai aplikasi RECOCHT:
streamlit run app.pyAnda sekarang dapat memasukkan tautan repositori GitHub.
RECOCHAT akan mengambil semua file dari repositori dan menyimpannya di folder bernama "cloned_repo." Ini kemudian akan membagi file menjadi potongan yang lebih kecil dan menghitung embeddings mereka menggunakan model Transformers Kalimat, khususnya kalimat-transformer/all-mpnet-base-v2.
Embeddings disimpan secara lokal dalam database vektor yang disebut chromadb.
RECOCHOT memungkinkan Anda untuk terlibat dalam percakapan dengan chatbot. Anda dapat mengajukan pertanyaan atau memberikan masukan, dan chatbot akan mengambil dokumen yang relevan dari database vektor. Kemudian mengirimkan input Anda, bersama dengan dokumen yang diambil, ke model bahasa untuk menghasilkan tanggapan. Secara default, saya telah menetapkan model ke "Codellama-7b-Instruct," tetapi Anda dapat mengubahnya berdasarkan kecepatan komputer Anda, dan Anda bahkan dapat mencoba model 13B terkuantisasi untuk tanggapan.
Chatbot mempertahankan memori selama percakapan untuk memberikan tanggapan yang relevan secara kontekstual.
Jika Anda menghadapi masalah apa pun, memiliki saran, atau ingin melaporkan bug, silakan kunjungi bagian masalah dari repositori RECOCHAT dan buat masalah baru. Berikan informasi terperinci tentang masalah yang Anda hadapi, dan saya akan melakukan yang terbaik untuk membantu Anda.
Proyek ini dilisensikan di bawah Lisensi Apache 2.0. Untuk detailnya, lihat file lisensi. Harap dicatat bahwa ini adalah perubahan dari lisensi sebelumnya, dan penting untuk meninjau syarat dan ketentuan lisensi baru.