semantic search coursework
1.0.0
대학 프로젝트로 Java로 작성된 시맨틱 검색 엔진
경고
이 프로젝트는 절대적으로 생산 준비가 아닙니다 . 그것은 개념 증명으로 대학 프로젝트로 개발되었습니다. 이 메시지가 보이면 이미 마이크로 서비스 아키텍처를 기반으로하는이 프로젝트의 새로운 버전을 개발하고 있으며 훨씬 더 최적화되어 있음을 의미합니다.
일부 ENV VAR을 정의해야합니다.
export MILVUS_HOST=localhost MILVUS_PORT=19530 MONGODB_URI=mongodb://localhost:27017/ RABBITMQ_HOST=localhost RABBITMQ_USERNAME=user RABBITMQ_PASSWORD=pass MODEL_PATH=models/model.onnx ONNX 형식의 임베딩 모델이 필요합니다. 이 모델을 사용했습니다 : 공적분/labse-en-ru. 변환하기 위해이 기사에서 유틸리티를 사용했습니다 : Onnx로 내보내기. 또한 벡터 차원이 768 인 Onnx 형식의 임베딩 모델을 사용할 수 있습니다. 모델을 models/model.onnx 와 같은 모델 폴더에 넣으십시오.
프로젝트를 구축하고 실행하십시오.
./gradlew runAPI는 포트 4567에서 사용할 수 있습니다
메모
이 프로젝트는 원하는만큼 많은 인덱싱 작업자를 운영 할 수 있다는 사실에 중점을두고 작성되었습니다. 그러나 마감일이 빡빡하기 때문에 최적화 시간이 충분하지 않았으며 각 인덱싱 작업자는 모델을 메모리에로드합니다. 주의해서 실행하십시오!
흐름도 TD
u (사용자)
A (사용자 API)
S (검색 서비스)
나 (인덱싱 서비스)
E (임베딩 모델)
DM [(몽고)]
DV [(Milvus)]
r [(rabbitmq)]
u-> | API 요청 | 에이
a -> | 인덱싱 작업을 대기열로 전송합니다 | 아르 자형
R-> | 수신 작업 | 나
i-> | 키워드 저장 | DM
i-> | 더 많은 인덱싱 작업 생성 | 아르 자형
i-> | 텍스트에서 추출 | 이자형
e-> | 매장 내장 | DV
A-> | 검색 요청 | 에스
s-> | 쿼리에서 추출 | 이자형
s-> | 키워드 별 쿼리 | DM
S-> | 쿼리 | DV