Commit Graph

96 Commits

Author SHA1 Message Date
Sarah Wooders
c8297f53e4 feat: create memgpt server with postgres DB with docker compose up (#1183) 2024-03-25 22:32:26 -07:00
Charles Packer
76a2137d0d feat: during agent creation - create new presets in the DB if the preset had overrides (#1159) 2024-03-16 22:29:29 -07:00
Sarah Wooders
70a9e9b81c feat: implement remaining Admin routes in client and add tests (#1157) 2024-03-16 20:03:19 -07:00
Sarah Wooders
8368942376 fix: fix existing agent listing for CLI (#1146) 2024-03-12 15:12:09 -07:00
Charles Packer
1f192be107 feat: added persona/human_name fields to Preset (#1134) 2024-03-11 16:33:05 -07:00
Sarah Wooders
c508acb9dc fix: modify metadata presets functions (#1132) 2024-03-11 16:32:50 -07:00
Sarah Wooders
d17719f19b feat: enable adding presets via the CLI (#1131) 2024-03-11 15:01:56 -07:00
Charles Packer
c619b2c048 fix: patch bug where the contents of the persona/human files were not gett… (#1126) 2024-03-10 18:43:58 -07:00
Charles Packer
637cb9c2b4 feat: one time pass of autoflake + add autoflake to dev extras (#1097)
Co-authored-by: tombedor <tombedor@gmail.com>
2024-03-05 16:35:12 -08:00
Charles Packer
894cfcb0c5 feat: tests and bug fixes AgentState.state (#1058) 2024-02-29 20:51:31 -08:00
Charles Packer
15b0aebf52 feat: add basic https support to memgpt server for development where https is needed (#1052) 2024-02-25 14:34:14 -08:00
Charles Packer
fb85273a73 fix: patch /rewrite (#1034) 2024-02-21 23:52:53 -08:00
Charles Packer
d64178655d fix: removed superfluous create_agent calls (#1000) 2024-02-19 10:13:41 -08:00
Sarah Wooders
4cdd9ee01f feat: refactor loading and attaching data sources, and upgrade to llama-index==0.10.6 (#1016) 2024-02-18 16:57:01 -08:00
tombedor
e6554b149c fix: decrease number of saves to MemGPTConfig (#943) 2024-02-15 19:08:52 -08:00
Sarah Wooders
10aa6097ad refactor: store presets in database via metadata store (#1013) 2024-02-15 18:49:16 -08:00
黄绵秋
5b25d9e1f2 fix: Fix Misplaced Else Statement and Correct If Condition Handling in set_config_with_dict() (#965)
Co-authored-by: luther <272786742@qq.com>
2024-02-08 12:43:32 -08:00
Charles Packer
5112f5e161 fix: use utf-8 encodings for all text files (#918) 2024-01-30 11:59:58 -08:00
Charles Packer
d9c87a266f fix: misc updates to the migration code to improve migration UX (#941) 2024-01-29 17:42:41 -08:00
Charles Packer
037cc16e32 refactor: fix typing errors (pyright) (#855) 2024-01-23 17:21:44 -08:00
Sarah Wooders
35b48c5fc0 fix: add Annotated to CLI options (#906)
Co-authored-by: Charles Packer <packercharles@gmail.com>
2024-01-23 11:27:24 -08:00
Sarah Wooders
888a69af85 fix: chroma bug with repeated loading of same source (#909) 2024-01-23 10:29:40 -08:00
tombedor
570dc2a893 fix: simplify user config (#904) 2024-01-22 19:25:03 -08:00
Charles Packer
08d5fe8edd refactor: refactor MemGPT + AutoGen integration to work with MemGPT 0.2.12+ (DB release) (#905) 2024-01-22 17:49:48 -08:00
Charles Packer
6094726dfe fix: various fixes + make sure to save agent on creation to avoid missing agent_state.state entries (#877) 2024-01-20 17:28:39 -08:00
Charles Packer
324e193846 fix: another patch for test_cli (#876) 2024-01-20 17:00:40 -08:00
Charles Packer
eeba15cba3 fix: patch test_cli (#875) 2024-01-20 16:45:44 -08:00
Robin Goetz
f285f8601e feat: Next iteration of ChatUI (#847)
Co-authored-by: Charles Packer <packercharles@gmail.com>
2024-01-20 16:28:31 -08:00
Sarah Wooders
4039763de5 feat: Store embeddings padded to size 4096 to allow DB storage of varying size embeddings (#852)
Co-authored-by: cpacker <packercharles@gmail.com>
2024-01-19 16:03:13 -08:00
Charles Packer
77e5c43c8f feat: local auth config (#854) 2024-01-18 16:43:41 -08:00
Charles Packer
da5a8cdbfe refactor: remove User LLM/embed. defaults, add credentials file, add authentication option for custom LLM backends (#835) 2024-01-18 16:11:35 -08:00
Charles Packer
c07746b097 refactor: Use Message types inside Agent state (agent.messages), enabling immediate tracking of Message objects (#836)
Co-authored-by: Sarah Wooders <sarahwooders@gmail.com>
2024-01-17 17:02:56 -08:00
Charles Packer
0d12246096 fix: properly handle CLI flags passed to memgpt run (#833) 2024-01-16 14:47:11 -08:00
cpacker
112e29b3a6 Added logging option for server process, fixed bug on agent list with bad type 2024-01-15 12:55:51 -08:00
Charles Packer
350785e9f3 Merge branch 'main' into goetzrobin-chatui-rebased-on-main 2024-01-15 10:50:18 -08:00
ifsheldon
dd2f4fc873 fix: Turn off all ensure_ascii of json.dumps (#800) 2024-01-11 23:54:35 -08:00
Charles Packer
1af40860fd feat: Properly handle old config migration/recreation on memgpt run (#804) 2024-01-11 20:23:20 -08:00
Charles Packer
f118e01ad1 feat: Migration command for importing old agents into new DB backend (#802)
Co-authored-by: Sarah Wooders <sarahwooders@gmail.com>
2024-01-11 14:57:21 -08:00
Max Blackmer
10865a4cb8 Merge branch 'main' into feature/global-logging
# Conflicts:
#	memgpt/config.py
2024-01-11 11:12:03 -05:00
Robin Goetz
39ada91fe7 feat: next iteration of chat ui (#637)
* feat: add loading indicator when creating new agent

* feat: reorder front page to avoid overflow and always show add button

* feat: display function calls

* feat: set up proxy during development & remove explicit inclusion of host/port in backend calls

* fix: introduce api prefix, split up fastapi server to become more modular, use app directly instead of subprocess

the api prefix allows us to create a proxy for frontend development that relays all /api
requests to our fastapi, while serving the development files for other paths.
splitting up the fastapi server will allow us to branch out and divide up the work better
in the future. using the application directly in our cli instead of a subprocess makes
debugging a thing in development and overall this python native way just seems cleaner.
we can discuss if we should keep the api prefix or if we should distinguish between a REST only
mode and one that also serves the static files for the GUI.
This is just my initial take on things

* chore: build latest frontend
2024-01-11 14:47:51 +01:00
Robin Goetz
a68e2c838d feat: adding first poc of web UI (#625)
* updated local APIs to return usage info (#585)

* updated APIs to return usage info

* tested all endpoints

* added autogen as an extra (#616)

* added autogen as an extra

* updated docs

Co-authored-by: hemanthsavasere <hemanth.savasere@gmail.com>

* Update LICENSE

* Add safeguard on tokens returned by functions (#576)

* 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

* patch bug where None.copy() throws runtime error (#617)

* allow passing custom host to uvicorn (#618)

* feat: initial poc for socket server

* feat: initial poc for frontend based on react

Set up an nx workspace which maks it easy to manage dependencies and added shadcn components
that allow us to build good-looking ui in a fairly simple way.
UI is a very simple and basic chat that starts with a message of the user and then simply displays the
answer string that is sent back from the fastapi ws endpoint

* feat: mapp arguments to json and return new messages

Except for the previous user message we return all newly generated messages and let the frontend figure out how to display them.

* feat: display messages based on role and show inner thoughts and connection status

* chore: build newest frontend

* feat(frontend): show loader while waiting for first message and disable send button until connection is open

* feat: make agent send the first message and loop similar to CLI

currently the CLI loops until the correct function call sends a message to the user. this is an initial try to achieve a similar behavior in the socket server

* chore: build new version of frontend

* fix: rename lib directory so it is not excluded as part of python gitignore

* chore: rebuild frontend app

* fix: save agent at end of each response to allow the conversation to carry on over multiple sessions

* feat: restructure server to support multiple endpoints and add agents and sources endpoint

* feat: setup frontend routing and settings page

* chore: build frontend

* feat: another iteration of web interface

changes include: websocket for chat. switching between different agents. introduction of zustand state management

* feat: adjust frontend to work with memgpt rest-api

* feat: adjust existing rest_api to serve and interact with frontend

* feat: build latest frontend

* chore: build latest frontend

* fix: cleanup workspace

---------

Co-authored-by: Charles Packer <packercharles@gmail.com>
Co-authored-by: hemanthsavasere <hemanth.savasere@gmail.com>
2024-01-11 14:47:51 +01:00
Sarah Wooders
d331c71ec3 remove AgentConfig imports 2024-01-09 11:38:46 -08:00
Sarah Wooders
54fa07da7a refactor!: Migrate users + agent information into storage connectors (#785)
Co-authored-by: cpacker <packercharles@gmail.com>
2024-01-08 15:59:49 -08:00
Max Blackmer
72d184a5e3 Merge branch 'feature/global-logging' of github.com:agiletechnologist/MemGPT into feature/global-logging
Removed Logging from configurations and migrated to constants.py
Modified log.py to configure using constants to configure logging

 Conflicts:
      memgpt/config.py resolved
2024-01-05 18:11:17 -05:00
Charles Packer
b487366f21 Merge branch 'main' into cherry-pick-storage-refactor 2023-12-30 21:38:58 -08:00
BabellDev
b2e9a24671 feat: Add MemGPT "Python Client" (#713)
* 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>
2023-12-30 12:43:46 -08:00
Charles Packer
53500d4688 add cleanup code (#726) 2023-12-28 22:00:24 -08:00
Sarah Wooders
b598f3e2d4 Re-run black formatter on resolved conflicts 2023-12-27 13:50:24 +04:00
Sarah Wooders
77e72d18da Merge branch 'main' into cherry-pick-storage-refactor 2023-12-27 13:47:27 +04:00
Charles Packer
42e2a301eb fix: increase the func return char limit (#714)
* increase the funct return limit

* disable truncation for base search functions

* added stdout suppression to remove MockLLM warning
2023-12-27 01:33:30 -08:00