* 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>
47 lines
1.4 KiB
Python
47 lines
1.4 KiB
Python
import subprocess
|
|
import sys
|
|
|
|
subprocess.check_call([sys.executable, "-m", "pip", "install", "pexpect"])
|
|
import pexpect
|
|
|
|
from .constants import TIMEOUT
|
|
from .utils import configure_memgpt
|
|
|
|
|
|
def test_configure_memgpt():
|
|
configure_memgpt()
|
|
|
|
|
|
def test_save_load():
|
|
# configure_memgpt() # rely on configure running first^
|
|
child = pexpect.spawn("memgpt run --agent test_save_load --first --strip_ui")
|
|
|
|
child.expect("Enter your message:", timeout=TIMEOUT)
|
|
child.sendline()
|
|
|
|
child.expect("Empty input received. Try again!", timeout=TIMEOUT)
|
|
child.sendline("/save")
|
|
|
|
child.expect("Enter your message:", timeout=TIMEOUT)
|
|
child.sendline("/exit")
|
|
|
|
child.expect(pexpect.EOF, timeout=TIMEOUT) # Wait for child to exit
|
|
child.close()
|
|
assert child.isalive() is False, "CLI should have terminated."
|
|
assert child.exitstatus == 0, "CLI did not exit cleanly."
|
|
|
|
child = pexpect.spawn("memgpt run --agent test_save_load --first --strip_ui")
|
|
child.expect("Using existing agent test_save_load", timeout=TIMEOUT)
|
|
child.expect("Enter your message:", timeout=TIMEOUT)
|
|
child.sendline("/exit")
|
|
child.expect(pexpect.EOF, timeout=TIMEOUT) # Wait for child to exit
|
|
child.close()
|
|
assert child.isalive() is False, "CLI should have terminated."
|
|
assert child.exitstatus == 0, "CLI did not exit cleanly."
|
|
|
|
|
|
if __name__ == "__main__":
|
|
test_configure_memgpt()
|
|
test_save_load()
|
|
# test_legacy_cli_sequence()
|