ray-llm

Форк
0
/
openai_middleware.py 
28 строк · 971.0 Байт
1
from typing import Union
2

3
from fastapi import HTTPException, Request
4
from httpx import HTTPStatusError as HTTPXHTTPStatusError
5
from opentelemetry import trace
6
from starlette.responses import JSONResponse
7

8
from rayllm.backend.server.openai_compat.openai_exception import OpenAIHTTPException
9
from rayllm.backend.server.utils import get_response_for_error
10

11

12
def openai_exception_handler(
13
    request: Request,
14
    exc: Union[OpenAIHTTPException, HTTPException],
15
):
16
    assert isinstance(
17
        exc, (OpenAIHTTPException, HTTPException, HTTPXHTTPStatusError)
18
    ), f"Unable to handle invalid exception {type(exc)}"
19

20
    err_response = get_response_for_error(
21
        exc, request.state.request_id, prefix="Returning error to user"
22
    )
23

24
    span = trace.get_current_span()
25
    span.record_exception(exc)
26
    span.set_status(trace.StatusCode.ERROR, description=err_response.error.message)
27

28
    return JSONResponse(content=err_response.dict(), status_code=exc.status_code)
29

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.