mirror of
https://github.com/Monadical-SAS/reflector.git
synced 2025-12-22 05:09:05 +00:00
feat: new summary using phi-4 and llama-index (#519)
* feat: add litellm backend implementation * refactor: improve generate/completion methods for base LLM * refactor: remove tokenizer logic * style: apply code formatting * fix: remove hallucinations from LLM responses * refactor: comprehensive LLM and summarization rework * chore: remove debug code * feat: add structured output support to LiteLLM * refactor: apply self-review improvements * docs: add model structured output comments * docs: update model structured output comments * style: apply linting and formatting fixes * fix: resolve type logic bug * refactor: apply PR review feedback * refactor: apply additional PR review feedback * refactor: apply final PR review feedback * fix: improve schema passing for LLMs without structured output * feat: add PR comments and logger improvements * docs: update README and add HTTP logging * feat: improve HTTP logging * feat: add summary chunking functionality * fix: resolve title generation runtime issues * refactor: apply self-review improvements * style: apply linting and formatting * feat: implement LiteLLM class structure * style: apply linting and formatting fixes * docs: env template model name fix * chore: remove older litellm class * chore: format * refactor: simplify OpenAILLM * refactor: OpenAILLM tokenizer * refactor: self-review * refactor: self-review * refactor: self-review * chore: format * chore: remove LLM_USE_STRUCTURED_OUTPUT from envs * chore: roll back migration lint changes * chore: roll back migration lint changes * fix: make summary llm configuration optional for the tests * fix: missing f-string * fix: tweak the prompt for summary title * feat: try llamaindex for summarization * fix: complete refactor of summary builder using llamaindex and structured output when possible * fix: separate prompt as constant * fix: typings * fix: enhance prompt to prevent mentioning others subject while summarize one * fix: various changes after self-review * fix: from igor review --------- Co-authored-by: Igor Loskutov <igor.loskutoff@gmail.com>
This commit is contained in:
@@ -34,6 +34,7 @@ def retry(fn):
|
||||
),
|
||||
)
|
||||
retry_ignore_exc_types = kwargs.pop("retry_ignore_exc_types", (Exception,))
|
||||
retry_logger = kwargs.pop("logger", logger)
|
||||
|
||||
result = None
|
||||
last_exception = None
|
||||
@@ -58,17 +59,33 @@ def retry(fn):
|
||||
if result:
|
||||
return result
|
||||
except HTTPStatusError as e:
|
||||
logger.exception(e)
|
||||
retry_logger.exception(e)
|
||||
status_code = e.response.status_code
|
||||
logger.debug(f"HTTP status {status_code} - {e}")
|
||||
|
||||
# Log detailed error information including response body
|
||||
try:
|
||||
response_text = e.response.text
|
||||
response_headers = dict(e.response.headers)
|
||||
retry_logger.error(
|
||||
f"HTTP {status_code} error for {e.request.method} {e.request.url}\n"
|
||||
f"Response headers: {response_headers}\n"
|
||||
f"Response body: {response_text}"
|
||||
)
|
||||
|
||||
except Exception as log_error:
|
||||
retry_logger.warning(
|
||||
f"Failed to log detailed error info: {log_error}"
|
||||
)
|
||||
retry_logger.debug(f"HTTP status {status_code} - {e}")
|
||||
|
||||
if status_code in retry_httpx_status_stop:
|
||||
message = f"HTTP status {status_code} is in retry_httpx_status_stop"
|
||||
raise RetryHTTPException(message) from e
|
||||
except retry_ignore_exc_types as e:
|
||||
logger.exception(e)
|
||||
retry_logger.exception(e)
|
||||
last_exception = e
|
||||
|
||||
logger.debug(
|
||||
retry_logger.debug(
|
||||
f"Retrying {fn_name} - in {retry_backoff_interval:.1f}s "
|
||||
f"({monotonic() - start:.1f}s / {retry_timeout:.1f}s)"
|
||||
)
|
||||
|
||||
@@ -253,9 +253,7 @@ def summarize(
|
||||
LOGGER.info("Breaking transcript into smaller chunks")
|
||||
chunks = chunk_text(transcript_text)
|
||||
|
||||
LOGGER.info(
|
||||
f"Transcript broken into {len(chunks)} " f"chunks of at most 500 words"
|
||||
)
|
||||
LOGGER.info(f"Transcript broken into {len(chunks)} chunks of at most 500 words")
|
||||
|
||||
LOGGER.info(f"Writing summary text to: {output_file}")
|
||||
with open(output_file, "w") as f:
|
||||
|
||||
Reference in New Issue
Block a user