📃 LangChain-Chatchat (旧名 Langchain-ChatGLM)
ChatGLM などの大規模な言語モデルや Langchain などのアプリケーション フレームワークに基づいた、オープン ソースのオフライン展開可能な検索拡張生成 (RAG) 大規模モデル ナレッジ ベース プロジェクトです。
0.2.10
は 0.2.x
シリーズの最終バージョンとなり、0.2.x
シリーズはアップデートと技術サポートを終了し、より適用性の高い Langchain-Chachat 0.3.x
の開発に努めます。 。
0.2.10
のその後のバグ修正は、バージョン更新なしで master
ブランチに直接プッシュされます。
🤖️ langchain のアイデアを用いて実装された、ローカルナレッジベースに基づく Q&A アプリケーション。 目標は、中国のシナリオとオープンソースモデルに親和性があり、オフラインとオンラインの両方で実行可能な KBQA(ナレッジベースの Q&A)ソリューションを構築することです。
💡 document.ai と ChatGLM-6B Pull Request に触発され、 プロセス全体を通してオープンソースモデルまたはリモート LLM api を使用して実装することができるローカルナレッジベースの質問応答アプリケーションを構築します。 このプロジェクトの最新バージョンでは、FastChat を使用して、Vicuna、Alpaca、LLaMA、Koala、RWKV、その他多くのモデルにアクセスしています。 このプロジェクトは langchain に依存し、FastAPI に基づいて提供されるAPIを通してサービスを呼び出したり、 Streamlit に基づいて WebUI を使ったりすることをサポートしています。
✅ オープンソースの LLM と Embedding モデルに依存して、このプロジェクトはフルプロセスの **オフラインプライベートデプロイメント ** を実現することができます。 同時に、本プロジェクトは OpenAI GPT API や Zhipu API の呼び出しにも対応しており、今後も様々な機種やリモート API へのアクセスを拡大していきます。
⛓️ このプロジェクトの実施原則を下のグラフに示します。主なプロセスは以下の通りです:
ファイルの読み込み -> テキストの読み込み -> テキストのセグメンテーション -> テキストのベクトル化 -> 質問のベクトル化 ->
質問ベクトルと最も似ている top-k
をテキストベクトルでマッチング ->
マッチしたテキストをコンテキストと質問として prompt
に追加 -> 回答を生成するために LLM
に送信。
文書プロセスの側面からの主なプロセス分析:
🚩 トレーニングやファインチューニングはプロジェクトには含まれないが、これらを行うことで必ずパフォーマンスを向上させることができます。
🌐 AutoDL イメージがサポートされ、0.2.10
では v0.2.10
にアップデートされました。
このプロジェクトは、完全にローカライズされた推論によってナレッジベースを強化するソリューションであり、特にデータセキュリティと企業向けのプライベートな展開の問題に取り組んでいます。 このオープンソースソリューションは Apache ライセンスに基づき、無償で商用利用できます。 私たちは、市場で入手可能な主流のローカル大予言モデルや Embedding モデル、オープンソースのローカルベクターデータベースをサポートしています。 対応機種とデータベースの詳細については、Wiki をご参照ください。
まず、マシンにPython 3.10がインストールされていることを確認してください。
$ python --version
Python 3.11.7
次に、仮想環境を作成し、プロジェクトの依存関係を仮想環境内にインストールする。
# リポジトリをクローン
$ git clone https://github.com/chatchat-space/Langchain-Chatchat.git
# ディレクトリに移動
$ cd Langchain-Chatchat
# すべての依存関係をインストール
$ pip install -r requirements.txt
$ pip install -r requirements_api.txt
$ pip install -r requirements_webui.txt
# デフォルトの依存関係には、基本的な実行環境(FAISS ベクターライブラリ)が含まれます。milvus/pg_vector などのベクターライブラリを使用する場合は、requirements.txt 内の対応する依存関係のコメントを解除してからインストールしてください。
LangChain-Chachat 0.2.x
シリーズは Langchain 0.0.x
シリーズ用です。Langchain 0.1.x
シリーズをお使いの場合は、ダウングレードする必要があります。
このプロジェクトをローカルまたはオフライン環境で実行する必要がある場合は、まずプロジェクトに必要なモデルをダウンロードする必要があります。 通常、オープンソースの LLM と Embedding モデルは Hugging Face からダウンロードできる。
このプロジェクトで使用されているデフォルトの LLM モデルである THUDM/chatglm2-6bと、Embedding モデル moka-ai/m3e-base を例にとると、次のようになります:
モデルをダウンロードするには、まず Git LFS をインストールし、次のように実行する必要があります:
$ git lfs install
$ git clone https://huggingface.co/THUDM/chatglm2-6b
$ git clone https://huggingface.co/moka-ai/m3e-base
以下の手順に従って、ナレッジベースと設定ファイルを初期化してください:
$ python copy_config_example.py
$ python init_database.py --recreate-vs
プロジェクトを開始するには、次のコマンドを実行します:
$ python startup.py -a
- FastAPI docs インターフェース
- webui ページ
- Web UI ダイアログページ:
- Web UI ナレッジベースマネジメントページ:
上記の手順はクイックスタートのために提供されています。より多くの機能が必要な場合や、起動方法をカスタマイズしたい場合は、Wiki を参照してください。
-
2023 年 4 月
:Langchain-ChatGLM 0.1.0
がリリースされ、ChatGLM-6B モデルに基づくローカル ナレッジ ベースの質問と回答がサポートされました。 -
2023 年 8 月
:Langchain-ChatGLM
はLangchain-Chatchat
に名前変更され、モデル読み込みソリューションとしてfastchat
を使用し、より多くのモデルとデータベースをサポートする0.2.0
がリリースされました。 -
2023 年 10 月
:Langchain-Chachat 0.2.5
リリース、エージェント コンテンツ、オープンソース プロジェクトをFounder Park & Zhipu AI & Zilliz
で開始 開催したハッカソンでは3位に入賞しました。 -
2023 年 12 月
:Langchain-Chachat
オープンソース プロジェクトは 20,000 つ以上のスターを獲得しました。 -
2024 年 1 月
:LangChain 0.1.x
がリリースされ、Langchain-Chachat 0.2.x
が安定版0.2.10
をリリースしました。 今後はアップデートと技術サポートを停止し、より適用性の高いLangchain-Chachat 0.3.x
の開発に努める予定です。 -
🔥 これからのChatchatストーリーを一緒に楽しみにしましょう···