Spaces:
Running
📃 LangChain-Chatchat (旧名 Langchain-ChatGLM):
LLM アプリケーションは、Langchain とオープンソースまたはリモートの LLM API に基づいて、知識と検索エンジンベースの QA を実装することを目的としています。
目次
イントロ
🤖️ 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 イメージがサポートされ、v13 では v0.2.9 にアップデートされました。
ペインポイントへの対応
このプロジェクトは、完全にローカライズされた推論によってナレッジベースを強化するソリューションであり、特にデータセキュリティと企業向けのプライベートな展開の問題に取り組んでいます。 このオープンソースソリューションは Apache ライセンスに基づき、無償で商用利用できます。 私たちは、市場で入手可能な主流のローカル大予言モデルや Embedding モデル、オープンソースのローカルベクターデータベースをサポートしています。 対応機種とデータベースの詳細については、Wiki をご参照ください。
クイックスタート
環境セットアップ
まず、マシンにPython 3.10がインストールされていることを確認してください。
$ python --version
Python 3.10.12
次に、仮想環境を作成し、プロジェクトの依存関係を仮想環境内にインストールする。
# リポジトリをクローン
$ 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 を参照してください。