muryshev's picture
update
fbf2abd
raw
history blame
2.58 kB
from contextlib import asynccontextmanager
from pathlib import Path
from typing import Annotated
import dotenv
import uvicorn
import logging
import os
from fastapi import FastAPI, Depends
from fastapi.middleware.cors import CORSMiddleware
from common.common import configure_logging
from common.configuration import Configuration
# from main_before import config
# from routes.acronym import router as acronym_router
from common import dependencies as DI
from routes.dataset import router as dataset_router
from routes.document import router as document_router
from routes.acronym import router as acronym_router
from routes.llm import router as llm_router
from routes.llm_config import router as llm_config_router
from routes.llm_prompt import router as llm_prompt_router
from common.common import configure_logging
from transformers import AutoTokenizer, AutoModel
# Загружаем переменные из .env
dotenv.load_dotenv()
# from routes.feedback import router as feedback_router
# from routes.llm import router as llm_router
# from routes.log import router as log_router
CONFIG_PATH = os.environ.get('CONFIG_PATH', 'config_dev.yaml')
print("config path: ")
print(CONFIG_PATH)
config = Configuration(CONFIG_PATH)
logger = logging.getLogger(__name__)
configure_logging(config_file_path=config.common_config.log_file_path)
configure_logging(
level=logging.DEBUG,
config_file_path=config.common_config.log_file_path,
)
# Костыль №47364: Удаляем файл статуса обработки датасета при запуске приложения
tmp_path = Path(os.environ.get("APP_TMP_PATH", '.')) / 'tmp.json'
tmp_path.unlink(missing_ok=True)
print("Downloading model to cache...")
AutoTokenizer.from_pretrained(config.db_config.faiss.model_embedding_path)
AutoModel.from_pretrained(config.db_config.faiss.model_embedding_path)
print("Model cached successfully.")
app = FastAPI(title="Assistant control panel")
origins = ["*"]
app.add_middleware(
CORSMiddleware,
allow_origins=origins,
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)
app.include_router(llm_router)
# app.include_router(log_router)
# app.include_router(feedback_router)
app.include_router(acronym_router)
app.include_router(dataset_router)
app.include_router(document_router)
app.include_router(llm_config_router)
app.include_router(llm_prompt_router)
if __name__ == "__main__":
uvicorn.run(
"main:app",
host="localhost",
port=8885,
reload=True,
workers=1
)