# Solr와 연동하는 DeepQA API Solr 검색엔진과 연동하는 DeepQA 백엔드 실행 안내입니다. - GPU 서버 내 API 코드 위치: /home/aicc/mrcqna/mrcqna_package/api/mrcqna_api/apis/mrcqna_solr.py - 응답 형식 수정 방법: mrcqna_solr.py 파일 내 “is_return_paragraph”, “is_return_sentence”에 따라 응답 형식이 결정됩니다. ``` predict_result = bert_mrc.predict(question=question, context=context['CONTEXT'], top_k=top_k, # is_return_paragraph=True, # is_return_sentence=True, doc_stride=457, max_query_length=52) ``` ## config 설정 - API config 파일 위치: /home/aicc/mrcqna/mrcqna_package/api/mrcqna_api/setting/config.py ``` # ip, port 설정 HOST_IP = "0.0.0.0" PORT = "5000" SOLR_IP = "127.0.0.1:8983" # url prefix 설정 API_URL_PREFIX = "/bert" # default ``` ## docker를 통한 실행 - docker를 통한 API 실행: API Dockerfile 위치: /data/aitech21/aicc/bert_mrc/docker/uwsgi_bert ``` # docker 이미지 빌드 cd /data/aitech21/aicc/bert_mrc/docker/uwsgi_bert docker image build -t mrc/api:1.1 . # 첫번째 서버 실행 docker container run -d --expose 80 -e LC_ALL=C.UTF-8 -e NVIDIA_VISIBLE_DEVICES=0 -v /home/aicc:/home/aicc -v /data/aitech21/aicc:/data/aitech21/aicc -it --rm --name mrc_uwsgi1 mrc/api:1.1 /bin/bash docker exec -it mrc_uwsgi1 /bin/bash uwsgi /home/aicc/mrcqna/mrcqna_package/api/mrcqna_api/uwsgi.ini # 두번째 서버 실행 docker container run -d --expose 80 -e LC_ALL=C.UTF-8 -e NVIDIA_VISIBLE_DEVICES=1 -v /home/aicc:/home/aicc -v /data/aitech21/aicc:/data/aitech21/aicc -it --rm --name mrc_uwsgi2 mrc/api:1.1 /bin/bash docker exec -it mrc_uwsgi2 /bin/bash uwsgi /home/aicc/mrcqna/mrcqna_package/api/mrcqna_api/uwsgi.ini # 첫번째 서버만 실행시켜도 동작합니다. # 2개의 서버를 실행시키면 로드밸런싱이 동작합니다. ``` - docker를 통한 nginx 실행 nginx Dockerfile 위치: /data/aitech21/aicc/bert_mrc/docker/nginx_bert ``` # docker 이미지 빌드 cd /data/aitech21/aicc/bert_mrc/docker/nginx_bert docker image build -t api/nginx_bert . # nginx 실행 docker container run -d -p 5000:5000 --link mrc_uwsgi1:uwsgi_bert1 --link mrc_uwsgi2:uwsgi_bert2 --rm --name nginx_bert api/nginx_bert ``` nginx와 연결되는 container명: mrc_uwsgi1, mrc_uwsgi2 ## 접속 url - DeepQA swagger UI url: http://10.214.35.224:5000/bert/