Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/main' into 531-generated-cells-a…
Browse files Browse the repository at this point in the history
…ppearing-below-a-chatinput-cell-are-incorrectly-included-in-the-chat-context
  • Loading branch information
rhennigan committed Jan 8, 2024
2 parents 4e416f2 + 2f85da8 commit fd701ee
Show file tree
Hide file tree
Showing 5 changed files with 51 additions and 14 deletions.
2 changes: 1 addition & 1 deletion PacletInfo.wl
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
PacletObject[ <|
"Name" -> "Wolfram/Chatbook",
"PublisherID" -> "Wolfram",
"Version" -> "1.4.0",
"Version" -> "1.4.1",
"WolframVersion" -> "13.3+",
"Description" -> "Wolfram Notebooks + LLMs",
"License" -> "MIT",
Expand Down
50 changes: 41 additions & 9 deletions Source/Chatbook/Actions.wl
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ BeginPackage[ "Wolfram`Chatbook`Actions`" ];
`$autoAssistMode;
`$autoOpen;
`$finalCell;
`$lastCellObject;
`$lastChatString;
`$lastMessages;
`$lastSettings;
Expand Down Expand Up @@ -406,14 +407,32 @@ EvaluateChatInput[ evalCell_CellObject, nbo_NotebookObject ] :=
EvaluateChatInput[ evalCell, nbo, currentChatSettings @ nbo ];

EvaluateChatInput[ evalCell_CellObject, nbo_NotebookObject, settings_Association? AssociationQ ] :=
withChatState @ Block[ { $autoAssistMode = False },
$lastMessages = None;
withChatState @ Block[ { $autoAssistMode = False, $aborted = False },
$lastCellObject = None;
$lastChatString = None;
$lastMessages = None;
$nextTaskEvaluation = None;
clearMinimizedChats @ nbo;
$enableLLMServices = settings[ "EnableLLMServices" ];
sendChat[ evalCell, nbo, settings ];
waitForLastTask[ ];
clearMinimizedChats @ nbo;

(* Send chat while listening for an abort: *)
CheckAbort[
sendChat[ evalCell, nbo, settings ];
waitForLastTask[ ]
,
(* The user has issued an abort: *)
$aborted = True;
(* Clean up the current chat evaluation: *)
With[ { cell = $lastCellObject },
If[ MatchQ[ cell, _CellObject ],
StopChat @ cell,
removeTask @ $lastTask
]
]
,
PropagateAborts -> False
];

blockChatObject[
If[ ListQ @ $lastMessages && StringQ @ $lastChatString,
With[
Expand All @@ -423,18 +442,31 @@ EvaluateChatInput[ evalCell_CellObject, nbo_NotebookObject, settings_Association
<| "Role" -> "Assistant", "Content" -> $lastChatString |>
]
},
applyHandlerFunction[ settings, "ChatPost", <| "ChatObject" -> chat, "NotebookObject" -> nbo |> ];
Sow[ chat, $chatObjectTag ]
applyChatPost[ chat, settings, nbo, $aborted ]
],
applyHandlerFunction[ settings, "ChatPost", <| "ChatObject" -> None, "NotebookObject" -> nbo |> ];
Sow[ None, $chatObjectTag ];
applyChatPost[ None, settings, nbo, $aborted ];
Null
];
]
];

EvaluateChatInput // endDefinition;

(* ::**************************************************************************************************************:: *)
(* ::Subsection::Closed:: *)
(*applyChatPost*)
applyChatPost // beginDefinition;

applyChatPost[ chat_, settings_, nbo_, aborted: True|False ] := (
If[ aborted,
applyHandlerFunction[ settings, "ChatAbort", <| "ChatObject" -> chat, "NotebookObject" -> nbo |> ],
applyHandlerFunction[ settings, "ChatPost" , <| "ChatObject" -> chat, "NotebookObject" -> nbo |> ]
];
Sow[ chat, $chatObjectTag ]
);

applyChatPost // endDefinition;

(* ::**************************************************************************************************************:: *)
(* ::Subsection::Closed:: *)
(*blockChatObject*)
Expand Down
1 change: 1 addition & 0 deletions Source/Chatbook/Main.wl
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ BeginPackage[ "Wolfram`Chatbook`" ];
(* ::Subsection::Closed:: *)
(*Declare Symbols*)
`$AvailableTools;
`$ChatAbort;
`$ChatHandlerData;
`$ChatPost;
`$ChatPre;
Expand Down
6 changes: 4 additions & 2 deletions Source/Chatbook/SendChat.wl
Original file line number Diff line number Diff line change
Expand Up @@ -1750,7 +1750,7 @@ activeAIAssistantCell[
Editable -> False,
CellDingbat -> Cell[ BoxData @ makeActiveOutputDingbat @ settings, Background -> None ],
CellTrayWidgets -> <| "ChatFeedback" -> <| "Visible" -> False |> |>,
TaggingRules -> <| "ChatNotebookSettings" -> settings |>
TaggingRules -> <| "ChatNotebookSettings" -> smallSettings @ settings |>
]
]
];
Expand Down Expand Up @@ -1803,7 +1803,7 @@ activeAIAssistantCell[
Selectable -> True,
ShowAutoSpellCheck -> False,
ShowCursorTracker -> False,
TaggingRules -> <| "ChatNotebookSettings" -> settings |>,
TaggingRules -> <| "ChatNotebookSettings" -> smallSettings @ settings |>,
If[ scrollOutputQ @ settings,
PrivateCellOptions -> { "TrackScrollingWhenPlaced" -> True },
Sequence @@ { }
Expand Down Expand Up @@ -1897,8 +1897,10 @@ makeActiveOutputDingbat // endDefinition;
(* ::Subsubsection::Closed:: *)
(*makeOutputDingbat*)
makeOutputDingbat // beginDefinition;
makeOutputDingbat[ as: KeyValuePattern[ "LLMEvaluator" -> name_String ] ] := makeOutputDingbat[ as, name ];
makeOutputDingbat[ as: KeyValuePattern[ "LLMEvaluator" -> config_Association ] ] := makeOutputDingbat[ as, config ];
makeOutputDingbat[ as_Association ] := makeOutputDingbat[ as, as ];
makeOutputDingbat[ as_, name_String ] := makeOutputDingbat[ as, GetCachedPersonaData @ name ];
makeOutputDingbat[ as_, KeyValuePattern[ "PersonaIcon" -> icon_ ] ] := makeOutputDingbat[ as, icon ];
makeOutputDingbat[ as_, KeyValuePattern[ "Icon" -> icon_ ] ] := makeOutputDingbat[ as, icon ];
makeOutputDingbat[ as_, KeyValuePattern[ "Default" -> icon_ ] ] := makeOutputDingbat[ as, icon ];
Expand Down
6 changes: 4 additions & 2 deletions Source/Chatbook/Settings.wl
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,7 @@ $$validRootSettingValue = Inherited | _? (AssociationQ@*Association);
(* ::**************************************************************************************************************:: *)
(* ::Section::Closed:: *)
(*Defaults*)
$ChatAbort = None;
$ChatPost = None;
$ChatPre = None;
$DefaultModel = <| "Service" -> "OpenAI", "Name" -> "gpt-4" |>;
Expand All @@ -79,8 +80,9 @@ $DefaultModel = <| "Service" -> "OpenAI", "Name" -> "gpt-4" |>;
(* ::Subsection::Closed:: *)
(*Handler Functions*)
$DefaultChatHandlerFunctions = <|
"ChatPost" :> $ChatPost,
"ChatPre" :> $ChatPre
"ChatAbort" :> $ChatAbort,
"ChatPost" :> $ChatPost,
"ChatPre" :> $ChatPre
|>;

(* ::**************************************************************************************************************:: *)
Expand Down

0 comments on commit fd701ee

Please sign in to comment.