arrange .env
This commit is contained in:
parent
d24d91bbc5
commit
732e62d284
9
src/.env
Normal file
9
src/.env
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
QDRANT_HOST = "192.168.99.122"
|
||||||
|
QDRANT_PORT = 6333
|
||||||
|
QDRANT_HTTPS='true'
|
||||||
|
QDRANT_SSL_VERIFY= 'false'
|
||||||
|
QDRANT_API_KEY=NS00TXlKUUIweUhWaGFuUUpUVTk6bWNVWXI1VXRSN2VWcFRtaEZ6NmdCUQ==
|
||||||
|
QDRANT_CLUSTER=''
|
||||||
|
QDRANT_COLLECTION_NAME='titan-2502110203'
|
||||||
|
TOKENIZER_FOLDER=/home/charlenewsl/model-files/tokenizer
|
||||||
|
MODEL_FOLDER=/home/charlenewsl/model-files
|
||||||
@ -1,5 +1,5 @@
|
|||||||
from flask import Flask, jsonify, request
|
from flask import Flask, jsonify, request
|
||||||
from dotenv import load_dotenv
|
# from dotenv import load_dotenv
|
||||||
from services.embedding_service import Embedding
|
from services.embedding_service import Embedding
|
||||||
import logging
|
import logging
|
||||||
import json
|
import json
|
||||||
@ -7,7 +7,7 @@ from qdrant_client.http import models
|
|||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
load_dotenv()
|
# load_dotenv()
|
||||||
app = Flask(__name__)
|
app = Flask(__name__)
|
||||||
|
|
||||||
# @app.route("/")
|
# @app.route("/")
|
||||||
|
|||||||
0
src/qdrant_services/__init__.py
Normal file
0
src/qdrant_services/__init__.py
Normal file
18
src/qdrant_services/config.py
Normal file
18
src/qdrant_services/config.py
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
# replace ./settings.py
|
||||||
|
from util.config import env
|
||||||
|
|
||||||
|
QDRANT_HOST = env('QDRANT_HOST', default="192.168.99.122")
|
||||||
|
QDRANT_PORT = env('QDRANT_PORT', default=6333, cast=int)
|
||||||
|
QDRANT_HTTPS = env('QDRANT_HTTPS', default=False, cast=bool)
|
||||||
|
QDRANT_SSL_VERIFY = env('QDRANT_SSL_VERIFY', default=False, cast=bool)
|
||||||
|
QDRANT_API_KEY = env('QDRANT_API_KEY', default=None)
|
||||||
|
QDRANT_CLUSTER = env('QDRANT_CLUSTER', default='')
|
||||||
|
QDRANT_COLLECTION_NAME=env('QDRANT_COLLECTION_NAME',default='titan-2502110203')
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# TOKENIZER_FOLDER=/home/charlenewsl/model-files/tokenizer
|
||||||
|
# MODEL_FOLDER=/home/charlenewsl/model-files
|
||||||
@ -5,7 +5,7 @@ from functools import wraps
|
|||||||
|
|
||||||
from qdrant_client import QdrantClient
|
from qdrant_client import QdrantClient
|
||||||
|
|
||||||
from qdrant_services.settings import QDRANT_HOST, QDRANT_PORT, QDRANT_HTTPS, QDRANT_SSL_VERIFY,QDRANT_API_KEY, QDRANT_CLUSTER, QDRANT_COLLECTION_NAME
|
from . import config as settings
|
||||||
from services.service import Singleton
|
from services.service import Singleton
|
||||||
|
|
||||||
from qdrant_services.policy import QdrantClientSelectionPolicy
|
from qdrant_services.policy import QdrantClientSelectionPolicy
|
||||||
@ -25,16 +25,16 @@ class Qdrant(metaclass=Singleton):
|
|||||||
):
|
):
|
||||||
self.collection_name = collection_name or self.__class__.get_default_collection_name()
|
self.collection_name = collection_name or self.__class__.get_default_collection_name()
|
||||||
|
|
||||||
if QDRANT_HTTPS is not None and kwargs.get('https') is None:
|
if settings.QDRANT_HTTPS is not None and kwargs.get('https') is None:
|
||||||
kwargs['https'] = QDRANT_HTTPS
|
kwargs['https'] = settings.QDRANT_HTTPS
|
||||||
if QDRANT_SSL_VERIFY is not None and kwargs.get('verify') is None:
|
if settings.QDRANT_SSL_VERIFY is not None and kwargs.get('verify') is None:
|
||||||
kwargs['verify'] = QDRANT_SSL_VERIFY
|
kwargs['verify'] = settings.QDRANT_SSL_VERIFY
|
||||||
if QDRANT_API_KEY is not None and kwargs.get('api_key') is None:
|
if settings.QDRANT_API_KEY is not None and kwargs.get('api_key') is None:
|
||||||
kwargs['api_key'] = QDRANT_API_KEY
|
kwargs['api_key'] = settings.QDRANT_API_KEY
|
||||||
|
|
||||||
host = host or QDRANT_HOST
|
host = host or settings.QDRANT_HOST
|
||||||
port = port or QDRANT_PORT
|
port = port or settings.QDRANT_PORT
|
||||||
cluster = cluster or QDRANT_CLUSTER
|
cluster = cluster or settings.QDRANT_CLUSTER
|
||||||
if cluster:
|
if cluster:
|
||||||
self.logger.info(
|
self.logger.info(
|
||||||
"Connecting to qdrant cluster: cluster: %s, collection_name: %s" % (cluster, self.collection_name))
|
"Connecting to qdrant cluster: cluster: %s, collection_name: %s" % (cluster, self.collection_name))
|
||||||
@ -82,16 +82,17 @@ class Qdrant(metaclass=Singleton):
|
|||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def get_default_collection_name(cls) -> str:
|
def get_default_collection_name(cls) -> str:
|
||||||
return QDRANT_COLLECTION_NAME
|
return settings.QDRANT_COLLECTION_NAME
|
||||||
|
|
||||||
class QdrantClientProxy(QdrantClient):
|
class QdrantClientProxy(QdrantClient):
|
||||||
|
|
||||||
def __init__(self, outer_instance, *args, **kwargs):
|
def __init__(self, outer_instance, *args, **kwargs):
|
||||||
self.outer_instance = outer_instance
|
self.outer_instance = outer_instance
|
||||||
super().__init__(url="https://192.168.99.122:6333",
|
super().__init__(*args, **kwargs)
|
||||||
api_key="NS00TXlKUUIweUhWaGFuUUpUVTk6bWNVWXI1VXRSN2VWcFRtaEZ6NmdCUQ==",
|
# super().__init__(url="https://192.168.99.122:6333",
|
||||||
https=True,
|
# api_key="NS00TXlKUUIweUhWaGFuUUpUVTk6bWNVWXI1VXRSN2VWcFRtaEZ6NmdCUQ==",
|
||||||
verify=False)
|
# https=True,
|
||||||
|
# verify=False)
|
||||||
|
|
||||||
_excluded_methods = ['_dynamic_call_decorator']
|
_excluded_methods = ['_dynamic_call_decorator']
|
||||||
|
|
||||||
|
|||||||
@ -1,8 +0,0 @@
|
|||||||
QDRANT_HOST = "192.168.99.122"
|
|
||||||
QDRANT_PORT = 6333
|
|
||||||
QDRANT_HTTPS=''
|
|
||||||
QDRANT_SSL_VERIFY=''
|
|
||||||
QDRANT_API_KEY=''
|
|
||||||
QDRANT_CLUSTER=''
|
|
||||||
QDRANT_COLLECTION_NAME='titan-2502110203'
|
|
||||||
|
|
||||||
0
src/services/__init__.py
Normal file
0
src/services/__init__.py
Normal file
6
src/services/config.py
Normal file
6
src/services/config.py
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
# replace ./settings.py
|
||||||
|
from util.config import env
|
||||||
|
|
||||||
|
|
||||||
|
TOKENIZER_FOLDER=env('TOKENIZER_FOLDER')
|
||||||
|
MODEL_FOLDER = env('MODEL_FOLDER')
|
||||||
@ -6,10 +6,13 @@ import torch
|
|||||||
import os
|
import os
|
||||||
from transformers import AutoTokenizer, AutoModel
|
from transformers import AutoTokenizer, AutoModel
|
||||||
|
|
||||||
# from app.settings import MODEL_FOLDER, TOKENIZER_FOLDER
|
|
||||||
from services.service import Component
|
from services.service import Component
|
||||||
TOKENIZER_FOLDER = os.getenv("TOKENIZER_FOLDER")
|
|
||||||
MODEL_FOLDER = os.getenv("MODEL_FOLDER")
|
from . import config as settings
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class Embedding(Component):
|
class Embedding(Component):
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
@ -24,8 +27,8 @@ class Embedding(Component):
|
|||||||
|
|
||||||
# Load model from HuggingFace Hub
|
# Load model from HuggingFace Hub
|
||||||
|
|
||||||
self.tokenizer = AutoTokenizer.from_pretrained(TOKENIZER_FOLDER)
|
self.tokenizer = AutoTokenizer.from_pretrained(settings.TOKENIZER_FOLDER)
|
||||||
self.model = AutoModel.from_pretrained(MODEL_FOLDER)
|
self.model = AutoModel.from_pretrained(settings.MODEL_FOLDER)
|
||||||
|
|
||||||
|
|
||||||
def process(self, input_clause, is_query=False):
|
def process(self, input_clause, is_query=False):
|
||||||
|
|||||||
@ -1,28 +1,24 @@
|
|||||||
import logging
|
from dotenv import dotenv_values
|
||||||
import os
|
import os
|
||||||
|
|
||||||
import environ
|
|
||||||
|
|
||||||
from services.service import Singleton
|
# load_dotenv("/home/charlenewsl/recommender-service-flask/src/.env")
|
||||||
|
# print("QDRANT_PORT: DD : ",os.getenv("QDRANT_PORT"))
|
||||||
logger = logging.getLogger(__name__)
|
config = dotenv_values("/home/charlenewsl/recommender-service-flask/src/.env")
|
||||||
|
|
||||||
|
|
||||||
def init():
|
def env(name, default=None, cast=None):
|
||||||
env = environ.Env(DEBUG=(bool, False))
|
r = os.getenv(name)
|
||||||
path = os.path.join((environ.Path(__file__) - 3).__str__(), '.env')
|
if r is None:
|
||||||
if os.path.exists(path):
|
r = config.get(name, default)
|
||||||
environ.Env.read_env(path)
|
if cast is not None:
|
||||||
logger.info("env file %s loaded" % path)
|
if cast == bool and isinstance(r, str):
|
||||||
# no warning even if .env doesn't exist as it's not required
|
if r.lower() in ["true", "yes", "on", "1"]:
|
||||||
# e.g. for docker containers, usually environment variables are preferred.
|
r = True
|
||||||
|
elif r.lower() in ["false", "no", "off", "0"]:
|
||||||
return env
|
r = False
|
||||||
|
else:
|
||||||
|
raise ValueError(f"Invalid boolean value: {r}")
|
||||||
class Env(metaclass=Singleton):
|
else:
|
||||||
def __init__(self):
|
r = cast(r)
|
||||||
self.env = init()
|
return r
|
||||||
|
|
||||||
|
|
||||||
env = Env().env
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user