Initialize cache directories in app.py and update model identifier; add sentence-transformers to requirements
Browse files- app.py +19 -4
- requirements.txt +1 -0
app.py
CHANGED
|
@@ -36,6 +36,19 @@ warnings.filterwarnings('ignore')
|
|
| 36 |
# Initialize environment variables
|
| 37 |
load_dotenv()
|
| 38 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 39 |
# Initialize FastAPI app
|
| 40 |
app = FastAPI(title="Status Law Assistant API")
|
| 41 |
|
|
@@ -102,6 +115,9 @@ class CustomCallbackHandler(ConsoleCallbackHandler):
|
|
| 102 |
json.dump(log_entry, f, ensure_ascii=False)
|
| 103 |
f.write("\n")
|
| 104 |
|
|
|
|
|
|
|
|
|
|
| 105 |
def init_models():
|
| 106 |
try:
|
| 107 |
callback_handler = CustomCallbackHandler()
|
|
@@ -114,13 +130,12 @@ def init_models():
|
|
| 114 |
callback_manager=callback_manager
|
| 115 |
)
|
| 116 |
|
| 117 |
-
# Используем модель с корректным идентификатором
|
| 118 |
embeddings = HuggingFaceEmbeddings(
|
| 119 |
-
model_name=
|
| 120 |
-
cache_folder="/app/.cache"
|
| 121 |
)
|
| 122 |
|
| 123 |
-
logger.info("Models initialized successfully")
|
| 124 |
return llm, embeddings
|
| 125 |
|
| 126 |
except Exception as e:
|
|
|
|
| 36 |
# Initialize environment variables
|
| 37 |
load_dotenv()
|
| 38 |
|
| 39 |
+
# Проверяем наличие и права доступа к директориям кэша
|
| 40 |
+
cache_dir = "/app/.cache"
|
| 41 |
+
if not os.path.exists(cache_dir):
|
| 42 |
+
os.makedirs(cache_dir, exist_ok=True)
|
| 43 |
+
os.chmod(cache_dir, 0o777)
|
| 44 |
+
|
| 45 |
+
hf_cache_dir = os.path.join(cache_dir, "huggingface")
|
| 46 |
+
if not os.path.exists(hf_cache_dir):
|
| 47 |
+
os.makedirs(hf_cache_dir, exist_ok=True)
|
| 48 |
+
os.chmod(hf_cache_dir, 0o777)
|
| 49 |
+
|
| 50 |
+
logger.info(f"Cache directories initialized: {cache_dir}, {hf_cache_dir}")
|
| 51 |
+
|
| 52 |
# Initialize FastAPI app
|
| 53 |
app = FastAPI(title="Status Law Assistant API")
|
| 54 |
|
|
|
|
| 115 |
json.dump(log_entry, f, ensure_ascii=False)
|
| 116 |
f.write("\n")
|
| 117 |
|
| 118 |
+
# В начале файла добавим константу с именем модели
|
| 119 |
+
EMBEDDING_MODEL = "sentence-transformers/paraphrase-multilingual-mpnet-base-v2"
|
| 120 |
+
|
| 121 |
def init_models():
|
| 122 |
try:
|
| 123 |
callback_handler = CustomCallbackHandler()
|
|
|
|
| 130 |
callback_manager=callback_manager
|
| 131 |
)
|
| 132 |
|
|
|
|
| 133 |
embeddings = HuggingFaceEmbeddings(
|
| 134 |
+
model_name=EMBEDDING_MODEL, # Используем константу
|
| 135 |
+
cache_folder="/app/.cache/huggingface" # Явно указываем путь к кэшу
|
| 136 |
)
|
| 137 |
|
| 138 |
+
logger.info(f"Models initialized successfully. Using embedding model: {EMBEDDING_MODEL}")
|
| 139 |
return llm, embeddings
|
| 140 |
|
| 141 |
except Exception as e:
|
requirements.txt
CHANGED
|
@@ -3,6 +3,7 @@ langchain-community
|
|
| 3 |
langchain-core
|
| 4 |
langchain-huggingface
|
| 5 |
langchain-groq
|
|
|
|
| 6 |
python-dotenv
|
| 7 |
faiss-cpu
|
| 8 |
requests
|
|
|
|
| 3 |
langchain-core
|
| 4 |
langchain-huggingface
|
| 5 |
langchain-groq
|
| 6 |
+
sentence-transformers
|
| 7 |
python-dotenv
|
| 8 |
faiss-cpu
|
| 9 |
requests
|