* swapping out hardcoded str for prefix (forgot to include in #569)
* add extra failout when the summarizer tries to run on a single message
* added function response validation code, currently will truncate responses based on character count
* added return type hints (functions/tools should either return strings or None)
* discuss function output length in custom function section
* made the truncation more informative
* don't add anything except for assistant messages to the global autogen message historoy
* properly format autogen messages when using local llms (allow naming to get passed through to the prompt formatter)
* add extra handling of autogen's name field in step()
* comments
* sort agents by directory-last-modified time
* only save agent config when agent is saved
---------
Co-authored-by: Sarah Wooders <sarahwooders@gmail.com>
* Raise a custom keyerror instead of basic keyerror to clarify issue to LLM processor
* remove self value from error message passed to LLM processor
* simplify error message propogated to llm processor
* 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>
* partial
* working schema builder, tested that it matches the hand-written schemas
* correct another schema diff
* refactor
* basic working test
* refactored preset creation to use yaml files
* added docstring-parser
* add code for dynamic function linking in agent loading
* pretty schema diff printer
* support pulling from ~/.memgpt/functions/*.py
* clean
* allow looking for system prompts in ~/.memgpt/system_prompts
* create ~/.memgpt/system_prompts if it doesn't exist
* pull presets from ~/.memgpt/presets in addition to examples folder
* add support for loading agent configs that have additional keys
---------
Co-authored-by: Sarah Wooders <sarahwooders@gmail.com>
* stripped LLM_MAX_TOKENS constant, instead it's a dictionary, and context_window is set via the config (defaults to 8k)
* pass context window in the calls to local llm APIs
* safety check
* remove dead imports
* context_length -> context_window
* add default for agent.load
* in configure, ask for the model context window if not specified via dictionary
* fix default, also make message about OPENAI_API_BASE missing more informative
* make openai default embedding if openai is default llm
* make openai on top of list
* typo
* also make local the default for embeddings if you're using localllm instead of the locallm endpoint
* provide --context_window flag to memgpt run
* fix runtime error
* stray comments
* stray comment
* Remove AsyncAgent and async from cli
Refactor agent.py memory.py
Refactor interface.py
Refactor main.py
Refactor openai_tools.py
Refactor cli/cli.py
stray asyncs
save
make legacy embeddings not use async
Refactor presets
Remove deleted function from import
* remove stray prints
* typo
* another stray print
* patch test
---------
Co-authored-by: cpacker <packercharles@gmail.com>
* Revert "Relax verify_first_message_correctness to accept any function call (#340)"
This reverts commit 30e911057d755f5946d7bc2ba54619b5f2e08dc3.
* add archival_memory_search as an exception for verify
* Relax verify_first_message_correctness to accept any function call
* Also allow missing internal monologue if request_heartbeat
* Cleanup
* get instead of raw dict access
* strip '/' and use osp.join
* grepped for MEMGPT_DIR, found more places to replace '/'
* typo
* grep pass over filesep
---------
Co-authored-by: Vivian Fang <hi@vivi.sh>
* trying to patch summarize when running with local llms
* moved token magic numbers to constants, made special localllm exception class (TODO catch these for retry), fix summarize bug where it exits early if empty list
* missing file
* raise an exception on no-op summary
* changed summarization logic to walk forwards in list until fraction of tokens in buffer is reached
* added same diff to sync agent
* reverted default max tokens to 8k, cleanup + more error wrapping for better error messages that get caught on retry
* patch for web UI context limit error propogation, using best guess for what the web UI error message is
* add webui token length exception
* remove print
* make no wrapper warning only pop up once
* cleanup
* Add errors to other wrappers
---------
Co-authored-by: Vivian Fang <hi@vivi.sh>