Skip to content

Commit

Permalink
d16
Browse files Browse the repository at this point in the history
  • Loading branch information
all-mute committed Nov 30, 2024
1 parent d460cd4 commit 15a31bf
Show file tree
Hide file tree
Showing 6 changed files with 41 additions and 15 deletions.
5 changes: 5 additions & 0 deletions .github/workflows/delpoy-slsc.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ jobs:
CR_REGISTRY: crp0bmvdd91dv86c170d
CR_REPOSITORY: my-cr-repo
IMAGE_TAG: ${{ github.sha }}

run: |
ls -a
docker build -t cr.yandex/$CR_REGISTRY/$CR_REPOSITORY:$IMAGE_TAG -f YC-Dockerfile .
Expand All @@ -50,3 +51,7 @@ jobs:
revision-log-options-disabled: true
revision-log-options-log-group-id: e239urj29boo302337co

revision-env: |
GITHUB_SHA=${{ github.sha }}
GITHUB_REF=${{ github.ref }}
2 changes: 1 addition & 1 deletion YC-Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -22,4 +22,4 @@ HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \
CMD curl --fail http://localhost:8080/health || exit 1

# Команда для запуска приложения
CMD ["uvicorn", "main:main_app", "--host", "0.0.0.0", "--port", "8080"]
CMD ["uvicorn", "main:main_app", "--host", "0.0.0.0", "--port", "$PORT"]
6 changes: 0 additions & 6 deletions app/app.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,6 @@
s_embeddings_delays = config.get("s_embeddings_delays", [0.050, 0.500, 3])
embeddings_batch_size = config.get("embeddings_batch_size", 5)

app_version = config.get("app_version", "unknown")

app = APIRouter()

# Получение переменных окружения
Expand Down Expand Up @@ -198,10 +196,6 @@ def liveness_probe():
def get_badge():
return RedirectResponse("https://img.shields.io/badge/status-online-brightgreen.svg")

@app.get("/version")
def version():
return {"version": app_version}

async def generate_yandex_embeddings_response_batch(arr: list, model, yandex_api_key, folder_id, retry_num, batch_size: int):
logger.info(f"Начинаем обработку массива из {len(arr)} текстов с размером батча {batch_size}.")

Expand Down
14 changes: 14 additions & 0 deletions app/log_gandler.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
import logging
from pythonjsonlogger import jsonlogger

def get_yc_logger():
class YcLoggingFormatter(jsonlogger.JsonFormatter):
def add_fields(self, log_record, record, message_dict):
super(YcLoggingFormatter, self).add_fields(log_record, record, message_dict)
log_record['logger'] = record.name
log_record['level'] = str.replace(str.replace(record.levelname, "WARNING", "WARN"), "CRITICAL", "FATAL")

logHandler = logging.StreamHandler()
logHandler.setFormatter(YcLoggingFormatter('%(message)s %(level)s %(logger)s'))

return logHandler
2 changes: 1 addition & 1 deletion config.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"autoauth_keys": ["sk-my", " ", ""], "log_level": "INFO", "embeddings_retry_num": 5, "s_embeddings_delays": [0.050, 0.500, 0.500, 2, 2], "embeddings_batch_size": 5, "app_version": "0.4.1"}
{"autoauth_keys": ["sk-my", " ", ""], "log_level": "INFO", "embeddings_retry_num": 5, "s_embeddings_delays": [0.050, 0.500, 0.500, 2, 2], "embeddings_batch_size": 5}
27 changes: 20 additions & 7 deletions main.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
from fastapi import FastAPI
from app.log_gandler import get_yc_logger
from app.app import app
import os, sys, json
from loguru import logger
Expand All @@ -14,21 +15,33 @@
LOG_LEVEL = config.get("log_level", "INFO")

# Проверяем, запущено ли приложение на Vercel
is_vercel = os.getenv("VERCEL", False)
log_type = os.getenv("LOG_TYPE", "volume")

# Настраиваем логирование
if is_vercel:
# Логи выводятся в консоль
logger.add(sys.stdout, serialize=True, level=LOG_LEVEL)
else:
if log_type == "volume":
# Логи записываются в файл
logger.add("logs/debug.log", format="{time} {level} {message}", level=LOG_LEVEL, rotation="100 MB")
elif log_type == "vercel":
# Логи выводятся в консоль
logger.add(sys.stdout, format="{time} {level} {message}", level=LOG_LEVEL)
elif log_type == "yc":
# Логи выводятся в консоль
handler = get_yc_logger()
logger.add(handler, level=LOG_LEVEL)

GITHUB_SHA = os.getenv("GITHUB_SHA", "unknown_version")
GITHUB_REF = os.getenv("GITHUB_REF", "unknown_branch")

main_app = FastAPI(logger=logger)
main_app = FastAPI(
title="OpenAI SDK Adapter",
description="Adapter from OpenAI SDK to Yandex Cloud FoMo API",
version=f"{GITHUB_SHA=} - {GITHUB_REF=}",
logger=logger
)

main_app.include_router(app)

if __name__ == "__main__":
import uvicorn

uvicorn.run("main:main_app", host="0.0.0.0", port=9041, reload=True, log_level="info")
uvicorn.run("main:main_app", host="0.0.0.0", port=9041, reload=True)

0 comments on commit 15a31bf

Please sign in to comment.