internet_ml/web/backend/api/nlp/nocontext/views.py

52 lines
1.3 KiB
Python

# type: ignore
import os
import dotenv
from rest_framework import status
from rest_framework.response import Response
from rest_framework.views import APIView
import internet_ml.NLP.no_context.QA
dotenv_path = os.path.join(os.path.dirname(__file__), ".env")
dotenv.load_dotenv(dotenv_path)
class QAView(APIView):
def post(self, request):
"""
{"question": "Who is Elon Musk?"}
{
"error": "",
"response": {
'score': VAL,
'start': VAL,
'end': VAL,
'answer': 'THE_ANSWER'
},
"resources": [
'SOME_LINKS_HERE'
]
}
or
{
"error": "",
"status": "",
"detail": "",
}
so check error if it exists first and then for other stuff
"""
answer = internet_ml.NLP.no_context.QA.answer(
str(request.data["question"]),
str(os.environ.get("GOOGLE_SEARCH_API_KEY")),
str(os.environ.get("GOOGLE_SEARCH_ENGINE_ID")),
str(os.environ.get("OPENAI_API_KEY")),
)
content = {
"error": "",
"question": str(request.data["question"]),
"response": answer[0],
"resources": answer[1],
}
return Response(content)