Skip to content

Commit

Permalink
Add generation_log_dir config
Browse files Browse the repository at this point in the history
  • Loading branch information
krassowski committed Nov 25, 2023
1 parent 59838cb commit 4f4e78c
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 4 deletions.
13 changes: 9 additions & 4 deletions packages/jupyter-ai/jupyter_ai/chat_handlers/generate.py
Original file line number Diff line number Diff line change
Expand Up @@ -218,12 +218,15 @@ def create_notebook(outline):
class GenerateChatHandler(BaseChatHandler):
"""Generates a Jupyter notebook given a description."""

def __init__(self, root_dir: str, preferred_dir: str, *args, **kwargs):
def __init__(
self, root_dir: str, preferred_dir: str, log_dir: Optional[str], *args, **kwargs
):
super().__init__(*args, **kwargs)
self.root_dir = os.path.abspath(os.path.expanduser(root_dir))
self.log_dir = Path(log_dir) if log_dir else None
self.preferred_dir = (
os.path.abspath(os.path.expanduser(preferred_dir))
if preferred_dir == ""
if preferred_dir != ""
else None
)
self.llm = None
Expand Down Expand Up @@ -271,8 +274,10 @@ async def process_message(self, message: HumanChatMessage):

async def handle_exc(self, e: Exception, message: HumanChatMessage):
timestamp = time.strftime("%Y-%m-%d-%H.%M.%S")
log_path = Path(f"jupyter-ai-logs/generate-{timestamp}.log")
log_path.parent.mkdir(parents=True, exist_ok=True)
default_log_dir = Path(self._output_dir) / "jupyter-ai-logs"
log_dir = self.log_dir or default_log_dir
log_dir.mkdir(parents=True, exist_ok=True)
log_path = log_dir / f"generate-{timestamp}.log"
with log_path.open("w") as log:
traceback.print_exc(file=log)

Expand Down
10 changes: 10 additions & 0 deletions packages/jupyter-ai/jupyter_ai/extension.py
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,15 @@ class AiExtension(ExtensionApp):
config=True,
)

generation_log_dir = Unicode(
default_value=None,
help="""Path to a directory where the generation error logs should be
written to. Defaults to `jupyter-ai-logs/` in the preferred dir
(if defined) or in root dir otherwise.""",
allow_none=True,
config=True,
)

def initialize_settings(self):
start = time.time()

Expand Down Expand Up @@ -173,6 +182,7 @@ def initialize_settings(self):
**chat_handler_kwargs,
root_dir=self.serverapp.root_dir,
preferred_dir=self.serverapp.contents_manager.preferred_dir,
log_dir=self.generation_log_dir,
)
learn_chat_handler = LearnChatHandler(
**chat_handler_kwargs,
Expand Down

0 comments on commit 4f4e78c

Please sign in to comment.