공식 웹사이트 • 문서 • Discord
신규: 업데이트 및 뉴스를 보려면 메일링 리스트를 구독하세요!
Indox Retrieval Augmentation 은 텍스트 파일, PDF, HTML, Markdown 및 LaTeX를 포함한 광범위한 문서 유형에서 정보 추출을 간소화하도록 설계된 혁신적인 애플리케이션입니다. 구조적이든 비구조적이든 Indox는 사용자에게 관련 데이터를 효율적으로 추출할 수 있는 강력한 도구 세트를 제공합니다.
Indox Retrieval Augmentation은 텍스트 파일, PDF, HTML, Markdown 및 LaTeX를 포함한 광범위한 문서 유형에서 정보 추출을 간소화하도록 설계된 혁신적인 애플리케이션입니다. 구조적이든 비구조적이든 Indox는 사용자에게 관련 데이터를 효율적으로 추출할 수 있는 강력한 도구 세트를 제공합니다. 주요 기능 중 하나는 기본 청크를 지능적으로 클러스터링하여 보다 강력한 그룹을 형성하고 추출된 정보의 품질과 관련성을 향상시키는 기능입니다. 적응성과 사용자 중심 디자인에 초점을 맞춘 Indox는 향후 릴리스에 계획된 더 많은 기능을 통해 미래 지향적인 기능을 제공하는 것을 목표로 합니다. Indox가 어떻게 문서 처리 워크플로를 혁신하여 데이터 검색 요구 사항에 명확성과 체계성을 부여할 수 있는지 알아보세요.
? 모델 지원 | 구현됨 | 설명 |
---|---|---|
올라마(예: Llama3) | ✅ | Ollama가 제공하는 로컬 임베딩 및 LLM 모델 |
포옹얼굴 | ✅ | HuggingFace가 제공하는 로컬 임베딩 및 LLM 모델 |
미스트랄 | ✅ | Cohere의 임베딩 및 LLM 모델 |
Google(예: Gemini) | ✅ | Google의 임베딩 및 생성 모델 |
OpenAI(예: GPT4) | ✅ | OpenAI를 통한 임베딩 및 생성 모델 |
Indox Api를 통해 지원되는 모델 | 구현됨 | 설명 |
---|---|---|
오픈아이 | ✅ | Indox Api의 임베딩 및 LLm OpenAi 모델 |
미스트랄 | ✅ | Indox Api의 임베딩 및 LLm Mistral 모델 |
인류학 | Indox Api의 임베딩 및 LLm 인류 모델 |
? 로더 및 스플리터 | 구현됨 | 설명 |
---|---|---|
간단한 PDF | ✅ | PDF 가져오기 |
구조화되지 않은IO | ✅ | 구조화되지 않은 데이터 가져오기 |
클러스터링된 로드 및 분할 | ✅ | PDF와 텍스트를 로드합니다. 추가 클러스터링 레이어 추가 |
RAG 기능 | 구현됨 | 설명 |
---|---|---|
하이브리드 검색 | 키워드 검색과 결합된 의미 검색 | |
의미론적 캐싱 | ✅ | 의미론적 의미를 기반으로 저장 및 검색된 결과 |
클러스터된 프롬프트 | ✅ | 더 작은 청크를 검색하고 클러스터링 및 요약 수행 |
에이전트 래그 | ✅ | 더 신뢰할 수 있는 답변을 생성하고 필요한 경우 컨텍스트 및 웹 검색 순위를 지정합니다. |
고급 쿼리 | LLM 평가에 따른 업무위임 | |
순위 재지정 | ✅ | 향상된 결과를 위해 상황에 따라 결과 순위를 다시 매깁니다. |
맞춤형 메타데이터 | 메타데이터에 대한 자유로운 제어 |
? 멋진 보너스 | 구현됨 | 설명 |
---|---|---|
도커 지원 | Indox는 Docker를 통해 배포 가능 | |
사용자 정의 가능한 프런트엔드 | Indox의 프런트엔드는 프런트엔드를 통해 완벽하게 사용자 정의할 수 있습니다. |
✔️ 예 | Colab에서 실행 |
---|---|
인독스 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.']
.----------------. .-----------------. .----------------. .----------------. .----------------.
| .--------------. || .--------------. || .--------------. || .--------------. || .--------------. |
| | _____ | || | ____ _____ | || | ________ | || | ____ | || | ____ ____ | |
| | |_ _| | || ||_ |_ _| | || | |_ ___ `. | || | .' `. | || | |_ _||_ _| | |
| | | | | || | | | | | || | | | `. | || | / .--. | || | / / | |
| | | | | || | | | | | | || | | | | | | || | | | | | | || | > `' < | |
| | _| |_ | || | _| |_ |_ | || | _| |___.' / | || | `--' / | || | _/ /'` _ | |
| | |_____| | || ||_____|____| | || | |________.' | || | `.____.' | || | |____||____| | |
| | | || | | || | | || | | || | | |
| '--------------' || '--------------' || '--------------' || '--------------' || '--------------' |
'----------------' '----------------' '----------------' '----------------' '----------------'