Skip to content

Commit

Permalink
Enhance logging. (#613)
Browse files Browse the repository at this point in the history
This change adds line numbers to log messages, and synergizes with
Copilot specific changes that make exception handling in some of the
copilot pipeline more localized, making it easier to track down issues
with the proxy. There's no fundamental change in business logic.
  • Loading branch information
blkt authored Jan 22, 2025
1 parent 3243920 commit 2bda6c8
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 13 deletions.
1 change: 1 addition & 0 deletions src/codegate/codegate_logging.py
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,7 @@ def setup_logging(
[
structlog.processors.CallsiteParameter.MODULE,
structlog.processors.CallsiteParameter.PATHNAME,
structlog.processors.CallsiteParameter.LINENO,
]
),
]
Expand Down
38 changes: 25 additions & 13 deletions src/codegate/providers/copilot/pipeline.py
Original file line number Diff line number Diff line change
Expand Up @@ -93,15 +93,19 @@ async def process_body(
"""Common processing logic for all strategies"""
try:
normalized_body = self.normalizer.normalize(body)
except Exception as e:
logger.error(f"Pipeline processing error: {e}")
return body, None

headers_dict = {}
for header in headers:
try:
name, value = header.split(":", 1)
headers_dict[name.strip().lower()] = value.strip()
except ValueError:
continue
headers_dict = {}
for header in headers:
try:
name, value = header.split(":", 1)
headers_dict[name.strip().lower()] = value.strip()
except ValueError:
continue

try:
result = await self.instance.process_request(
request=normalized_body,
provider=self.provider_name,
Expand All @@ -111,25 +115,33 @@ async def process_body(
extra_headers=CopilotPipeline._get_copilot_headers(headers_dict),
is_copilot=True,
)
except Exception as e:
logger.error(f"Pipeline processing error: {e}")
return body, None

if result.context.shortcut_response:
if result.context.shortcut_response:
try:
# Return shortcut response to the user
body = CopilotPipeline._create_shortcut_response(
result, normalized_body.get("model", "gpt-4o-mini")
)
logger.info(f"Pipeline created shortcut response: {body}")
except Exception as e:
logger.error(f"Pipeline processing error: {e}")
return body, None

elif result.request:
elif result.request:
try:
# the pipeline did modify the request, return to the user
# in the original LLM format
body = self.normalizer.denormalize(result.request)
# Uncomment the below to debug the request
# logger.debug(f"Pipeline processed request: {body}")

return body, result.context
except Exception as e:
logger.error(f"Pipeline processing error: {e}")
return body, None
return body, result.context
except Exception as e:
logger.error(f"Pipeline processing error: {e}")
return body, None


class CopilotFimNormalizer:
Expand Down

0 comments on commit 2bda6c8

Please sign in to comment.