update: look at todo
parent
7da9bad2af
commit
c541ed92e5
|
@ -1,2 +1,4 @@
|
|||
- Get package to use .env from django
|
||||
- [ ] make frontend
|
||||
- [ ] find better way of using .env from django (possibly)
|
||||
- [x] Get package to use .env from django
|
||||
- [x] IMP IMP work on API_KEY fixing config or use .env
|
||||
|
|
10
Makefile
10
Makefile
|
@ -123,9 +123,17 @@ pytestcache-remove:
|
|||
pytestcache-remove:
|
||||
find . | grep -E ".log" | xargs rm -rf
|
||||
|
||||
.PHONY: env-remove
|
||||
pytestcache-remove:
|
||||
find . | grep -E ".env" | xargs rm -rf
|
||||
|
||||
.PHONY: env-fishremove
|
||||
pytestcache-remove:
|
||||
find . | grep -E ".env-fish" | xargs rm -rf
|
||||
|
||||
.PHONY: build-remove
|
||||
build-remove:
|
||||
rm -rf build/
|
||||
|
||||
.PHONY: cleanup
|
||||
cleanup: pycache-remove dsstore-remove mypycache-remove ipynbcheckpoints-remove pytestcache-remove pkl-remove log-remove
|
||||
cleanup: pycache-remove dsstore-remove mypycache-remove ipynbcheckpoints-remove pytestcache-remove pkl-remove log-remove env-remove env-fishremove
|
||||
|
|
|
@ -8,8 +8,6 @@ from pathlib import Path
|
|||
import dotenv
|
||||
from transformers import pipeline
|
||||
|
||||
dotenv.load_dotenv()
|
||||
|
||||
logging.basicConfig(
|
||||
filename="QA.log",
|
||||
filemode="w",
|
||||
|
@ -27,8 +25,6 @@ def answer(
|
|||
query: str, GOOGLE_SEARCH_API_KEY: str, GOOGLE_SEARCH_ENGINE_ID: str
|
||||
) -> tuple[Any, list[str]]:
|
||||
QA_MODEL: Any = pipeline("question-answering")
|
||||
# GOOGLE_SEARCH_API_KEY = str(os.getenv("INTERNET_ML_GOOGLE_API"))
|
||||
# GOOGLE_SEARCH_ENGINE_ID = str(os.getenv("INTERNET_ML_GOOGLE_SEARCH_ENGINE_ID"))
|
||||
results: tuple[list[str], list[str]] = internet.Google(
|
||||
query, GOOGLE_SEARCH_API_KEY, GOOGLE_SEARCH_ENGINE_ID
|
||||
).google()
|
||||
|
@ -41,6 +37,6 @@ def answer(
|
|||
return answer
|
||||
|
||||
|
||||
# print(answer("Who is the author of TinTin?"))
|
||||
|
||||
# print(os.environ)
|
||||
# print(answer("Who is Elon Musk?"))
|
||||
# def custom_answer
|
||||
|
|
|
@ -9,11 +9,6 @@ from pathlib import Path
|
|||
import dotenv
|
||||
import requests
|
||||
|
||||
dotenv.load_dotenv()
|
||||
|
||||
# GOOGLE_SEARCH_API_KEY = str(os.environ["INTERNET_ML_GOOGLE_API"])
|
||||
# GOOGLE_SEARCH_ENGINE_ID = str(os.environ["INTERNET_ML_GOOGLE_SEARCH_ENGINE_ID"])
|
||||
|
||||
HTTP_USERAGENT: dict[str, str] = {
|
||||
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3"
|
||||
}
|
||||
|
@ -54,6 +49,20 @@ class Google:
|
|||
) -> None:
|
||||
self.__GOOGLE_SEARCH_API_KEY: str = GOOGLE_SEARCH_API_KEY
|
||||
self.__GOOGLE_SEARCH_ENGINE_ID: str = GOOGLE_SEARCH_ENGINE_ID
|
||||
# dotenv_path = os.path.join(os.path.dirname(__file__), '.env')
|
||||
# dotenv.load_dotenv(dotenv_path)
|
||||
# self.__GOOGLE_SEARCH_API_KEY: str = ""
|
||||
# self.__GOOGLE_SEARCH_ENGINE_ID: str = ""
|
||||
# if (
|
||||
# "INTERNET_ML_GOOGLE_API" in os.environ
|
||||
# and "INTERNET_ML_GOOGLE_SEARCH_ENGINE_ID" in os.environ
|
||||
# ):
|
||||
# self.__GOOGLE_SEARCH_API_KEY = str(os.environ.get("INTERNET_ML_GOOGLE_API"))
|
||||
# self.__GOOGLE_SEARCH_ENGINE_ID = str(
|
||||
# os.environ.get("INTERNET_ML_GOOGLE_SEARCH_ENGINE_ID")
|
||||
# )
|
||||
# else:
|
||||
# exit("API KEYS")
|
||||
self.__num_res: int = (
|
||||
5
|
||||
if config.NLP_CONF_MODE == "speed"
|
||||
|
@ -62,8 +71,12 @@ class Google:
|
|||
self.__query = query
|
||||
self.__URL_EXTRACTOR: URLExtract = URLExtract()
|
||||
self.__urls: list[str] = self.__URL_EXTRACTOR.find_urls(query)
|
||||
self.__query = re.sub(
|
||||
r"\w+:\/{2}[\d\w-]+(\.[\d\w-]+)*(?:(?:\/[^\s/]*))*", "", self.__query
|
||||
self.__query = str(
|
||||
re.sub(
|
||||
r"\w+:\/{2}[\d\w-]+(\.[\d\w-]+)*(?:(?:\/[^\s/]*))*",
|
||||
"",
|
||||
str(self.__query),
|
||||
)
|
||||
)
|
||||
|
||||
def __get_urls(self: "Google") -> None:
|
||||
|
@ -152,10 +165,6 @@ class Google:
|
|||
return (self.__content, self.__urls)
|
||||
|
||||
|
||||
# def google(query: str) -> tuple[list[str], list[str]]:
|
||||
# return Google(query).google()
|
||||
|
||||
|
||||
"""
|
||||
Timing:
|
||||
import time
|
||||
|
|
|
@ -5,7 +5,7 @@ build-backend = "poetry.core.masonry.api"
|
|||
|
||||
[tool.poetry]
|
||||
name = "internet-ml"
|
||||
version = "1.0.6"
|
||||
version = "1.0.20"
|
||||
description = "Internet-ML: Allowing ML to connect to the internet"
|
||||
readme = "./.github/README.md"
|
||||
authors = ["Thamognya Kodi <contact@thamognya.com>"]
|
||||
|
|
|
@ -1,3 +0,0 @@
|
|||
from django.test import TestCase
|
||||
|
||||
# Create your tests here.
|
|
@ -1,25 +0,0 @@
|
|||
from typing import Any
|
||||
|
||||
import json
|
||||
|
||||
import internet_ml.NLP.no_context.QA
|
||||
|
||||
|
||||
def QA(
|
||||
query: str, INTERNET_ML_GOOGLE_API: str, INTERNET_ML_GOOGLE_SEARCH_ENGINE_ID: str
|
||||
) -> Any:
|
||||
try:
|
||||
answer = internet_ml.NLP.no_context.QA.answer(
|
||||
query, INTERNET_ML_GOOGLE_API, INTERNET_ML_GOOGLE_SEARCH_ENGINE_ID
|
||||
)
|
||||
content = json.dumps(
|
||||
{"error": "", "response": answer[0], "resources": answer[1]}
|
||||
)
|
||||
except:
|
||||
content = json.dumps(
|
||||
{"error": "Google API key not present in .env or environment"}
|
||||
)
|
||||
return content
|
||||
|
||||
|
||||
# print(QA("Who is Elon Musk?"))
|
|
@ -1,19 +1,18 @@
|
|||
import json
|
||||
import os
|
||||
|
||||
from dotenv import load_dotenv
|
||||
import dotenv
|
||||
from rest_framework import status
|
||||
from rest_framework.response import Response
|
||||
from rest_framework.views import APIView
|
||||
|
||||
from .tools import question_answer
|
||||
|
||||
load_dotenv()
|
||||
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, format=None):
|
||||
def post(self, request):
|
||||
"""
|
||||
{"question": "Who is Elon Musk?"}
|
||||
{
|
||||
|
@ -37,11 +36,14 @@ class QAView(APIView):
|
|||
so check error if it exists first and then for other stuff
|
||||
"""
|
||||
answer = internet_ml.NLP.no_context.QA.answer(
|
||||
request.POST.get("question"),
|
||||
str(os.getenv("INTERNET_ML_GOOGLE_API")),
|
||||
str(os.getenv("INTERNET_ML_GOOGLE_SEARCH_ENGINE_ID")),
|
||||
str(request.data["question"]),
|
||||
str(os.environ.get("INTERNET_ML_GOOGLE_API")),
|
||||
str(os.environ.get("INTERNET_ML_GOOGLE_SEARCH_ENGINE_ID")),
|
||||
)
|
||||
content = json.dumps(
|
||||
{"error": "", "response": answer[0], "resources": answer[1]}
|
||||
)
|
||||
return content
|
||||
content = {
|
||||
"error": "",
|
||||
"question": str(request.data["question"]),
|
||||
"response": answer[0],
|
||||
"resources": answer[1],
|
||||
}
|
||||
return Response(content)
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -17,6 +17,7 @@ django-stubs = "^1.13.1"
|
|||
djangorestframework = "^3.14.0"
|
||||
python-dotenv = "^0.21.0"
|
||||
django-environ = "^0.9.0"
|
||||
internet-ml = "^1.0.11"
|
||||
|
||||
[tool.mypy]
|
||||
plugins = ["mypy_django_plugin.main"]
|
||||
|
|
Loading…
Reference in New Issue