update
parent
7c858b2005
commit
7da9bad2af
|
@ -23,10 +23,12 @@ import config
|
|||
import internet
|
||||
|
||||
|
||||
def answer(query: str) -> tuple[Any, list[str]]:
|
||||
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.environ["INTERNET_ML_GOOGLE_API"])
|
||||
GOOGLE_SEARCH_ENGINE_ID = str(os.environ["INTERNET_ML_GOOGLE_SEARCH_ENGINE_ID"])
|
||||
# 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()
|
||||
|
|
|
@ -5,7 +5,7 @@ build-backend = "poetry.core.masonry.api"
|
|||
|
||||
[tool.poetry]
|
||||
name = "internet-ml"
|
||||
version = "1.0.1"
|
||||
version = "1.0.6"
|
||||
description = "Internet-ML: Allowing ML to connect to the internet"
|
||||
readme = "./.github/README.md"
|
||||
authors = ["Thamognya Kodi <contact@thamognya.com>"]
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
from django.apps import AppConfig
|
||||
|
||||
|
||||
class QuestionAnswerConfig(AppConfig):
|
||||
class NlpConfig(AppConfig):
|
||||
default_auto_field = "django.db.models.BigAutoField"
|
||||
name = "api.question_answer"
|
||||
name = "api.nlp"
|
|
@ -0,0 +1,3 @@
|
|||
from django.contrib import admin
|
||||
|
||||
# Register your models here.
|
|
@ -0,0 +1,6 @@
|
|||
from django.apps import AppConfig
|
||||
|
||||
|
||||
class ContextConfig(AppConfig):
|
||||
default_auto_field = "django.db.models.BigAutoField"
|
||||
name = "api.nlp.context"
|
|
@ -0,0 +1,3 @@
|
|||
from django.shortcuts import render
|
||||
|
||||
# Create your views here.
|
|
@ -0,0 +1,3 @@
|
|||
from django.db import models
|
||||
|
||||
# Create your models here.
|
|
@ -0,0 +1,3 @@
|
|||
from django.contrib import admin
|
||||
|
||||
# Register your models here.
|
|
@ -0,0 +1,6 @@
|
|||
from django.apps import AppConfig
|
||||
|
||||
|
||||
class NocontextConfig(AppConfig):
|
||||
default_auto_field = "django.db.models.BigAutoField"
|
||||
name = "api.nlp.nocontext"
|
|
@ -0,0 +1,3 @@
|
|||
from django.db import models
|
||||
|
||||
# Create your models here.
|
|
@ -0,0 +1,3 @@
|
|||
from django.test import TestCase
|
||||
|
||||
# Create your tests here.
|
|
@ -0,0 +1,25 @@
|
|||
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?"))
|
|
@ -6,5 +6,5 @@ from django.urls import include, path
|
|||
from . import views
|
||||
|
||||
urlpatterns: list[Any] = [
|
||||
path("", views.QAView.as_view()),
|
||||
path("question-answering/", views.QAView.as_view(), name="nlp"),
|
||||
]
|
|
@ -1,14 +1,15 @@
|
|||
import json
|
||||
import os
|
||||
|
||||
from django.views.generic.base import TemplateView
|
||||
from dotenv import load_dotenv
|
||||
from rest_framework import status
|
||||
from rest_framework.response import Response
|
||||
from rest_framework.views import APIView
|
||||
|
||||
from internet_ml.NLP.no_context import QA
|
||||
from .tools import question_answer
|
||||
|
||||
load_dotenv()
|
||||
import internet_ml.NLP.no_context.QA
|
||||
|
||||
|
||||
class QAView(APIView):
|
||||
|
@ -35,14 +36,12 @@ class QAView(APIView):
|
|||
}
|
||||
so check error if it exists first and then for other stuff
|
||||
"""
|
||||
try:
|
||||
answer = QA.answer(request.POST.get("question"))
|
||||
content = json.dumps(
|
||||
{"error": "", "response": answer[0], "resources": answer[1]}
|
||||
)
|
||||
return Response(content, status=status.HTTP_200_OK)
|
||||
except:
|
||||
content = json.dumps(
|
||||
{"error": "Google API key not present in .env or environment"}
|
||||
)
|
||||
return Response(content, status=status.HTTP_500_INTERNAL_SERVER_ERROR)
|
||||
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")),
|
||||
)
|
||||
content = json.dumps(
|
||||
{"error": "", "response": answer[0], "resources": answer[1]}
|
||||
)
|
||||
return content
|
|
@ -0,0 +1 @@
|
|||
nlp
|
|
@ -0,0 +1,3 @@
|
|||
from django.test import TestCase
|
||||
|
||||
# Create your tests here.
|
|
@ -0,0 +1,11 @@
|
|||
from typing import Any, List
|
||||
|
||||
from django.contrib import admin
|
||||
from django.urls import include, path
|
||||
|
||||
from . import views
|
||||
|
||||
urlpatterns: list[Any] = [
|
||||
path("", views.NLPView.as_view(), name="nlp"),
|
||||
path("no-context/", include("api.nlp.nocontext.urls"), name="nlp no context api"),
|
||||
]
|
|
@ -0,0 +1,5 @@
|
|||
from django.views.generic.base import TemplateView
|
||||
|
||||
|
||||
class NLPView(TemplateView):
|
||||
template_name = "index.api.nlp.dj.html"
|
|
@ -1 +1 @@
|
|||
This is my api list
|
||||
api
|
||||
|
|
|
@ -6,6 +6,6 @@ from django.urls import include, path
|
|||
from . import views
|
||||
|
||||
urlpatterns: list[Any] = [
|
||||
path("", views.ApiView.as_view()),
|
||||
path("question-answer/", include("api.question_answer.urls")),
|
||||
path("", views.APIView.as_view(), name="api"),
|
||||
path("nlp/", include("api.nlp.urls"), name="nlp api"),
|
||||
]
|
||||
|
|
|
@ -1,7 +1,5 @@
|
|||
from django.views.generic.base import TemplateView
|
||||
|
||||
# Create your views here.
|
||||
|
||||
|
||||
class ApiView(TemplateView):
|
||||
class APIView(TemplateView):
|
||||
template_name = "index.api.dj.html"
|
||||
|
|
|
@ -42,7 +42,9 @@ INSTALLED_APPS: list[str] = [
|
|||
"rest_framework",
|
||||
"internet_ml",
|
||||
"api",
|
||||
"api.question_answer",
|
||||
"api.nlp",
|
||||
"api.nlp.context",
|
||||
"api.nlp.nocontext",
|
||||
]
|
||||
|
||||
REST_FRAMEWORK = {"DEFAULT_METADATA_CLASS": "rest_framework.metadata.SimpleMetadata"}
|
||||
|
@ -64,9 +66,11 @@ TEMPLATES: list[Any] = [
|
|||
{
|
||||
"BACKEND": "django.template.backends.django.DjangoTemplates",
|
||||
"DIRS": [
|
||||
str(BASE_DIR) + "/api/templates",
|
||||
str(BASE_DIR) + "/internet_ml_server/templates",
|
||||
str(BASE_DIR) + "/api/question_answer/templates",
|
||||
str(BASE_DIR) + "/api/templates",
|
||||
str(BASE_DIR) + "/api/nlp/templates",
|
||||
str(BASE_DIR) + "/api/nlp/context/templates",
|
||||
str(BASE_DIR) + "/api/nlp/nocontext/templates",
|
||||
],
|
||||
"APP_DIRS": True,
|
||||
"OPTIONS": {
|
||||
|
|
|
@ -22,6 +22,6 @@ from . import views
|
|||
|
||||
urlpatterns: list[Any] = [
|
||||
# path("admin/", admin.site.urls),
|
||||
path("", views.IndexView.as_view(), name="api"),
|
||||
path("", views.IndexView.as_view(), name="index"),
|
||||
path("api/", include("api.urls"), name="api"),
|
||||
]
|
||||
|
|
|
@ -1,7 +1,5 @@
|
|||
from django.views.generic.base import TemplateView
|
||||
|
||||
# Create your views here.
|
||||
|
||||
|
||||
class IndexView(TemplateView):
|
||||
template_name = "index.internet_ml_server.dj.html"
|
||||
|
|
|
@ -36,6 +36,23 @@ tzdata = {version = "*", markers = "sys_platform == \"win32\""}
|
|||
argon2 = ["argon2-cffi (>=19.1.0)"]
|
||||
bcrypt = ["bcrypt"]
|
||||
|
||||
[[package]]
|
||||
name = "django-environ"
|
||||
version = "0.9.0"
|
||||
description = "A package that allows you to utilize 12factor inspired environment variables to configure your Django application."
|
||||
category = "main"
|
||||
optional = false
|
||||
python-versions = ">=3.4,<4"
|
||||
files = [
|
||||
{file = "django-environ-0.9.0.tar.gz", hash = "sha256:bff5381533056328c9ac02f71790bd5bf1cea81b1beeb648f28b81c9e83e0a21"},
|
||||
{file = "django_environ-0.9.0-py2.py3-none-any.whl", hash = "sha256:f21a5ef8cc603da1870bbf9a09b7e5577ab5f6da451b843dbcc721a7bca6b3d9"},
|
||||
]
|
||||
|
||||
[package.extras]
|
||||
develop = ["coverage[toml] (>=5.0a4)", "furo (>=2021.8.17b43,<2021.9.0)", "pytest (>=4.6.11)", "sphinx (>=3.5.0)", "sphinx-notfound-page"]
|
||||
docs = ["furo (>=2021.8.17b43,<2021.9.0)", "sphinx (>=3.5.0)", "sphinx-notfound-page"]
|
||||
testing = ["coverage[toml] (>=5.0a4)", "pytest (>=4.6.11)"]
|
||||
|
||||
[[package]]
|
||||
name = "django-stubs"
|
||||
version = "1.13.1"
|
||||
|
@ -257,4 +274,4 @@ files = [
|
|||
[metadata]
|
||||
lock-version = "2.0"
|
||||
python-versions = "^3.10"
|
||||
content-hash = "58f95fa8d5dbf7be85c7a08f3dd2a5ddcc8dba0f233caec4e941898ce2f867fc"
|
||||
content-hash = "650eb364a84df8d6cc70b2c19d177a09378245ef42efc0b95477f55bdc59f673"
|
||||
|
|
|
@ -16,6 +16,7 @@ django = "^4.1.4"
|
|||
django-stubs = "^1.13.1"
|
||||
djangorestframework = "^3.14.0"
|
||||
python-dotenv = "^0.21.0"
|
||||
django-environ = "^0.9.0"
|
||||
|
||||
[tool.mypy]
|
||||
plugins = ["mypy_django_plugin.main"]
|
||||
|
|
Loading…
Reference in New Issue