Repochatは、大規模な言語モデル(LLM)を使用してGitHubリポジトリに関する会話をするように設計されたインタラクティブなチャットボットプロジェクトです。これにより、ユーザーは意味のある議論を持ち、質問をし、GitHubリポジトリから関連情報を取得できます。このREADMEは、ローカルマシンでRepochatをセットアップして使用するための段階的な指示を提供します。
Repochatは、異なる機能を持つ2つの枝を提供します。
Repochatのメインブランチは、ローカルマシンで完全に実行するように設計されています。このバージョンのRepochatは、外部API呼び出しに依存せず、データをより強力に制御できます。自己完結型のソリューションを探している場合、 mainブランチは行く方法です。
Repochatのクラウドブランチは、主にモデルの推論とストレージのために外部サービスへのAPI呼び出しに依存しています。クラウドベースのソリューションを好み、ローカル環境をセットアップしたくない人には適しています。
Repochatを始めるには、これらのインストール手順に従う必要があります。
仮想環境を作成し、ローカルマシンでアクティブにして、プロジェクトの依存関係を分離します。
python -m venv repochat-env
source repochat-env/bin/activateRepochatリポジトリをクローンし、プロジェクトディレクトリに移動します。
git clone https://github.com/pnkvalavala/repochat.git
cd repochat pipを使用して必要なPythonパッケージをインストールします。
pip install -r requirements.txt「llama-cpp-python」ライブラリをインストールします。
pip install llama-cpp-pythonllama.cpp 、より速い処理のために複数のBLAバックエンドをサポートしています。
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 Metal(MPS)にインストールするには、インストールする前に環境変数LLAMA_METAL=onを設定します。
CMAKE_ARGS= " -DLLAMA_METAL=on " pip install llama-cpp-python AMDカードのHIPBLAS / ROCMサポートでインストールするには、インストールする前に環境変数LLAMA_HIPBLAS=onを設定します。
CMAKE_ARGS= " -DLLAMA_HIPBLAS=on " pip install llama-cpp-pythonハードウェアアクセラレーションについて詳しく知るには、llama-cpp-pythonの公式readmeを参照してください
プロジェクトディレクトリにmodelsという名前のフォルダーを作成します。
コンピューターの機能に基づいて、抱きしめるフェイスモデルハブから言語モデルをダウンロードします。次のモデルを出発点として使用することをお勧めします:thebloke/codellama-7b-gguf。顔を抱きしめて利用できるモデルを定量化したい場合は、llama.cppからの指示に従ってください
ダウンロードしたモデルファイルを「モデル」フォルダーにコピーします。
「Repochat」フォルダーにあるmodels.pyファイルを開き、次のように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 端末を開き、次のコマンドを実行して、レポチャットアプリケーションを開始します。
streamlit run app.pyこれで、GitHubリポジトリリンクを入力できます。
Repochatはリポジトリからすべてのファイルを取得し、「Cloned_repo」という名前のフォルダーに保存します。次に、ファイルをより小さなチャンクに分割し、文変換器モデル、特に文、変換器/All-MPNet-Base-V2を使用して埋め込みを計算します。
埋め込みは、ChromAdbと呼ばれるベクトルデータベースにローカルに保存されます。
Repochatを使用すると、チャットボットとの会話をすることができます。質問をしたり、入力を提供したりすることができ、チャットボットはベクターデータベースから関連するドキュメントを取得します。次に、回答を生成するために、入力を取得したドキュメントとともに、文書を入力します。デフォルトでは、モデルを「codellama-7b-instruct」に設定しましたが、コンピューターの速度に基づいて変更することもできます。また、応答のために13b Quantizedモデルを試すこともできます。
チャットボットは、会話中にメモリを保持して、文脈的に関連する応答を提供します。
問題が発生したり、提案がある場合、またはバグを報告したい場合は、Repochatリポジトリの問題セクションにアクセスして、新しい問題を作成してください。あなたが直面している問題に関する詳細な情報を提供してください。私はあなたを支援するために最善を尽くします。
このプロジェクトは、Apacheライセンス2.0の下でライセンスされています。詳細については、ライセンスファイルを参照してください。これは前のライセンスからの変更であり、新しいライセンスの条件を確認することが重要であることに注意してください。