mirror of
https://github.com/arc53/DocsGPT.git
synced 2025-11-29 08:33:20 +00:00
Merge pull request #1335 from kom-senapati/feature/mongodb-connection-refactor
refactor: use MongoDB singleton for connection management
This commit is contained in:
@@ -11,8 +11,8 @@ from bson.objectid import ObjectId
|
|||||||
from flask import Blueprint, current_app, make_response, request, Response
|
from flask import Blueprint, current_app, make_response, request, Response
|
||||||
from flask_restx import fields, Namespace, Resource
|
from flask_restx import fields, Namespace, Resource
|
||||||
|
|
||||||
from pymongo import MongoClient
|
|
||||||
|
|
||||||
|
from application.core.mongo_db import MongoDB
|
||||||
from application.core.settings import settings
|
from application.core.settings import settings
|
||||||
from application.error import bad_request
|
from application.error import bad_request
|
||||||
from application.extensions import api
|
from application.extensions import api
|
||||||
@@ -22,7 +22,7 @@ from application.utils import check_required_fields
|
|||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
mongo = MongoClient(settings.MONGO_URI)
|
mongo = MongoDB.get_client()
|
||||||
db = mongo["docsgpt"]
|
db = mongo["docsgpt"]
|
||||||
conversations_collection = db["conversations"]
|
conversations_collection = db["conversations"]
|
||||||
sources_collection = db["sources"]
|
sources_collection = db["sources"]
|
||||||
|
|||||||
@@ -1,13 +1,13 @@
|
|||||||
import os
|
import os
|
||||||
import datetime
|
import datetime
|
||||||
from flask import Blueprint, request, send_from_directory
|
from flask import Blueprint, request, send_from_directory
|
||||||
from pymongo import MongoClient
|
|
||||||
from werkzeug.utils import secure_filename
|
from werkzeug.utils import secure_filename
|
||||||
from bson.objectid import ObjectId
|
from bson.objectid import ObjectId
|
||||||
|
|
||||||
|
from application.core.mongo_db import MongoDB
|
||||||
from application.core.settings import settings
|
from application.core.settings import settings
|
||||||
|
|
||||||
mongo = MongoClient(settings.MONGO_URI)
|
mongo = MongoDB.get_client()
|
||||||
db = mongo["docsgpt"]
|
db = mongo["docsgpt"]
|
||||||
conversations_collection = db["conversations"]
|
conversations_collection = db["conversations"]
|
||||||
sources_collection = db["sources"]
|
sources_collection = db["sources"]
|
||||||
|
|||||||
@@ -8,18 +8,18 @@ from bson.dbref import DBRef
|
|||||||
from bson.objectid import ObjectId
|
from bson.objectid import ObjectId
|
||||||
from flask import Blueprint, jsonify, make_response, request
|
from flask import Blueprint, jsonify, make_response, request
|
||||||
from flask_restx import inputs, fields, Namespace, Resource
|
from flask_restx import inputs, fields, Namespace, Resource
|
||||||
from pymongo import MongoClient
|
|
||||||
from werkzeug.utils import secure_filename
|
from werkzeug.utils import secure_filename
|
||||||
|
|
||||||
from application.api.user.tasks import ingest, ingest_remote
|
from application.api.user.tasks import ingest, ingest_remote
|
||||||
|
|
||||||
|
from application.core.mongo_db import MongoDB
|
||||||
from application.core.settings import settings
|
from application.core.settings import settings
|
||||||
from application.extensions import api
|
from application.extensions import api
|
||||||
from application.utils import check_required_fields
|
from application.utils import check_required_fields
|
||||||
from application.vectorstore.vector_creator import VectorCreator
|
from application.vectorstore.vector_creator import VectorCreator
|
||||||
from application.tts.google_tts import GoogleTTS
|
from application.tts.google_tts import GoogleTTS
|
||||||
|
|
||||||
mongo = MongoClient(settings.MONGO_URI)
|
mongo = MongoDB.get_client()
|
||||||
db = mongo["docsgpt"]
|
db = mongo["docsgpt"]
|
||||||
conversations_collection = db["conversations"]
|
conversations_collection = db["conversations"]
|
||||||
sources_collection = db["sources"]
|
sources_collection = db["sources"]
|
||||||
|
|||||||
24
application/core/mongo_db.py
Normal file
24
application/core/mongo_db.py
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
from application.core.settings import settings
|
||||||
|
from pymongo import MongoClient
|
||||||
|
|
||||||
|
|
||||||
|
class MongoDB:
|
||||||
|
_client = None
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def get_client(cls):
|
||||||
|
"""
|
||||||
|
Get the MongoDB client instance, creating it if necessary.
|
||||||
|
"""
|
||||||
|
if cls._client is None:
|
||||||
|
cls._client = MongoClient(settings.MONGO_URI)
|
||||||
|
return cls._client
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def close_client(cls):
|
||||||
|
"""
|
||||||
|
Close the MongoDB client connection.
|
||||||
|
"""
|
||||||
|
if cls._client is not None:
|
||||||
|
cls._client.close()
|
||||||
|
cls._client = None
|
||||||
@@ -1,10 +1,9 @@
|
|||||||
import sys
|
import sys
|
||||||
from pymongo import MongoClient
|
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
from application.core.settings import settings
|
from application.core.mongo_db import MongoDB
|
||||||
from application.utils import num_tokens_from_string
|
from application.utils import num_tokens_from_string
|
||||||
|
|
||||||
mongo = MongoClient(settings.MONGO_URI)
|
mongo = MongoDB.get_client()
|
||||||
db = mongo["docsgpt"]
|
db = mongo["docsgpt"]
|
||||||
usage_collection = db["token_usage"]
|
usage_collection = db["token_usage"]
|
||||||
|
|
||||||
|
|||||||
@@ -8,8 +8,8 @@ from urllib.parse import urljoin
|
|||||||
|
|
||||||
import requests
|
import requests
|
||||||
from bson.objectid import ObjectId
|
from bson.objectid import ObjectId
|
||||||
from pymongo import MongoClient
|
|
||||||
|
|
||||||
|
from application.core.mongo_db import MongoDB
|
||||||
from application.core.settings import settings
|
from application.core.settings import settings
|
||||||
from application.parser.file.bulk import SimpleDirectoryReader
|
from application.parser.file.bulk import SimpleDirectoryReader
|
||||||
from application.parser.open_ai_func import call_openai_api
|
from application.parser.open_ai_func import call_openai_api
|
||||||
@@ -18,7 +18,7 @@ from application.parser.schema.base import Document
|
|||||||
from application.parser.token_func import group_split
|
from application.parser.token_func import group_split
|
||||||
from application.utils import count_tokens_docs
|
from application.utils import count_tokens_docs
|
||||||
|
|
||||||
mongo = MongoClient(settings.MONGO_URI)
|
mongo = MongoDB.get_client()
|
||||||
db = mongo["docsgpt"]
|
db = mongo["docsgpt"]
|
||||||
sources_collection = db["sources"]
|
sources_collection = db["sources"]
|
||||||
|
|
||||||
|
|||||||
@@ -12,7 +12,7 @@
|
|||||||
"cancel": "Cancel",
|
"cancel": "Cancel",
|
||||||
"help": "Help",
|
"help": "Help",
|
||||||
"emailUs": "Email us",
|
"emailUs": "Email us",
|
||||||
"documentation": "documentation",
|
"documentation": "Documentation",
|
||||||
"demo": [
|
"demo": [
|
||||||
{
|
{
|
||||||
"header": "Learn about DocsGPT",
|
"header": "Learn about DocsGPT",
|
||||||
|
|||||||
@@ -12,7 +12,7 @@
|
|||||||
"cancel": "Cancelar",
|
"cancel": "Cancelar",
|
||||||
"help": "Asistencia",
|
"help": "Asistencia",
|
||||||
"emailUs": "Envíanos un correo",
|
"emailUs": "Envíanos un correo",
|
||||||
"documentation": "documentación",
|
"documentation": "Documentación",
|
||||||
"demo": [
|
"demo": [
|
||||||
{
|
{
|
||||||
"header": "Aprende sobre DocsGPT",
|
"header": "Aprende sobre DocsGPT",
|
||||||
|
|||||||
Reference in New Issue
Block a user