Add logging
This commit is contained in:
@@ -7,6 +7,7 @@ Uses OPENAI_API_KEY and OPENAI_URL from environment (via Config).
|
||||
from __future__ import annotations
|
||||
|
||||
import json
|
||||
import logging
|
||||
from typing import Dict, List
|
||||
|
||||
import requests
|
||||
@@ -18,6 +19,9 @@ class SummarizationError(RuntimeError):
|
||||
"""Raised when summarization fails."""
|
||||
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
def summarize_text(text: str, max_points: int = 3) -> Dict[str, List[str] | str]:
|
||||
"""
|
||||
Summarize text into a short summary and key points.
|
||||
@@ -63,15 +67,28 @@ def summarize_text(text: str, max_points: int = 3) -> Dict[str, List[str] | str]
|
||||
}
|
||||
|
||||
try:
|
||||
logger.info(
|
||||
"OpenAI request: url=%s model=%s timeout=%ss input_chars=%s",
|
||||
Config.OPENAI_URL,
|
||||
Config.OPENAI_MODEL,
|
||||
Config.OPENAI_TIMEOUT,
|
||||
len(text),
|
||||
)
|
||||
if Config.OPENAI_LOG_PAYLOAD:
|
||||
logger.debug("OpenAI request payload: %s", json.dumps(payload, ensure_ascii=False))
|
||||
response = requests.post(
|
||||
Config.OPENAI_URL,
|
||||
headers=headers,
|
||||
json=payload,
|
||||
timeout=Config.OPENAI_TIMEOUT,
|
||||
)
|
||||
logger.info("OpenAI response: status=%s", response.status_code)
|
||||
if Config.OPENAI_LOG_PAYLOAD:
|
||||
logger.debug("OpenAI response body: %s", response.text)
|
||||
response.raise_for_status()
|
||||
data = response.json()
|
||||
except Exception as exc:
|
||||
logger.exception("OpenAI request failed")
|
||||
raise SummarizationError(f"Request failed: {exc}") from exc
|
||||
|
||||
try:
|
||||
@@ -129,14 +146,27 @@ def format_markdown_content(text: str) -> str:
|
||||
}
|
||||
|
||||
try:
|
||||
logger.info(
|
||||
"OpenAI format request: url=%s model=%s timeout=%ss input_chars=%s",
|
||||
Config.OPENAI_URL,
|
||||
Config.OPENAI_MODEL,
|
||||
Config.OPENAI_TIMEOUT,
|
||||
len(text),
|
||||
)
|
||||
if Config.OPENAI_LOG_PAYLOAD:
|
||||
logger.debug("OpenAI format request payload: %s", json.dumps(payload, ensure_ascii=False))
|
||||
response = requests.post(
|
||||
Config.OPENAI_URL,
|
||||
headers=headers,
|
||||
json=payload,
|
||||
timeout=Config.OPENAI_TIMEOUT,
|
||||
)
|
||||
logger.info("OpenAI format response: status=%s", response.status_code)
|
||||
if Config.OPENAI_LOG_PAYLOAD:
|
||||
logger.debug("OpenAI format response body: %s", response.text)
|
||||
response.raise_for_status()
|
||||
data = response.json()
|
||||
return data["choices"][0]["message"]["content"].strip()
|
||||
except Exception as exc:
|
||||
logger.exception("OpenAI format request failed")
|
||||
raise SummarizationError(f"Formatting request failed: {exc}") from exc
|
||||
|
||||
Reference in New Issue
Block a user