diff --git a/devchat/_cli/log.py b/devchat/_cli/log.py index 009a4375..cf8932ef 100644 --- a/devchat/_cli/log.py +++ b/devchat/_cli/log.py @@ -62,9 +62,9 @@ def log(skip, max_count, topic_root, insert, delete): prompt.input_messages(prompt_data.messages) prompt.parent = prompt_data.parent prompt.references = prompt_data.references - prompt._timestamp = prompt_data.timestamp - prompt._request_tokens = prompt_data.request_tokens - prompt._response_tokens = prompt_data.response_tokens + prompt.timestamp = prompt_data.timestamp + prompt.request_tokens = prompt_data.request_tokens + prompt.response_tokens = prompt_data.response_tokens store.store_prompt(prompt) recent_prompts = store.select_prompts(skip, skip + max_count, topic_root) diff --git a/devchat/openai/openai_prompt.py b/devchat/openai/openai_prompt.py index f9e42dd8..c0741807 100644 --- a/devchat/openai/openai_prompt.py +++ b/devchat/openai/openai_prompt.py @@ -87,10 +87,10 @@ def input_messages(self, messages: List[dict]): while True: last_message = self._history_messages[Message.CHAT].pop() if last_message.role in ("user", "function"): - self._new_messages["request"] = last_message + self.request = last_message break if last_message.role == "assistant": - self._new_messages["responses"].append(last_message) + self.responses.append(last_message) continue self._history_messages[Message.CHAT].append(last_message) @@ -151,7 +151,7 @@ def set_request(self, content: str, function_name: Optional[str] = None) -> int: message = OpenAIMessage(content=content, role=('user' if not function_name else 'function'), name=function_name) - self._new_messages['request'] = message + self.request = message self._request_tokens += openai_message_tokens(message.to_dict(), self.model) def set_response(self, response_str: str): diff --git a/devchat/prompt.py b/devchat/prompt.py index 8d9f833b..3cb1ea5e 100644 --- a/devchat/prompt.py +++ b/devchat/prompt.py @@ -71,10 +71,6 @@ def _complete_for_hashing(self) -> bool: return True - @property - def timestamp(self) -> int: - return self._timestamp - @property def new_context(self) -> List[Message]: return self._new_messages[Message.CONTEXT] @@ -83,20 +79,40 @@ def new_context(self) -> List[Message]: def request(self) -> Message: return self._new_messages['request'] + @request.setter + def request(self, value: Message): + self._new_messages['request'] = value + @property def responses(self) -> List[Message]: return self._new_messages['responses'] + @property + def timestamp(self) -> int: + return self._timestamp + + @timestamp.setter + def timestamp(self, value: int): + self._timestamp = value + @property def request_tokens(self) -> int: return self._request_tokens + @request_tokens.setter + def request_tokens(self, value: int): + self._request_tokens = value + @property def response_tokens(self) -> int: if not self._response_tokens: self._response_tokens = self._count_response_tokens() return self._response_tokens + @response_tokens.setter + def response_tokens(self, value: int): + self._response_tokens = value + @abstractmethod def _count_response_tokens(self) -> int: """