|
| 1 | + |
| 2 | + |
| 3 | +🌍 [中文文档](README.md) |
| 4 | +🌍 [READ THIS IN ENGLISH](README_en.md) |
| 5 | + |
| 6 | +📃 **LangChain-Chatchat** (旧名 Langchain-ChatGLM): |
| 7 | + |
| 8 | +LLM アプリケーションは、Langchain とオープンソースまたはリモートの LLM API に基づいて、知識と検索エンジンベースの QA を実装することを目的としています。 |
| 9 | + |
| 10 | +--- |
| 11 | + |
| 12 | +## 目次 |
| 13 | + |
| 14 | +- [イントロ](README_ja.md#イントロ) |
| 15 | +- [ペインポイントへの対応](README_ja.md#ペインポイントへの対応) |
| 16 | +- [クイックスタート](README_ja.md#クイックスタート) |
| 17 | + - [1. 環境セットアップ](README_ja.md#環境セットアップ) |
| 18 | + - [2. モデルをダウンロード](README_ja.md#モデルをダウンロード) |
| 19 | + - [3. ナレッジベースと設定ファイルの初期化](README_ja.md#ナレッジベースと設定ファイルの初期化) |
| 20 | + - [4. ワンクリック起動](README_ja.md#ワンクリック起動) |
| 21 | + - [5. 起動インターフェースの例](README_ja.md#起動インターフェースの例) |
| 22 | +- [お問い合わせ](README_ja.md#お問い合わせ) |
| 23 | + |
| 24 | +## イントロ |
| 25 | + |
| 26 | +🤖️ [langchain](https://github.com/hwchase17/langchain) のアイデアを用いて実装された、ローカルナレッジベースに基づく Q&A アプリケーション。 |
| 27 | +目標は、中国のシナリオとオープンソースモデルに親和性があり、オフラインとオンラインの両方で実行可能な KBQA(ナレッジベースの Q&A)ソリューションを構築することです。 |
| 28 | + |
| 29 | +💡 [document.ai](https://github.com/GanymedeNil/document.ai) と [ChatGLM-6B Pull Request](https://github.com/THUDM/ChatGLM-6B/pull/216) に触発され、 |
| 30 | +プロセス全体を通してオープンソースモデルまたはリモート LLM api を使用して実装することができるローカルナレッジベースの質問応答アプリケーションを構築します。 |
| 31 | +このプロジェクトの最新バージョンでは、[FastChat](https://github.com/lm-sys/FastChat) を使用して、Vicuna、Alpaca、LLaMA、Koala、RWKV、その他多くのモデルにアクセスしています。 |
| 32 | +このプロジェクトは [langchain](https://github.com/langchain-ai/langchain) に依存し、[FastAPI](https://github.com/tiangolo/fastapi) に基づいて提供されるAPIを通してサービスを呼び出したり、 |
| 33 | +[Streamlit](https://github.com/streamlit/streamlit) に基づいて WebUI を使ったりすることをサポートしています。 |
| 34 | + |
| 35 | +✅ オープンソースの LLM と Embedding モデルに依存して、このプロジェクトはフルプロセスの **オフラインプライベートデプロイメント** を実現することができます。 |
| 36 | +同時に、本プロジェクトは OpenAI GPT API や Zhipu API の呼び出しにも対応しており、今後も様々な機種やリモート API へのアクセスを拡大していきます。 |
| 37 | + |
| 38 | +⛓️ このプロジェクトの実施原則を下のグラフに示します。主なプロセスは以下の通りです: |
| 39 | +ファイルの読み込み -> テキストの読み込み -> テキストのセグメンテーション -> テキストのベクトル化 -> 質問のベクトル化 -> 質問ベクトルと最も似ている `top-k` をテキストベクトルでマッチング -> マッチしたテキストをコンテキストと質問として `prompt` に追加 -> 回答を生成するために `LLM` に送信。 |
| 40 | + |
| 41 | +📺[video introduction](https://www.bilibili.com/video/BV13M4y1e7cN/?share_source=copy_web&vd_source=e6c5aafe684f30fbe41925d61ca6d514) |
| 42 | + |
| 43 | + |
| 44 | + |
| 45 | +文書プロセスの側面からの主なプロセス分析: |
| 46 | + |
| 47 | + |
| 48 | + |
| 49 | +🚩 トレーニングやファインチューニングはプロジェクトには含まれないが、これらを行うことで必ずパフォーマンスを向上させることができます。 |
| 50 | + |
| 51 | +🌐 [AutoDL イメージ](registry.cn-beijing.aliyuncs.com/chatchat/chatchat:0.2.5)がサポートされ、v13 では v0.2.9 にアップデートされました。 |
| 52 | + |
| 53 | +🐳 [Docker イメージ](registry.cn-beijing.aliyuncs.com/chatchat/chatchat:0.2.7) |
| 54 | + |
| 55 | +## ペインポイントへの対応 |
| 56 | + |
| 57 | +このプロジェクトは、完全にローカライズされた推論によってナレッジベースを強化するソリューションであり、特にデータセキュリティと企業向けのプライベートな展開の問題に取り組んでいます。 |
| 58 | +このオープンソースソリューションは Apache ライセンスに基づき、無償で商用利用できます。 |
| 59 | +私たちは、市場で入手可能な主流のローカル大予言モデルや Embedding モデル、オープンソースのローカルベクターデータベースをサポートしています。 |
| 60 | +対応機種とデータベースの詳細については、[Wiki](https://github.com/chatchat-space/Langchain-Chatchat/wiki/) をご参照ください。 |
| 61 | + |
| 62 | +## クイックスタート |
| 63 | + |
| 64 | +### 環境セットアップ |
| 65 | + |
| 66 | +まず、マシンにPython 3.10がインストールされていることを確認してください。 |
| 67 | + |
| 68 | +``` |
| 69 | +$ python --version |
| 70 | +Python 3.10.12 |
| 71 | +``` |
| 72 | + |
| 73 | +次に、仮想環境を作成し、プロジェクトの依存関係を仮想環境内にインストールする。 |
| 74 | + |
| 75 | +```shell |
| 76 | + |
| 77 | +# リポジトリをクローン |
| 78 | +$ git clone https://github.com/chatchat-space/Langchain-Chatchat.git |
| 79 | + |
| 80 | +# ディレクトリに移動 |
| 81 | +$ cd Langchain-Chatchat |
| 82 | + |
| 83 | +# すべての依存関係をインストール |
| 84 | +$ pip install -r requirements.txt |
| 85 | +$ pip install -r requirements_api.txt |
| 86 | +$ pip install -r requirements_webui.txt |
| 87 | + |
| 88 | +# デフォルトの依存関係には、基本的な実行環境(FAISS ベクターライブラリ)が含まれます。milvus/pg_vector などのベクターライブラリを使用する場合は、requirements.txt 内の対応する依存関係のコメントを解除してからインストールしてください。 |
| 89 | +``` |
| 90 | +LangChain-Chachat `0.2.x` シリーズは Langchain `0.0.x` シリーズ用です。Langchain `0.1.x` シリーズをお使いの場合は、ダウングレードする必要があります。 |
| 91 | + |
| 92 | +### モデルをダウンロード |
| 93 | + |
| 94 | +このプロジェクトをローカルまたはオフライン環境で実行する必要がある場合は、まずプロジェクトに必要なモデルをダウンロードする必要があります。 |
| 95 | +通常、オープンソースの LLM と Embedding モデルは Hugging Face からダウンロードできる。 |
| 96 | + |
| 97 | +このプロジェクトで使用されているデフォルトの LLM モデルである [THUDM/chatglm2-6b](https://huggingface.co/THUDM/chatglm2-6b)と、Embedding モデル [moka-ai/m3e-base](https://huggingface.co/moka-ai/m3e-base) を例にとると、次のようになります: |
| 98 | + |
| 99 | +モデルをダウンロードするには、まず [Git LFS](https://docs.github.com/zh/repositories/working-with-files/managing-large-files/installing-git-large-file-storage) をインストールし、次のように実行する必要があります: |
| 100 | + |
| 101 | +```Shell |
| 102 | +$ git lfs install |
| 103 | +$ git clone https://huggingface.co/THUDM/chatglm2-6b |
| 104 | +$ git clone https://huggingface.co/moka-ai/m3e-base |
| 105 | +``` |
| 106 | + |
| 107 | +### ナレッジベースと設定ファイルの初期化 |
| 108 | + |
| 109 | +以下の手順に従って、ナレッジベースと設定ファイルを初期化してください: |
| 110 | + |
| 111 | +```shell |
| 112 | +$ python copy_config_example.py |
| 113 | +$ python init_database.py --recreate-vs |
| 114 | + ``` |
| 115 | + |
| 116 | +### ワンクリック起動 |
| 117 | + |
| 118 | +プロジェクトを開始するには、次のコマンドを実行します: |
| 119 | + |
| 120 | +```shell |
| 121 | +$ python startup.py -a |
| 122 | +``` |
| 123 | + |
| 124 | +### 起動インターフェースの例 |
| 125 | + |
| 126 | +1. FastAPI docs インターフェース |
| 127 | + |
| 128 | + |
| 129 | + |
| 130 | +2. webui ページ |
| 131 | + |
| 132 | +- Web UI ダイアログページ: |
| 133 | + |
| 134 | + |
| 135 | + |
| 136 | +- Web UI ナレッジベースマネジメントページ: |
| 137 | + |
| 138 | + |
| 139 | + |
| 140 | +### 注 |
| 141 | + |
| 142 | +上記の手順はクイックスタートのために提供されています。より多くの機能が必要な場合や、起動方法をカスタマイズしたい場合は、[Wiki](https://github.com/chatchat-space/Langchain-Chatchat/wiki/) を参照してください。 |
| 143 | + |
| 144 | +--- |
| 145 | + |
| 146 | +## お問い合わせ |
| 147 | + |
| 148 | +### Telegram |
| 149 | + |
| 150 | +[](https://t.me/+RjliQ3jnJ1YyN2E9) |
| 151 | + |
| 152 | +### WeChat グループ |
| 153 | + |
| 154 | +<img src="img/qr_code_67.jpg" alt="二维码" width="300" height="300" /> |
| 155 | + |
| 156 | +### WeChat 公式アカウント |
| 157 | + |
| 158 | +<img src="img/official_wechat_mp_account.png" alt="图片" width="900" height="300" /> |
0 commit comments