벡터 스토어 API 프로젝트에 오신 것을 환영합니다! 이 프로젝트는 Fastapi, Langchain 및 Chroma와 같은 벡터 데이터베이스의 전력을 활용하여 벡터를 삽입하고 저장하는 데 효율적이고 확장 가능한 API를 제공하는 것을 목표로합니다. 텍스트, 이미지 또는 벡터로 변환하고 유사성 검색을 통해 검색 해야하는 데이터를 다루 든이 API는 귀하를 다루었습니다. ?
이 지침은 개발 및 테스트 목적으로 프로젝트 사본을 로컬 컴퓨터에서 실행할 것입니다.
작업 1 : 프로젝트가 종속성을 관리하기위한 가상 환경 설정.
작업 2 : PIP를 사용하여 FastApi 및 Uvicorn (ASGI 서버)을 설치하십시오.
작업 3 : Chroma를 설치하거나 다른 벡터 데이터베이스 클라이언트 라이브러리 프로젝트가 사용됩니다.
작업 1 : 필요한 엔드 포인트를 정의하십시오. 다음을 고려하십시오.
파일을 업로드하기위한 엔드 포인트 또는 벡터화 할 텍스트.
유사성 검색을 사용하여 저장된 벡터를 통해 검색 할 종점.
특정 벡터 또는 해당 메타 데이터를 나열하거나 검색하는 엔드 포인트.
작업 2 : Pydantic 모델을 사용하여 엔드 포인트에 대한 요청 및 응답 모델을 계획하십시오.
작업 1 : 파일/텍스트 업로드 엔드 포인트를 구현하십시오.
입력 데이터를 구문 분석합니다.
입력을 벡터 형태에 포함시킵니다 (이미지의 텐서 플로우 또는 텍스트를위한 얼굴의 변압기와 같은 외부 라이브러리 또는 임베딩을위한 서비스가 필요할 수 있음).
관련 메타 데이터로 벡터를 Chroma에 보관하십시오.
작업 2 : 검색 엔드 포인트를 구현하십시오.
쿼리를 입력으로 받아들이고 벡터로 변환하십시오.
Chroma에서 유사성 검색을 수행하십시오.
가장 가까운 경기를 반환하십시오.
작업 3 : 필요에 따라 보조 엔드 포인트 구현 (목록, 업데이트 또는 삭제).
작업 1 : 적절한 벡터 데이터베이스를 선택하십시오 (이 경우 Chroma).
작업 2 : 벡터의 데이터 저장 로직 구현.
작업 3 : Chroma의 검색 기능을 사용하여 검색 및 검색 논리를 구현하십시오.
작업 1 : API 엔드 포인트에 대한 단위 테스트를 작성하여 예상대로 작동하는지 확인하십시오.
작업 2 : Chroma의 벡터 저장 및 검색 기능 테스트.
작업 3 : 전체 API의 종료 []에서 [] END 테스트를 수행하십시오.
작업 1 : Swagger UI에서 Fastapi의 Build []를 사용하여 API를 문서화합니다.
과제 2 : 배포 프로젝트 준비 (컨테이너 화에는 Docker 사용을 고려).
작업 3 : API 배포 (옵션에는 Heroku, AWS 또는 GCP가 포함됩니다).
공헌은 오픈 소스 커뮤니티를 배우고, 영감을주고, 창조 할 수있는 놀라운 장소입니다. 당신이하는 모든 기여는 대단히 감사합니다 . ??
이 프로젝트는 MIT 라이센스에 따라 라이센스가 부여됩니다. 자세한 내용은 License.md 파일을 참조하십시오.