* First commit of memgpt client and some messy test code
* rolled back unnecessary changes to abstract interface; switched client to always use Queueing Interface
* Added missing interface clear() in run_command; added convenience method for checking if an agent exists, used that in create_agent
* Formatting fixes
* Fixed incorrect naming of get_agent_memory in rest server
* Removed erroneous clear from client save method; Replaced print statements with appropriate logger calls in server
* Updated readme with client usage instructions
* added tests for Client
* make printing to terminal togglable on queininginterface (should probably refactor this to a logger)
* turn off printing to stdout via interface by default
* allow importing the python client in a similar fashion to openai-python (see https://github.com/openai/openai-python)
* Allowed quickstart on init of client; updated readme and test_client accordingly
* oops, fixed name of openai_api_key config key
* Fixed small typo
* Fixed broken test by adding memgpt hosted model details to agent config
* silence llamaindex 'LLM is explicitly disabled. Using MockLLM.' on server
* default to openai if user's memgpt directory is empty (first time)
* correct type hint
* updated section on client in readme
* added comment about how MemGPT config != Agent config
* patch unrelated test
* update wording on readme
* patch another unrelated test
* added python client to readme docs
* Changed 'user' to 'human' in example; Defaulted AgentConfig.model to 'None'; Fixed issue in create_agent (accounting for dict config); matched test code to example
* Fixed advanced example
* patch test
* patch
---------
Co-authored-by: cpacker <packercharles@gmail.com>
* added basic heartbeat override
* tested and working on lmstudio (patched typo + patched new bug emerging in latest lmstudio build
* added lmstudio patch to chatml wrapper
* update the system messages to be informative about the source
* updated string constants after some tuning
* added memgpt server command
* added the option to specify a port (rest default 8283, ws default 8282)
* fixed import in test
* added agent saving on shutdown
* added basic locking mechanism (assumes only one server.py is running at the same time)
* remove 'STOP' from buffer when converting to list for the non-streaming POST resposne
* removed duplicate on_event (redundant to lifespan)
* added GET agents/memory route
* added GET agent config
* added GET server config
* added PUT route for modifying agent core memory
* refactored to put server loop in separate function called via main
* init server refactor
* refactored websockets server/client code to use internal server API
* added intentional fail on test
* update workflow to try and get test to pass remotely
* refactor to put websocket code in a separate subdirectory
* added fastapi rest server
* add error handling
* modified interface return style
* disabled certain tests on remote
* added SSE response option for user_message
* fix ws interface test
* fallback for oai key
* add soft fail for test when localhost is borked
* add step_yield for all server related interfaces
* extra catch
* update toml + lock with server add-ons (add uvicorn+fastapi, move websockets to server extra)
* regen lock file
* added pytest-asyncio as an extra in dev
* add pydantic to deps
* renamed CreateConfig to CreateAgentConfig
* fixed POST request for creating agent + tested it
* updated local llm documentation
* updated cli flags to be consistent with documentation
* added preset documentation
* update test to use new arg
* update test to use new arg
* mark depricated API section
* CLI bug fixes for azure
* check azure before running
* Update README.md
* Update README.md
* bug fix with persona loading
* remove print
* make errors for cli flags more clear
* format
* fix imports
* fix imports
* add prints
* update lock
* update config fields
* cleanup config loading
* commit
* remove asserts
* refactor configure
* put into different functions
* add embedding default
* pass in config
* fixes
* allow overriding openai embedding endpoint
* black
* trying to patch tests (some circular import errors)
* update flags and docs
* patched support for local llms using endpoint and endpoint type passed via configs, not env vars
* missing files
* fix naming
* fix import
* fix two runtime errors
* patch ollama typo, move ollama model question pre-wrapper, modify question phrasing to include link to readthedocs, also have a default ollama model that has a tag included
* disable debug messages
* made error message for failed load more informative
* don't print dynamic linking function warning unless --debug
* updated tests to work with new cli workflow (disabled openai config test for now)
* added skips for tests when vars are missing
* update bad arg
* revise test to soft pass on empty string too
* don't run configure twice
* extend timeout (try to pass against nltk download)
* update defaults
* typo with endpoint type default
* patch runtime errors for when model is None
* catching another case of 'x in model' when model is None (preemptively)
* allow overrides to local llm related config params
* made model wrapper selection from a list vs raw input
* update test for select instead of input
* Fixed bug in endpoint when using local->openai selection, also added validation loop to manual endpoint entry
* updated error messages to be more informative with links to readthedocs
* add back gpt3.5-turbo
---------
Co-authored-by: cpacker <packercharles@gmail.com>