Fixing festinger API
This commit is contained in:
@@ -613,13 +613,18 @@ async def generate(request: Request) -> Response:
|
||||
async def anthropic_messages(request: Request) -> Response:
|
||||
cfg = request.app.state.yaml_config
|
||||
pool = request.app.state.pool
|
||||
body = await request.json()
|
||||
raw_body = await request.body()
|
||||
body = json.loads(raw_body)
|
||||
# Capture streaming intent BEFORE call_anthropic forces stream=False
|
||||
original_stream: bool = bool(body.get("stream", False))
|
||||
model = body.get("model", "unknown")
|
||||
upstream = cfg["upstream_anthropic"]
|
||||
min_len = cfg["detection"]["min_length"]
|
||||
log.info("chat route=/v1/messages model=%s upstream=%s stream=%s", model, upstream, original_stream)
|
||||
log.info(
|
||||
"chat route=/v1/messages model=%s upstream=%s stream=%s req_preview=%.200s",
|
||||
model, upstream, original_stream,
|
||||
raw_body[:200].decode(errors="replace").replace("\n", " "),
|
||||
)
|
||||
try:
|
||||
headers = _relay_headers(request, ANTHROPIC_RELAY_HEADERS)
|
||||
if "anthropic-version" not in {k.lower() for k in headers}:
|
||||
@@ -641,9 +646,18 @@ async def anthropic_messages(request: Request) -> Response:
|
||||
text, raw = await call_anthropic(body, upstream, headers)
|
||||
record_and_check(sess, text, min_len)
|
||||
if original_stream:
|
||||
log.info("streaming_response provider=anthropic model=%s converting json→sse", model)
|
||||
return Response(content=_anthropic_to_sse(raw), media_type="text/event-stream")
|
||||
return Response(content=json.dumps(raw), media_type="application/json")
|
||||
sse_bytes = _anthropic_to_sse(raw)
|
||||
log.info(
|
||||
"streaming_response provider=anthropic model=%s converting json→sse bytes=%d preview=%.300s",
|
||||
model, len(sse_bytes), sse_bytes[:300].decode(errors="replace"),
|
||||
)
|
||||
return Response(content=sse_bytes, media_type="text/event-stream")
|
||||
resp_body = json.dumps(raw)
|
||||
log.info(
|
||||
"json_response provider=anthropic model=%s bytes=%d preview=%.300s",
|
||||
model, len(resp_body), resp_body[:300],
|
||||
)
|
||||
return Response(content=resp_body, media_type="application/json")
|
||||
except UpstreamError as exc:
|
||||
log.error("chat_upstream_error route=/v1/messages model=%s %s", model, exc)
|
||||
return Response(content=exc.content, status_code=exc.status_code, media_type=exc.content_type)
|
||||
|
||||
Reference in New Issue
Block a user