Setting the file. One moment.
Subchapter 19.40
helpers/_source_readback.py
Python37 lines2 KB
"""Readback guard shared by source creation and retained-source verification."""
from __future__ import annotations
from typing import Any
try:
from ._common import HelperFailure, Transport
from . import _embedding, _search_read
except ImportError:
from _common import HelperFailure, Transport
import _embedding
import _search_read
def guard_readback_transport(plan: dict[str, Any], transport: Transport) -> Transport:
if "embedding" not in plan and "content_understanding" not in plan:
return transport
url = _search_read.resource_url(plan["source"])
def guarded(method: str, target: str, token: str, **kwargs: Any):
response = transport(method, target, token, **kwargs)
if method == "GET" and target == url and response.status == 200:
try:
_embedding.verify_source_readback(plan.get("embedding"), response.body)
if "content_understanding" in plan:
try:
from . import _blob_source_read as blob_source, _file_source_config as file_source
except ImportError:
import _blob_source_read as blob_source, _file_source_config as file_source
owner = file_source if plan["source"]["desired"]["kind"] == "file" else blob_source
owner.verify_content_understanding_readback(plan["content_understanding"], response.body)
except HelperFailure as failure:
failure.request_id = response.request_id
raise
return response
return guarded