File size: 988 Bytes
592cb1d
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
from __future__ import annotations

from fastapi import Request


def get_secret_header(request: Request, header_name: str) -> str | None:
    value = request.headers.get(header_name)
    if value is None:
        return None
    trimmed = str(value).strip()
    return trimmed or None


def get_llm_api_key(request: Request) -> str | None:
    return get_secret_header(request, "x-llm-api-key")


def apply_stream_secret_headers(request: Request, body: dict) -> dict:
    payload = dict(body)

    header_to_body = {
        "x-llm-api-key": "apiKey",
        "x-tavily-api-key": "tavilyApiKey",
        "x-serpapi-api-key": "serpapiApiKey",
        "x-exa-api-key": "exaApiKey",
        "x-summary-api-key": "summaryApiKey",
        "x-memory-api-key": "memoryApiKey",
    }

    for header_name, body_key in header_to_body.items():
        header_value = get_secret_header(request, header_name)
        if header_value:
            payload[body_key] = header_value

    return payload