🌍 中文文档
🌍 READ THIS IN ENGLISH
📃 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
に送信。
📺video introduction
文書プロセスの側面からの主なプロセス分析:
🚩 トレーニングやファインチューニングはプロジェクトには含まれないが、これらを行うことで必ずパフォーマンスを向上させることができます。
🌐 AutoDL イメージがサポートされ、0.2.10
では v0.2.10
にアップデートされました。
🐳 Docker イメージ
ペインポイントへの対応
このプロジェクトは、完全にローカライズされた推論によってナレッジベースを強化するソリューションであり、特にデータセキュリティと企業向けのプライベートな展開の問題に取り組んでいます。
このオープンソースソリューションは 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 ページ
注
上記の手順はクイックスタートのために提供されています。より多くの機能が必要な場合や、起動方法をカスタマイズしたい場合は、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ストーリーを一緒に楽しみにしましょう···
お問い合わせ
Telegram
WeChat グループ
WeChat 公式アカウント