SYMBOL INDEX (34 symbols across 1 files) FILE: main.py function lifespan (line 41) | async def lifespan(app: FastAPI): function get_gemini_webapi_version (line 60) | def get_gemini_webapi_version() -> str: function get_cached_1psidts_path (line 68) | def get_cached_1psidts_path(psid: str) -> str: function load_cached_1psidts (line 75) | def load_cached_1psidts(psid: str) -> str: function get_cookie_value (line 92) | def get_cookie_value(cookies, name: str) -> str: function background_delete_chat (line 143) | async def background_delete_chat(client: GeminiClient, cid: str): function response_indicates_auth_failure (line 153) | def response_indicates_auth_failure(text: str) -> bool: function fetch_readable_chat_response (line 161) | async def fetch_readable_chat_response(client: GeminiClient, cid: str, r... function background_verify_chat_persistence (line 185) | async def background_verify_chat_persistence(client: GeminiClient, cid: ... function validate_gemini_client_session (line 209) | async def validate_gemini_client_session(client: GeminiClient, source: s... function load_or_generate_secret (line 237) | def load_or_generate_secret() -> str: function get_alpha_map (line 282) | def get_alpha_map(size: int) -> np.ndarray: function remove_gemini_watermark (line 303) | def remove_gemini_watermark(image_bytes: bytes) -> bytes: function correct_markdown (line 372) | def correct_markdown(md_text: str) -> str: class ContentItem (line 404) | class ContentItem(BaseModel): class Message (line 410) | class Message(BaseModel): class ChatCompletionRequest (line 416) | class ChatCompletionRequest(BaseModel): class Choice (line 429) | class Choice(BaseModel): class Usage (line 435) | class Usage(BaseModel): class ChatCompletionResponse (line 441) | class ChatCompletionResponse(BaseModel): class ModelData (line 450) | class ModelData(BaseModel): class ModelList (line 457) | class ModelList(BaseModel): function verify_api_key (line 463) | async def verify_api_key(authorization: str = Header(None)): function error_handling (line 498) | async def error_handling(request: Request, call_next): function list_models (line 520) | async def list_models(): function map_model_name (line 536) | def map_model_name(openai_model_name: str) -> Model: function prepare_conversation (line 583) | def prepare_conversation(messages: List[Message]) -> tuple: function get_gemini_client (line 642) | async def get_gemini_client(): function get_image_signature (line 712) | def get_image_signature(url: str) -> str: function postprocess_text (line 720) | def postprocess_text(text: str) -> str: function extract_image_markdown (line 726) | def extract_image_markdown(response, base_url: str) -> str: function create_chat_completion (line 740) | async def create_chat_completion( function proxy_image (line 985) | async def proxy_image(url: str, sig: str): function root (line 1098) | async def root():