diff --git a/memgpt/cli/cli.py b/memgpt/cli/cli.py index e076c135..4c0e0f06 100644 --- a/memgpt/cli/cli.py +++ b/memgpt/cli/cli.py @@ -20,8 +20,7 @@ from memgpt.cli.cli_config import configure import memgpt.presets.presets as presets import memgpt.utils as utils from memgpt.utils import printd, open_folder_in_explorer, suppress_stdout -from memgpt.persistence_manager import LocalStateManager -from memgpt.config import MemGPTConfig, AgentConfig +from memgpt.config import MemGPTConfig from memgpt.constants import MEMGPT_DIR, CLI_WARNING_PREFIX from memgpt.agent import Agent from memgpt.embeddings import embedding_model diff --git a/memgpt/client/client.py b/memgpt/client/client.py index bed3ae09..58d4f23f 100644 --- a/memgpt/client/client.py +++ b/memgpt/client/client.py @@ -4,8 +4,7 @@ from typing import Dict, List, Union from memgpt.data_types import AgentState from memgpt.cli.cli import QuickstartChoice from memgpt.cli.cli import set_config_with_dict, quickstart as quickstart_func, str_to_quickstart_choice -from memgpt.config import MemGPTConfig, AgentConfig -from memgpt.persistence_manager import PersistenceManager +from memgpt.config import MemGPTConfig from memgpt.server.rest_api.interface import QueuingInterface from memgpt.server.server import SyncServer diff --git a/memgpt/data_types.py b/memgpt/data_types.py index a2229e93..874668bd 100644 --- a/memgpt/data_types.py +++ b/memgpt/data_types.py @@ -8,9 +8,6 @@ import numpy as np from memgpt.constants import DEFAULT_HUMAN, DEFAULT_MEMGPT_MODEL, DEFAULT_PERSONA, DEFAULT_PRESET, LLM_MAX_TOKENS from memgpt.utils import get_local_time, format_datetime -# Defining schema objects: -# Note: user/agent can borrow from MemGPTConfig/AgentConfig classes - class Record: """ diff --git a/memgpt/persistence_manager.py b/memgpt/persistence_manager.py index b9980fd4..ce9c78ed 100644 --- a/memgpt/persistence_manager.py +++ b/memgpt/persistence_manager.py @@ -1,8 +1,6 @@ from abc import ABC, abstractmethod import pickle -from memgpt.config import AgentConfig from memgpt.memory import ( - DummyRecallMemory, BaseRecallMemory, EmbeddingArchivalMemory, ) @@ -54,44 +52,6 @@ class LocalStateManager(PersistenceManager): self.recall_memory = BaseRecallMemory(agent_state) self.agent_state = agent_state - @classmethod - def load(cls, agent_config: AgentConfig): - """ Load a LocalStateManager from a file. """ "" - # TODO: remove this function - return cls(agent_config) - # try: - # with open(filename, "rb") as f: - # data = pickle.load(f) - # except ModuleNotFoundError as e: - # # Patch for stripped openai package - # # ModuleNotFoundError: No module named 'openai.openai_object' - # with open(filename, "rb") as f: - # unpickler = OpenAIBackcompatUnpickler(f) - # data = unpickler.load() - # # print(f"Unpickled data:\n{data.keys()}") - - # from memgpt.openai_backcompat.openai_object import OpenAIObject - - # def convert_openai_objects_to_dict(obj): - # if isinstance(obj, OpenAIObject): - # # Convert to dict or handle as needed - # # print(f"detected OpenAIObject on {obj}") - # return obj.to_dict_recursive() - # elif isinstance(obj, dict): - # return {k: convert_openai_objects_to_dict(v) for k, v in obj.items()} - # elif isinstance(obj, list): - # return [convert_openai_objects_to_dict(v) for v in obj] - # else: - # return obj - - # data = convert_openai_objects_to_dict(data) - # # print(f"Converted data:\n{data.keys()}") - - # manager = cls(agent_config) - # manager.archival_memory = EmbeddingArchivalMemory(agent_config) - # manager.recall_memory = BaseRecallMemory(agent_config) - # return manager - def save(self): """Ensure storage connectors save data""" self.archival_memory.save() @@ -106,9 +66,6 @@ class LocalStateManager(PersistenceManager): # printd(f"{self.__class__.__name__}.all_messages.len = {len(self.all_messages)}") printd(f"{self.__class__.__name__}.messages.len = {len(self.messages)}") - # Persistence manager also handles DB-related state - # self.recall_memory = self.recall_memory_cls(message_database=self.all_messages) - def json_to_message(self, message_json) -> Message: """Convert agent message JSON into Message object""" timestamp = message_json["timestamp"] diff --git a/memgpt/server/server.py b/memgpt/server/server.py index 8fcdc6b5..43ebd8f6 100644 --- a/memgpt/server/server.py +++ b/memgpt/server/server.py @@ -7,7 +7,7 @@ from functools import wraps from fastapi import HTTPException from memgpt.system import package_user_message -from memgpt.config import AgentConfig, MemGPTConfig +from memgpt.config import MemGPTConfig from memgpt.agent import Agent import memgpt.system as system import memgpt.constants as constants @@ -60,7 +60,7 @@ class Server(object): def create_agent( self, user_id: str, - agent_config: Union[dict, AgentConfig], + agent_config: Union[dict, AgentState], interface: Union[AgentInterface, None], persistence_manager: Union[PersistenceManager, None], ) -> str: diff --git a/tests/test_websocket_interface.py b/tests/test_websocket_interface.py index 52704263..031f1d6f 100644 --- a/tests/test_websocket_interface.py +++ b/tests/test_websocket_interface.py @@ -8,6 +8,7 @@ import memgpt.presets.presets as presets import memgpt.utils as utils import memgpt.system as system from memgpt.persistence_manager import LocalStateManager +from memgpt.data_types import AgentState # def test_websockets(): @@ -68,24 +69,17 @@ async def test_websockets(): # Mock the persistence manager # create agents with defaults - agent_config = AgentConfig( + + # TODO: this is currently broken, need to fix + + agent_state = AgentState( persona="sam_pov", human="basic", model="gpt-4-1106-preview", model_endpoint_type="openai", model_endpoint="https://api.openai.com/v1", ) - persistence_manager = LocalStateManager(agent_config=agent_config) - - memgpt_agent = presets.create_agent_from_preset( - agent_config.preset, - agent_config, - agent_config.model, - agent_config.persona, # note: extracting the raw text, not pulling from a file - agent_config.human, # note: extracting raw text, not pulling from a file - ws_interface, - persistence_manager, - ) + memgpt_agent = presets.create_agent_from_preset(agent_state, ws_interface) # Mock the user message packaging user_message = system.package_user_message("Hello, is anyone there?")