公式ウェブサイト • ドキュメント • Discord
NEW:最新情報やニュースを入手するには、メーリング リストに登録してください。
Indox Retrieval Augmentation は、テキスト ファイル、PDF、HTML、Markdown、LaTeX などの幅広いドキュメント タイプからの情報抽出を合理化するように設計された革新的なアプリケーションです。構造化か非構造化かに関係なく、Indox は関連データを効率的に抽出するための強力なツールセットをユーザーに提供します。
Indox Retrieval Augmentation は、テキスト ファイル、PDF、HTML、Markdown、LaTeX などの幅広いドキュメント タイプからの情報抽出を合理化するように設計された革新的なアプリケーションです。構造化か非構造化かに関係なく、Indox は関連データを効率的に抽出するための強力なツールセットをユーザーに提供します。その重要な機能の 1 つは、プライマリ チャンクをインテリジェントにクラスタリングしてより堅牢なグループを形成し、抽出された情報の品質と関連性を高める機能です。 Indox は、適応性とユーザー中心の設計に重点を置き、今後のリリースでさらに多くの機能を予定しており、将来に対応した機能を提供することを目指しています。 Indox がどのように文書処理ワークフローに革命を起こし、データ検索のニーズを明確にし、整理することができるかを一緒に探っていきましょう。
?モデルのサポート | 実装済み | 説明 |
---|---|---|
オラマ (例: Llama3) | ✅ | Ollama を利用したローカル埋め込みと LLM モデル |
ハグ顔 | ✅ | HuggingFace を利用したローカル埋め込みと LLM モデル |
ミストラル | ✅ | Cohereによる埋め込みとLLMモデル |
Google(ジェミニなど) | ✅ | Google による埋め込みモデルと生成モデル |
OpenAI (例: GPT4) | ✅ | OpenAIによるモデルの埋め込みと生成 |
Indox API 経由でサポートされるモデル | 実装済み | 説明 |
---|---|---|
オープンアイ | ✅ | Indox API からの OpenAi モデルの埋め込みと LLm |
ミストラル | ✅ | Indox API からの埋め込みと LLm ミストラル モデル |
人間的 | Indox API からの埋め込みと LLm 人間モデル |
?ローダーとスプリッター | 実装済み | 説明 |
---|---|---|
シンプルなPDF | ✅ | PDFをインポート |
非構造化IO | ✅ | 非構造化経由でデータをインポートする |
クラスタ化されたロードと分割 | ✅ | PDFとテキストをロードします。追加のクラスタリング層を追加する |
RAGの機能 | 実装済み | 説明 |
---|---|---|
ハイブリッド検索 | キーワード検索と組み合わせたセマンティック検索 | |
セマンティック キャッシング | ✅ | 意味論的な意味に基づいて保存および取得された結果 |
クラスター化されたプロンプト | ✅ | より小さなチャンクを取得し、クラスタリングと要約を実行します。 |
エージェントラグ | ✅ | より信頼性の高い回答を生成し、必要に応じてコンテキストと Web 検索をランク付けします |
高度なクエリ | LLM 評価に基づくタスクの委任 | |
再ランキング | ✅ | コンテキストに基づいて結果を再ランク付けして結果を改善する |
カスタマイズ可能なメタデータ | メタデータを自由に制御 |
?クールボーナス | 実装済み | 説明 |
---|---|---|
ドッカーのサポート | Indox は Docker 経由でデプロイ可能です | |
カスタマイズ可能なフロントエンド | Indox のフロントエンドはフロントエンド経由で完全にカスタマイズ可能です |
☑️ 例 | Colab で実行する |
---|---|
Indox API (OpenAi) | |
ミストラル (非構造化を使用) | |
OpenAi (クラスター分割を使用) | |
ハグフェイスモデル(ミストラル) | |
オラマ | |
IndoxJudge で評価する |
次のコマンドは、最新の安定した inDox をインストールします。
pip install Indox
最新の開発バージョンをインストールするには、次のコマンドを実行します。
pip install git+https://github.com/osllmai/inDox@master
リポジトリのクローンを作成し、ディレクトリに移動します。
git clone https://github.com/osllmai/inDox.git
cd inDox
必要な Python パッケージをインストールします。
pip install -r requirements.txt
このプロジェクトをローカル IDE で実行している場合は、Python 環境を作成して、すべての依存関係が正しく管理されていることを確認してください。以下の手順に従って、 indox
という名前の仮想環境をセットアップできます。
python -m venv indox
indox S cripts a ctivate
python3 -m venv indox
source indox/bin/activate
仮想環境がアクティブ化されたら、次を実行して必要な依存関係をインストールします。
pip install -r requirements.txt
pip install indox
pip install openai
pip install chromadb
このプロジェクトをローカル IDE で実行している場合は、Python 環境を作成して、すべての依存関係が正しく管理されていることを確認してください。以下の手順に従って、 indox
という名前の仮想環境をセットアップできます。
python -m venv indox
indox_judge S cripts a ctivate
python3 -m venv indox
2. **Activate the virtual environment:**
```bash
source indox/bin/activate
仮想環境がアクティブ化されたら、次を実行して必要な依存関係をインストールします。
pip install -r requirements.txt
まず、環境から API キーをロードする必要があります。
import os
from dotenv import load_dotenv
load_dotenv ()
OPENAI_API_KEY = os . environ [ 'OPENAI_API_KEY' ]
Indox パッケージから必要なクラスをインポートします。
from indox import IndoxRetrievalAugmentation
from indox . llms import OpenAi
from indox . embeddings import OpenAiEmbedding
IndoxRetrievalAugmentation のインスタンスを作成します。
Indox = IndoxRetrievalAugmentation ()
openai_qa = OpenAiQA ( api_key = OPENAI_API_KEY , model = "gpt-3.5-turbo-0125" )
openai_embeddings = OpenAiEmbedding ( model = "text-embedding-3-small" , openai_api_key = OPENAI_API_KEY )
file_path = "sample.txt"
このセクションでは、 unstructured
ライブラリを利用してドキュメントをロードし、タイトルごとにドキュメントを分割します。この方法は、ドキュメントをさらに処理するために管理しやすいセクションに整理するのに役立ちます。
from indox . data_loader_splitter import UnstructuredLoadAndSplit
loader_splitter = UnstructuredLoadAndSplit ( file_path = file_path )
docs = loader_splitter . load_and_chunk ()
Starting processing...
End Chunking process.
文書チャンクをベクター ストアに保存することは、効率的な取得と検索操作を可能にするために重要です。テキスト データをベクトル表現に変換し、ベクトル ストアに保存することで、類似性検索やその他のベクトル ベースの操作を迅速に実行できます。
from indox . vector_stores import ChromaVectorStore
db = ChromaVectorStore ( collection_name = "sample" , embedding = embed_openai )
Indox . connect_to_vectorstore ( db )
Indox . store_in_vectorstore ( docs )
2024-05-14 15:33:04,916 - INFO - Anonymized telemetry enabled. See https://docs.trychroma.com/telemetry for more information.
2024-05-14 15:33:12,587 - INFO - HTTP Request: POST https://api.openai.com/v1/embeddings "HTTP/1.1 200 OK"
2024-05-14 15:33:13,574 - INFO - Document added successfully to the vector store.
Connection established successfully.
query = "how cinderella reach her happy ending?"
retriever = indox . QuestionAnswer ( vector_database = db , llm = openai_qa , top_k = 5 )
retriever . invoke ( query )
2024-05-14 15:34:55,380 - INFO - HTTP Request: POST https://api.openai.com/v1/embeddings "HTTP/1.1 200 OK"
2024-05-14 15:35:01,917 - INFO - HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK"
'Cinderella reached her happy ending by enduring mistreatment from her step-family, finding solace and help from the hazel tree and the little white bird, attending the royal festival where the prince recognized her as the true bride, and ultimately fitting into the golden shoe that proved her identity. This led to her marrying the prince and living happily ever after.'
retriever . context
["from the hazel-bush. Cinderella thanked him, went to her mother'snngrave and planted the branch on it, and wept so much that the tearsnnfell down on it and watered it. And it grew and became a handsomenntree. Thrice a day cinderella went and sat beneath it, and wept andnnprayed, and a little white bird always came on the tree, and ifnncinderella expressed a wish, the bird threw down to her what shennhad wished for.nnIt happened, however, that the king gave orders for a festival",
'worked till she was weary she had no bed to go to, but had to sleepnnby the hearth in the cinders. And as on that account she alwaysnnlooked dusty and dirty, they called her cinderella.nnIt happened that the father was once going to the fair, and hennasked his two step-daughters what he should bring back for them.nnBeautiful dresses, said one, pearls and jewels, said the second.nnAnd you, cinderella, said he, what will you have. Father',
'face he recognized the beautiful maiden who had danced withnnhim and cried, that is the true bride. The step-mother andnnthe two sisters were horrified and became pale with rage, he,nnhowever, took cinderella on his horse and rode away with her. Asnnthey passed by the hazel-tree, the two white doves cried -nnturn and peep, turn and peep,nnno blood is in the shoe,nnthe shoe is not too small for her,nnthe true bride rides with you,nnand when they had cried that, the two came flying down and',
"to send her up to him, but the mother answered, oh, no, she isnnmuch too dirty, she cannot show herself. But he absolutelynninsisted on it, and cinderella had to be called. She firstnnwashed her hands and face clean, and then went and bowed downnnbefore the king's son, who gave her the golden shoe. Then shennseated herself on a stool, drew her foot out of the heavynnwooden shoe, and put it into the slipper, which fitted like annglove. And when she rose up and the king's son looked at her",
'slippers embroidered with silk and silver. She put on the dressnnwith all speed, and went to the wedding. Her step-sisters and thennstep-mother however did not know her, and thought she must be annforeign princess, for she looked so beautiful in the golden dress.nnThey never once thought of cinderella, and believed that she wasnnsitting at home in the dirt, picking lentils out of the ashes. Thennprince approached her, took her by the hand and danced with her.']
.----------------. .-----------------. .----------------. .----------------. .----------------.
| .--------------. || .--------------. || .--------------. || .--------------. || .--------------. |
| | _____ | || | ____ _____ | || | ________ | || | ____ | || | ____ ____ | |
| | |_ _| | || ||_ |_ _| | || | |_ ___ `. | || | .' `. | || | |_ _||_ _| | |
| | | | | || | | | | | || | | | `. | || | / .--. | || | / / | |
| | | | | || | | | | | | || | | | | | | || | | | | | | || | > `' < | |
| | _| |_ | || | _| |_ |_ | || | _| |___.' / | || | `--' / | || | _/ /'` _ | |
| | |_____| | || ||_____|____| | || | |________.' | || | `.____.' | || | |____||____| | |
| | | || | | || | | || | | || | | |
| '--------------' || '--------------' || '--------------' || '--------------' || '--------------' |
'----------------' '----------------' '----------------' '----------------' '----------------'